我们组 Code Review 时,规定每个类文件的行数不得超过 666 行 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
KratosOmega
V2EX    Java

我们组 Code Review 时,规定每个类文件的行数不得超过 666 行

  •  
  •   KratosOmega 2019-12-29 10:38:00 +08:00 5388 次点击
    这是一个创建于 2121 天前的主题,其中的信息可能已经有所发展或是发生改变。
    666 还是挺吉利的,如果超过这个行数,就要重构,直到每个文件的行数小于 666 行,真的有些累啊。
    不知道大家组内有没有这种规定?
    15 条回复    2019-12-30 11:13:50 +08:00
    cabing
        1
    cabing  
       2019-12-29 10:52:03 +08:00
    必须滴。太长说明有问题。不符合单一职能原则。

    增加个规定,每个方法不能超过 88 行?每一行长度不能超过 66 个?
    KratosOmega
        2
    KratosOmega  
    OP
       2019-12-29 10:58:14 +08:00
    @cabing 88 行这个不错,不过 git 不好自动扫描方法行数
    zhengxiaowai
        3
    zhengxiaowai  
       2019-12-29 11:05:53 +08:00
    @KratosOmega 都是现成的 lint 工具,配置一下就好
    lotosbin
        4
    lotosbin  
       2019-12-29 11:09:25 +08:00
    代码行数可以用来发现 代码坏味道 ,但是不是所有代码行数多的都需要重构,
    可以看下 http://www.ruanyifeng.com/blog/2018/09/complexity.html
    优秀的设计是 Deep Class,公开有限的接口,把大量细节隐藏在实现中
    cabing
        5
    cabing  
       2019-12-29 11:24:18 +08:00
    Smash
        6
    Smash  
       2019-12-29 11:46:06 +08:00
    Android 源码里面 View 类都好几万行。
    EscYezi
        7
    EscYezi  
       2019-12-29 11:47:04 +08:00 via iPhone
    有就好了,之前在老代码里看到过一个方法四百多行的,实在受不了,拆分成几个五十行以内的方法。最近碰巧有新需求改这块,要是之前没拆,现在估计头都大了。
    KratosOmega
        8
    KratosOmega  
    OP
       2019-12-29 12:18:55 +08:00
    @Smash 感觉也不能一概而论,如果是 widget 类代码,非业务型代码,可以稍微放松一下要求。那如果业务型代码,几万行怼一个类里是真的头大
    KratosOmega
        9
    KratosOmega  
    OP
       2019-12-29 15:15:54 +08:00
    @zhengxiaowai lint 工具不好推行,要每个人都配置,而且不是强制性的
    jedihy
        10
    jedihy  
       2019-12-29 16:01:06 +08:00 via iPhone
    代码不能复用的话,强行放到一个函数里面有什么意义
    wudaye
        11
    wudaye  
       2019-12-29 17:34:03 +08:00 via Android
    @jedihy 复用不是函数封装唯一目的
    wudaye
        12
    wudaye  
       2019-12-29 17:38:14 +08:00 via Android
    我觉得行数可以用来限制水平一般的人,比如我自己,防止写出难以维护的代码。但是对大佬就不适用了,jdk 里好多几千行的类
    akira
        13
    akira  
       2019-12-29 21:12:53 +08:00
    这种硬性的要求很奇怪啊。。
    poplar50
        14
    poplar50  
       2019-12-30 10:25:09 +08:00 via Android
    @KratosOmega lint 可以配到 ci 里,ci 不过不允许合并。
    vagranth
        15
    vagranth  
       2019-12-30 11:13:50 +08:00
    我是觉得这个数有点少,刚看了一下最近写的代码,最大的文件是 841 行。
    顺便说一句,我记得 666 是恶魔的数字。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2493 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 10:57 PVG 18:57 LAX 03:57 JFK 06:57
    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