| 作者 |
内容 |
| 我在猪中是最美 |
如果函数的长度有1000行左右,意味着什么呢?
函数长度的原则,我听过“一屏原则”、“三十秒原则”,
但我接触的系统中,竟然有一个函数一千多行,读起来真是把脑袋累爆了,也读不出所以然来(我编程已经四年多了!!)。
请您说说,您碰到过这么长的函数吗?一般是不是都遵从了“一屏原则”、“三十秒原则”呢? |
| 02/09/24 16:07 |
酷帖! 臭帖! 回复 |
|
酷帖评价: 臭帖评价: |
| 返回页首 |
|
| highpeak |
回复:
如果函数的长度有1000行左右,意味着什么呢?
不是高手写的,那肯定是菜鸟写的。 |
| 02/09/24 16:47 |
酷帖! 臭帖! 回复 |
|
酷帖评价: 臭帖评价: |
| 返回页首 |
|
| goal2002 |
回复:
如果函数的长度有1000行左右,意味着什么呢?
意味着有10000行的过程代码。 |
| 02/09/24 17:10 |
酷帖! 臭帖! 回复 |
|
酷帖评价: 臭帖评价: |
| 返回页首 |
|
| 我在猪中是最美 |
请关注!
|
| 02/09/24 17:37 |
酷帖! 臭帖! 回复 |
|
酷帖评价: 臭帖评价: |
| 返回页首 |
|
| thuner |
回复:
如果函数的长度有1000行左右,意味着什么呢?
高手中的高手!你看都不行了,人家能写出来更显得不简单了。 |
| 02/09/24 17:55 |
酷帖! 臭帖! 回复 |
酷帖评价: 臭帖评价: |
| 返回页首 |
|
| 我在猪中是最美 |
认真点吧。我可是认真的啊。
|
| 02/09/24 18:00 |
酷帖! 臭帖! 回复 |
|
酷帖评价: 臭帖评价: |
| 返回页首 |
|
| babituo |
回复:
如果函数的长度有1000行左右,意味着什么呢?
意味着您好可怜,
接手了一个没有分析和设计文档的项目。
如果看懂程序比看懂文档还容易的话,说明您已经是真正的编程高手了。 |
| 02/09/24 18:04 |
酷帖! 臭帖! 回复 |
|
酷帖评价: 臭帖评价: |
| 返回页首 |
|
| thuner |
回复:
认真点吧。我可是认真的啊。
呵呵,对不起,个人认为再多数情况下没必要。
1、理解不易 现在的程序已经不是一个人事了,如果大家都看不懂或者要化很多时间理解,如果我是PM,我会忍痛割爱。
2、维护困难 无论自己还是别人维护会非常困难,代价太大。如果我是BOSS,会毫不犹豫。
以上观点,请多指教。 |
| 02/09/24 18:05 |
酷帖! 臭帖! 回复 |
|
酷帖评价: 臭帖评价: |
| 返回页首 |
|
| 我在猪中是最美 |
我认为,一个程序员能够接受的
单个函数的长度 会有个极限,是这样吗
|
| 02/09/24 18:08 |
酷帖! 臭帖! 回复 |
|
酷帖评价: 臭帖评价: |
| 返回页首 |
|
| babituo |
回复:
我认为,一个程序员能够接受的 单个函数的长度 会有个极限,是这样吗
如果有良好的文档,就没有极限 |
| 02/09/24 18:10 |
酷帖! 臭帖! 回复 |
|
酷帖评价: 臭帖评价: |
| 返回页首 |
|
| 我在猪中是最美 |
面向对象中所讲的,方法的职责要单一。我觉的这是一个标准!
|
| 02/09/24 18:14 |
酷帖! 臭帖! 回复 |
|
酷帖评价: 臭帖评价: |
| 返回页首 |
|
| 我在猪中是最美 |
你的意思这个程序一定是用面向过程方式写的?
|
| 02/09/24 18:15 |
酷帖! 臭帖! 回复 |
|
酷帖评价: 臭帖评价: |
| 返回页首 |
|
| 我在猪中是最美 |
是吗?高手也有这么干的啊?
|
| 02/09/24 18:16 |
酷帖! 臭帖! 回复 |
|
酷帖评价: 臭帖评价: |
| 返回页首 |
|
| smilemac |
很简单,这是懒惰造成的。
大部分这么长的函数都不是一开始就这么长,往往一开始只有1、2百行,每天加一点每天加一点,本来超出250行时就应该refactory了,但懒啊!等长啊长啊,长到500行时,还是懒,再等等,等长到1000行的时候,发现连自己看见都麻烦了,这时想起要refactory了,却发现已经太晚了,因为长了这么久,这部分代码已非常稳定,改起来cost太大,即使你想改,老板也不允许啊。呵呵,这就是1000行代码的函数是怎么诞生的。人都是懒惰的,尤其是喜欢思考的人。 |
| 02/09/24 18:58 |
酷帖! 臭帖! 回复 |
酷帖评价:  臭帖评价: |
| 返回页首 |
|
| 靠自己 |
如果能写出1000行的函数,估计也写不出有价值的文档
我现在维护的系统中,这种函数比比皆是。我已经可怜了三年了。 |
| 02/09/24 19:17 |
酷帖! 臭帖! 回复 |
|
酷帖评价: 臭帖评价: |
| 返回页首 |
|
| 靠自己 |
可是象你这样明白的PM和BOSS,不多啊
|
| 02/09/24 19:19 |
酷帖! 臭帖! 回复 |
|
酷帖评价: 臭帖评价: |
| 返回页首 |
|
| 靠自己 |
在一群菜鸟(包括领导)中,这种人被封为高手
|
| 02/09/24 19:21 |
酷帖! 臭帖! 回复 |
|
酷帖评价: 臭帖评价: |
| 返回页首 |
|
| 我在猪中是最美 |
同意,函数本身说明不了意图,再多文档也白搭
|
| 02/09/25 09:22 |
酷帖! 臭帖! 回复 |
|
酷帖评价: 臭帖评价: |
| 返回页首 |
|
| hyphoon |
回复:
如果函数的长度有1000行左右,意味着什么呢?
这意味着你不敢动这一行中的任何一行代码,否则光测试你的修改会带来什么新的Bug时就够你受的了。 |
| 02/09/25 09:27 |
酷帖! 臭帖! 回复 |
|
酷帖评价: 臭帖评价: |
| 返回页首 |
|
| 我在猪中是最美 |
我的一个广州的同事形象的将之比喻为“臭狗屎”,我则认为在“拆炸弹”
|
| 02/09/25 09:33 |
酷帖! 臭帖! 回复 |
|
酷帖评价: 臭帖评价: |
| 返回页首 |
|
| 我在猪中是最美 |
的确是这样。气死我了!
|
| 02/09/25 09:34 |
酷帖! 臭帖! 回复 |
|
酷帖评价: 臭帖评价: |
| 返回页首 |
|
| 我在猪中是最美 |
看来您对这些事情也是深有体会啊!
|
| 02/09/25 09:38 |
酷帖! 臭帖! 回复 |
|
酷帖评价: 臭帖评价: |
| 返回页首 |
|
| babituo |
如果函数是协作型过程,您的说法是对的
但函数处理的完全是一个私有的过程,而且该过程逻辑就有那么复杂,没有可重用的部分,也就是说,分开写更难看懂的时候,就只能考虑靠文档来帮忙了.
凡是不是绝对的,虽然有绝大部分的情况,但也有极少出现的情况.
把思路放在整体上去,会有更高远的视野和胸怀.也就会有更多的发展机会. |
| 02/09/25 09:44 |
酷帖! 臭帖! 回复 |
|
酷帖评价: 臭帖评价: |
| 返回页首 |
|
| 我在猪中是最美 |
没错!!!!!
|
| 02/09/25 09:44 |
酷帖! 臭帖! 回复 |
|
酷帖评价: 臭帖评价: |
| 返回页首 |
|
| 我在猪中是最美 |
我理解,只要职责单一,或者是一个大的算法,或是大批量的简单存取,长一点也无妨!谢谢指教!
|
| 02/09/25 09:46 |
酷帖! 臭帖! 回复 |
|
酷帖评价: 臭帖评价: |
| 返回页首 |
|
| liyonghai@163.net |
这很正常嘛,有的人写的程序就是不想让别人看懂!
|
| 02/09/25 10:04 |
酷帖! 臭帖! 回复 |
|
酷帖评价: 臭帖评价: |
| 返回页首 |
|
| liyonghai@163.net |
也可能是别的原因,比如保密或者提高性能什么的。特别是在写底层的时候,性能是放在首位的。
|
| 02/09/25 10:18 |
酷帖! 臭帖! 回复 |
|
酷帖评价: 臭帖评价: |
| 返回页首 |
|
| davidqql |
这没有什么
我编写了一个密钥管理系统,许多函数都超过1000行,接手的程序员只花了三天时间就明白了那几万行程序的梗概。 |
| 02/09/25 10:24 |
酷帖! 臭帖! 回复 |
|
酷帖评价: 臭帖评价: |
| 返回页首 |
|
| 我在猪中是最美 |
能详细讲讲吗?
|
| 02/09/25 10:28 |
酷帖! 臭帖! 回复 |
|
酷帖评价: 臭帖评价: |
| 返回页首 |
|
| davidqql |
一个函数一个功能
公用的部分已经提炼出来成为函数了,但是,为了完成一个功能,所需要的行数就要求有这么多,没有办法,如果硬拆成几个函数,除了更加难看之外,没有别的好处。 |
| 02/09/25 10:32 |
酷帖! 臭帖! 回复 |
|
酷帖评价: 臭帖评价: |
| 返回页首 |
|
| 靠自己 |
性能?操作系统、编译系统都不是我们的,何谈性能优化."保密"主要是对接手的人对公司保密
:)
|
| 02/09/25 10:36 |
酷帖! 臭帖! 回复 |
|
酷帖评价: 臭帖评价: |
| 返回页首 |
|
| smilemac |
从理论上来说,即使在严格的性能条件约束下,一个长函数也是可以找到一组等价的短函数集合的.
|
| 02/09/25 11:37 |
酷帖! 臭帖! 回复 |
|
酷帖评价: 臭帖评价: |
| 返回页首 |
|