刚才浏览了一下V2EX的源代码

2011-09-23 21:38:59 +08:00
 Mr_Vangogh
我发现@Livid 的代码风格可读性都点差啊。。。有时候一个函数长达200多行。。。难道Python就这样么?
12593 次点击
所在节点    Project Babel
25 条回复
colinxt
2011-09-23 23:21:44 +08:00
where to see the code?
lanisle
2011-09-23 23:37:52 +08:00
lostab
2011-09-25 23:19:22 +08:00
Mr_Vangogh
2011-09-26 11:10:35 +08:00
这个帖子怎么就沉了。。。最近在看重构这本书,所以才有感而发的。。。
keakon
2011-09-26 11:48:09 +08:00
@Mr_Vangogh 如果想学习Python的话,读GAE SDK的源码。如果你对Python很了解了,读Tornado的源码。

其他暂时想不起有什么推荐的了。
gonbo
2011-09-26 12:00:06 +08:00
哎呦,听到风就是雨的朋友哟,为什么一个函数不能超过200行?

大家都要向linus学习,人家提意见,都是带patch。

不是建设性的意见,听起来就想杀人。
Mr_Vangogh
2011-09-26 12:19:21 +08:00
@gonbo 你从哪句话听出来我是在提意见的?讨论讨论你就想杀人了,未免太过脆弱。我有说一个函数不能超过200行么?那你说说函数长了对可读性有没有影响?
Mr_Vangogh
2011-09-26 12:21:05 +08:00
@keakon 感谢你的推荐!
damngood
2011-09-26 12:28:36 +08:00
@keakon 谢了。 :) 刚看完python tutorial, 正好在找python源代码来读.

一般来说提倡短方法块的目的是提高代码的可重用性以及功能单一性。如果实在是没啥可以抽出来200就200吧 :)
chloerei
2011-09-26 12:34:30 +08:00
@Mr_Vangogh 又被顶上来了,我做个丑人好了。v2ex的代码之前已经讨论过好几次了,所以已经不太讨论了。

http://www.v2ex.com/t/6892

总的来说站主知道代码需要改进,也在重构中,不过似乎进度比较慢。
citydog
2011-09-26 12:48:22 +08:00
@Mr_Vangogh 别生气嘛,gonbo他那种人,“活到三十还没断奶”,小孩子脾气,旁人的一点意见都不能发,别跟他一般见识,网络上这种人多了~~
Mr_Vangogh
2011-09-26 13:34:41 +08:00
@chloerei 原来是这样。。。我才来没多久,所以才发这帖子的,难怪Livid不回这帖子。。。@Livid 我这个可不算指责哈,更不算是“无端指责”,就是作为一个新手的讨论与学习而已:)
gonbo
2011-09-26 16:51:36 +08:00
@Mr_Vangogh 现代的编辑器都有代码折叠功能。vim emacs 都有这些功能,代码太长你折叠起来看就是。一个函数应该多长,功能要求多长,就多长,linux kernel里面照样有超过1000行的函数。函数内规定代码行数,就和goto语句不能用一样,是一个伪规则。函数应该是以代码复用为主要原则去划分,函数内的代码都无法复用,而且功能的确很单一,当然是一个函数到底,该多长就就多长。
subpo
2011-09-26 17:25:53 +08:00
.................
Mr_Vangogh
2011-09-26 18:59:53 +08:00
@gonbo 把大函数中完成某一小功能的代码段抽出来组成一个函数,取上一个有意义的名字,是能够提高可读性的吧?恐怕不是折叠功能所能代替的。代码复用只是函数划分的一个标准,我觉得可读性同样重要。况且没遇到之前你也不知道函数能不能被复用。PS:我并没有说要规定函数的长度。
Mr_Vangogh
2011-09-26 19:03:21 +08:00
@citydog 虽然我有不短的网龄,但是v2ex是我混的第一个论坛,见少识短,比较土鳖:)不过我没有生气啦。这里的氛围已经很好啦,喜欢!
Los
2011-09-26 19:17:00 +08:00
@gonbo 看了你的回帖实在觉得郁闷,我也来做丑人。PB2的代码臃肿和比较乱是事实存在的问题,大量无用并且逻辑重复的代码(前段时间为了因为某个原因我还去读了一下PB2的代码,此感比较强),以代码质量进行讨论实在没必要找它借口。我之前发过一篇帖子「重构PB Minisite,200行代码打造自己的minisite」,将PB2中超过800行的minisite功能模块以200行代码完成[ref] http://www.v2ex.com/t/3772

PS:python我并不熟悉,重构minisite的功能模块只是边参考边写(好吧,我承认我连一天python都没有学过,就直接写这重构了),所以我重构后的代码质量也并不怎么样,所以针对我的代码质量问题请口下留情。
hooopo
2011-09-26 20:13:57 +08:00
@gonbo 就事论事有这么难么,这是web项目,不是linux kernel,以后谁说我代码长我就告诉他我的编辑器有折叠功能:-)
chloerei
2011-09-26 20:22:41 +08:00
@hooopo @Los 逛S1论坛我学会了“反串黑”这个词和一密顶十黑这个道理。
Los
2011-09-26 20:27:18 +08:00
@chloerei 「反串黑」和「一密顶十黑」看不懂意思。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/18533

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX