在尽力保证代码质量的情况下,多少行代码算大型项目 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
maocat
V2EX    程序员

在尽力保证代码质量的情况下,多少行代码算大型项目

  •  
  •   maocat 2021-01-15 15:11:29 +08:00 9326 次点击
    这是一个创建于 1796 天前的主题,其中的信息可能已经有所发展或是发生改变。

    这两天刚把写了半年多的 web 后端( Python 语言)部署线上,闲来没事,写了个小脚本遍历了下代码行数,缝缝补补一万多行的代码量,突然有个牢骚,问下各位大佬,在尽力保证代码质量的情况下,多少行代码算大型项目 [斜眼笑]

    38 条回复    2021-02-04 11:56:24 +08:00
    cloudfstrife
        1
    cloudfstrife  
       2021-01-15 15:14:33 +08:00   2
    统计代码行数居然还要脚本?不是一行命令搞定吗?

    ```
    find ./ -regextype posix-extended -regex ".*.(conf|md|go)" -type f | xargs cat | grep -v $^ | wc -l
    ```

    :)
    rationa1cuzz
        2
    rationa1cuzz  
       2021-01-15 15:18:39 +08:00
    pycharm 里也有插件 statistic 可以看到,我刚入职的这家公司接手的屎山项目,6 万两千多行,已经删了快一万行了,全是冗余代码。
    terax
        3
    terax  
       2021-01-15 15:19:45 +08:00 via iPhone   2
    cloc 了解一下
    karatsuba
        4
    karatsuba  
       2021-01-15 15:26:13 +08:00
    公司业务代码一个 cpp 两万多行,看吐了
    enenaaa
        5
    enenaaa  
       2021-01-15 15:29:04 +08:00
    大几十万行才勉强算吧。
    maocat
        6
    maocat  
    OP
       2021-01-15 15:46:21 +08:00
    @cloudfstrife 学到了,学到了,哈哈哈
    stdout
        7
    stdout  
       2021-01-15 15:52:41 +08:00
    大型项目百万行起步。
    forgottencoast
        8
    forgottencoast  
       2021-01-15 15:57:47 +08:00   2
    你不敢随便编译,就算大型项目了。
    比如之前大家讨论的 Android 系统。
    t/744028
    YouLMAO
        9
    YouLMAO  
       2021-01-15 16:42:36 +08:00 via Android
    我们的项目全球有 2 万五开发者,最小的是 3 岁
    zke1e
        10
    zke1e  
       2021-01-15 17:08:11 +08:00
    10 万行算起步吧
    ripperdev
        11
    ripperdev  
       2021-01-15 17:18:24 +08:00
    @karatsuba 那你是没见过我这一个 cpp 文件 include 语句三百行,总代码行数接近九万,后来在文件名后加个 2 的新文件里继续写
    raaaaaar
        12
    raaaaaar  
       2021-01-15 17:35:52 +08:00 via Android
    信息密度才是真的,越底层越高,光说行数没意思
    youla
        13
    youla  
       2021-01-15 17:47:29 +08:00
    bool a=true;

    if(a==true)
    {
    a==false;
    }

    if(a==false)
    {
    a==true;
    }

    请问这块代码算几行???/doge
    cway
        14
    cway  
       2021-01-15 17:50:56 +08:00
    一般都以多少钱判定是不是大项目
    nthhdy
        15
    nthhdy  
       2021-01-15 19:48:40 +08:00
    看多少人参与开发
    tydl
        16
    tydl  
       2021-01-15 20:52:29 +08:00 via Android
    @cway 对,我们是 20w 以下小型,20-50w 中型,50w 以上大型。
    钱数的确定是根据功能数来确定。
    proxychains
        17
    proxychains  
       2021-01-15 22:02:36 +08:00 via Android
    @cloudfstrife 大佬
    看到长串的 bash 就头皮发麻
    Kasumi20
        18
    Kasumi20  
       2021-01-15 22:28:54 +08:00
    10000 warning 10000 error
    akira
        19
    akira  
       2021-01-15 23:21:06 +08:00
    现在的话 百万级别?
    xiangyuecn
        20
    xiangyuecn  
       2021-01-16 00:03:10 +08:00
    node_modules 、 动不动就上微服务
    wangyanrui
        21
    wangyanrui  
       2021-01-16 00:13:42 +08:00 via Android
    看用户体量和访问频次等,大不大的,和代码总量没直接关联关系吧
    YYYeung
        22
    YYYeung  
       2021-01-16 01:31:19 +08:00
    当代码库变成不敢乱改的屎山......
    YYYeung
        23
    YYYeung  
       2021-01-16 01:34:50 +08:00
    @YYYeung 不好意思,一下子激动,忽略了「尽力保证代码质量的情况下」
    Mac
        24
    Mac  
       2021-01-16 01:50:38 +08:00 via Android
    除了 hello world 之外都算,因为我懒
    iConnect
        25
    iConnect  
       2021-01-16 08:25:39 +08:00 via Android
    @raaaaaar #12 楼说的才有意义。纯粹数行数并不能显示项目的真实大小,信息密度才是更关键的指标。

    一堆低密度代码到处复制,很快就能形成大项目。真正高信息密度的代码,只需 100 行就能让大脑炸裂。
    liuzhedash
        26
    liuzhedash  
       2021-01-16 09:20:53 +08:00   1
    个人经验如下:
    1w 行:指哪打哪,需要改啥很快就能搞定
    5w 行:需要想应该怎么分不同的包 /命名空间,新 feature 应该怎么设计
    10w 行:频繁 code review,防止菜鸡同事写出浆糊代码
    100w 行+:保证 bug 不比 feature 多,其他都是虚的
    Kirie
        27
    Kirie  
       2021-01-16 09:23:26 +08:00
    不能在合理时间内完成编译的代码
    lplusk
        28
    lplusk  
       2021-01-16 09:55:24 +08:00
    至少需要一个专业的 QA 负责把控项目质量 => 中型规模以上项目
    至少需要五个专业的 QA 负责把控项目质量 => 可被称为大型项目
    byteX
        29
    byteX  
       2021-01-16 11:11:41 +08:00
    我觉得通过代码行数 /代码质量去鉴别的话无异议,应该看有多少人用。一百万行一万个人用,一万行一百万人用。
    auh
        30
    auh  
       2021-01-16 11:47:33 +08:00
    统计代码行数的那个命令。发现几个问题:

    1.cat
    2.正则.未转义,后面的 grep $^的匹配看不懂
    3.注释未排除
    snBDX1b0jJM4ogKd
        31
    snBDX1b0jJM4ogKd  
       2021-01-16 14:51:03 +08:00 via Android
    @cloudfstrife #1 你这个命令怕是统计不了大型项目
    FrankHB
        32
    FrankHB  
       2021-01-16 17:25:32 +08:00
    楼上某位,一个 cloc . 搞定的东西怎么还要敲 find ……
    FrankHB
        33
    FrankHB  
       2021-01-16 17:29:35 +08:00
    @ripperdev 大约说明废话太多。
    我一个就几千行的( https://github.com/FrankHB/YSLib/blob/master/YFramework/source/NPL/NPLA1Forms.cpp )就能让 GCC 爆炸,4 小时吃 8GB RAM 然后链接失败,不得不 -fno-lto -fno-var-tracking-assignments (
    (这还是拆过的,之前直接炸穿 i686 cc1plus 地址空间了。)
    daijialong
        34
    daijialong  
       2021-01-16 17:58:59 +08:00
    当你的项目代码有 10 个 G 大小就是大型项目了
    FrankHB
        35
    FrankHB  
       2021-01-16 17:59:23 +08:00
    ……还是提一下,cloc 看代码布局加 exclude 。
    漏 exclude Doxygen 输出和中间文件的后果示例↓
    46781 text files.
    43547 unique files.
    34322 files ignored.

    github.com/AlDanial/cloc v 1.88 T=126.44 s (178.4 files/s, 38595.5 lines/s)
    ---------------------------------------------------------------------------------------
    Language files blank comment code
    ---------------------------------------------------------------------------------------
    SVG 9966 1542 335083 2176438
    XHTML 4757 57977 23785 1116573
    D 2285 30320 0 377237
    TeX 1919 83885 259 254049
    C/C++ Header 608 33011 113036 112729
    Javascript 2451 207 274 64269
    C++ 161 6744 6978 37622
    C 4 588 384 9949
    XML 80 17 68 9509
    Windows Module Definition 6 4 0 5135
    HTML 258 0 4369 4895
    diff 1 207 1565 2904
    CSS 5 350 48 1943
    MSBuild script 1 0 0 1670
    Bourne Shell 24 243 354 1208
    make 14 325 327 900
    Markdown 4 306 0 381
    XSLT 1 28 2 202
    YAML 1 2 11 83
    DOS Batch 14 13 0 62
    Python 1 0 0 38
    JSON 1 0 0 6
    ---------------------------------------------------------------------------------------
    SUM: 22562 215769 486543 4177802
    ---------------------------------------------------------------------------------------
    rb6221
        36
    rb6221  
       2021-01-16 20:18:00 +08:00
    我大概估算一下我现在开发的项目应该是 50-100w 行,我觉得算中型吧
    大型感觉要百万
    paoqi2048
        37
    paoqi2048  
       2021-01-18 22:21:37 +08:00
    @cloudfstrife 是 grep -v ^$吧?
    cloudfstrife
        38
    cloudfstrife  
       2021-02-04 11:56:24 +08:00
    @paoqi2048 #37 是的,写错了,敲太快了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2882 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 34ms UTC 14:13 PVG 22:13 LAX 06:13 JFK 09:13
    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