V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
maocat
V2EX  ›  程序员

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

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

    这两天刚把写了半年多的 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 系统。
    https://www.v2ex.com/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 负责把控项目质量 => 可被称为大型项目
    xytest
        29
    xytest  
       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
    ---------------------------------------------------------------------------------------
    janus77
        36
    janus77  
       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   ·   实用小工具   ·   1148 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 18:40 · PVG 02:40 · LAX 10:40 · JFK 13:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.