作者 内容
 我在猪中是最美   如果函数的长度有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 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首