V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
Mr_Vangogh

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

  •  
  •   Mr_Vangogh · Sep 23, 2011 · 14974 views
    This topic created in 5343 days ago, the information mentioned may be changed or developed.
    我发现@Livid 的代码风格可读性都点差啊。。。有时候一个函数长达200多行。。。难道Python就这样么?
    25 replies    1970-01-01 08:00:00 +08:00
    colinxt
        1
    colinxt  
       Sep 23, 2011   ❤️ 1
    where to see the code?
    ollama
        2
    ollama  
       Sep 23, 2011
    lostab
        3
    lostab  
       Sep 25, 2011
    Mr_Vangogh
        4
    Mr_Vangogh  
    OP
       Sep 26, 2011
    这个帖子怎么就沉了。。。最近在看重构这本书,所以才有感而发的。。。
    keakon
        5
    keakon  
       Sep 26, 2011
    @Mr_Vangogh 如果想学习Python的话,读GAE SDK的源码。如果你对Python很了解了,读Tornado的源码。

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

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

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

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

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

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

    谢谢大家。
    Livid
        25
    Livid  
    MOD
    PRO
       Sep 26, 2011
    Page for known issues is here:

    http://www.v2ex.com/t/18649
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3813 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 55ms · UTC 10:35 · PVG 18:35 · LAX 03:35 · JFK 06:35
    ♥ Do have faith in what you're doing.