刚才浏览了一下V2EX的源代码 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Mr_Vangogh
V2EX    Project Babel

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

  •  
  •   Mr_Vangogh 2011-09-23 21:38:59 +08:00 13079 次点击
    这是一个创建于 5183 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我发现@Livid 的代码风格可读性都点差啊。。。有时候一个函数长达200多行。。。难道Python就这样么?
    25 条回复    1970-01-01 08:00:00 +08:00
    colinxt
        1
    colinxt  
       2011-09-23 23:21:44 +08:00   1
    where to see the code?
    lanisle
        2
    lanisle  
       2011-09-23 23:37:52 +08:00
    lostab
        3
    lostab  
       2011-09-25 23:19:22 +08:00
    Mr_Vangogh
        4
    Mr_Vangogh  
    OP
       2011-09-26 11:10:35 +08:00
    这个帖子怎么就沉了。。。最近在看重构这本书,所以才有感而发的。。。
    keakon
        5
    keakon  
       2011-09-26 11:48:09 +08:00
    @Mr_Vangogh 如果想学习Python的话,读GAE SDK的源码。如果你对Python很了解了,读Tornado的源码。

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

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

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

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

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

    总的来说站主知道代码需要改进,也在重构中,不过似乎进度比较慢。
    citydog
        11
    citydog  
       2011-09-26 12:48:22 +08:00
    @Mr_Vangogh 别生气嘛,gonbo他那种人,“活到三十还没断奶”,小孩子脾气,旁人的一点意见都不能发,别跟他一般见识,网络上这种人多了~~
    Mr_Vangogh
        12
    Mr_Vangogh  
    OP
       2011-09-26 13:34:41 +08:00
    @chloerei 原来是这样。。。我才来没多久,所以才发这帖子的,难怪Livid不回这帖子。。。@Livid 我这个可不算指责哈,更不算是“无端指责”,就是作为一个新手的讨论与学习而已:)
    gonbo
        13
    gonbo  
       2011-09-26 16:51:36 +08:00
    @Mr_Vangogh 现代的编辑器都有代码折叠功能。vim emacs 都有这些功能,代码太长你折叠起来看就是。一个函数应该多长,功能要求多长,就多长,linux kernel里面照样有超过1000行的函数。函数内规定代码行数,就和goto语句不能用一样,是一个伪规则。函数应该是以代码复用为主要原则去划分,函数内的代码都无法复用,而且功能的确很单一,当然是一个函数到底,该多长就就多长。
    subpo
        14
    subpo  
       2011-09-26 17:25:53 +08:00
    .................
    Mr_Vangogh
        15
    Mr_Vangogh  
    OP
       2011-09-26 18:59:53 +08:00
    @gonbo 把大函数中完成某一小功能的代码段抽出来组成一个函数,取上一个有意义的名字,是能够提高可读性的吧?恐怕不是折叠功能所能代替的。代码复用只是函数划分的一个标准,我觉得可读性同样重要。况且没遇到之前你也不知道函数能不能被复用。PS:我并没有说要规定函数的长度。
    Mr_Vangogh
        16
    Mr_Vangogh  
    OP
       2011-09-26 19:03:21 +08:00
    @citydog 虽然我有不短的网龄,但是v2ex是我混的第一个论坛,见少识短,比较土鳖:)不过我没有生气啦。这里的氛围已经很好啦,喜欢!
    Los
        17
    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
        18
    hooopo  
       2011-09-26 20:13:57 +08:00
    @gonbo 就事论事有这么难么,这是web项目,不是linux kernel,以后谁说我代码长我就告诉他我的编辑器有折叠功能:-)
    chloerei
        19
    chloerei  
       2011-09-26 20:22:41 +08:00
    @hooopo @Los 逛S1论坛我学会了“反串黑”这个词和一密顶十黑这个道理。
    Los
        20
    Los  
       2011-09-26 20:27:18 +08:00
    @chloerei 「反串黑」和「一密顶十黑」看不懂意思。。。
    ssword
        21
    ssword  
       2011-09-26 21:07:16 +08:00
    @chloerei o(∩∩)o...哈哈笑死了~~
    cynial
        22
    cynial  
       2011-09-26 21:14:30 +08:00
    @ssword 。。求笑点
    lostab
        23
    lostab  
       2011-09-26 21:34:56 +08:00
    本来一次较客观的讨论怎么会夹杂……
    Livid
        24
    Livid  
    MOD
    PRO
       2011-09-26 21:43:57 +08:00
    代码质量及设计模式上存在的问题,是 PB2 项目的 known issue。此外这个项目进展到目前,还有其他的 known issues,我会在 GitHub Wiki 上整理出一个 known issues 的列表。

    谢谢大家。
    Livid
        25
    Livid  
    MOD
    PRO
       2011-09-26 23:29:12 +08:00
    Page for known issues is here:

    http://www.v2ex.com/t/18649
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5723 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 06:19 PVG 14:19 LAX 22:19 JFK 01:19
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86