
这两天刚把写了半年多的 web 后端( Python 语言)部署线上,闲来没事,写了个小脚本遍历了下代码行数,缝缝补补一万多行的代码量,突然有个牢骚,问下各位大佬,在尽力保证代码质量的情况下,多少行代码算大型项目 [斜眼笑]
1 cloudfstrife 2021-01-15 15:14:33 +08:00 统计代码行数居然还要脚本?不是一行命令搞定吗? ``` find ./ -regextype posix-extended -regex ".*.(conf|md|go)" -type f | xargs cat | grep -v $^ | wc -l ``` :) |
2 rationa1cuzz 2021-01-15 15:18:39 +08:00 pycharm 里也有插件 statistic 可以看到,我刚入职的这家公司接手的屎山项目,6 万两千多行,已经删了快一万行了,全是冗余代码。 |
3 terax 2021-01-15 15:19:45 +08:00 via iPhone cloc 了解一下 |
4 karatsuba 2021-01-15 15:26:13 +08:00 公司业务代码一个 cpp 两万多行,看吐了 |
5 enenaaa 2021-01-15 15:29:04 +08:00 大几十万行才勉强算吧。 |
6 maocat OP @cloudfstrife 学到了,学到了,哈哈哈 |
7 stdout 2021-01-15 15:52:41 +08:00 大型项目百万行起步。 |
8 forgottencoast 2021-01-15 15:57:47 +08:00 |
9 YouLMAO 2021-01-15 16:42:36 +08:00 via Android 我们的项目全球有 2 万五开发者,最小的是 3 岁 |
10 zke1e 2021-01-15 17:08:11 +08:00 10 万行算起步吧 |
11 ripperdev 2021-01-15 17:18:24 +08:00 @karatsuba 那你是没见过我这一个 cpp 文件 include 语句三百行,总代码行数接近九万,后来在文件名后加个 2 的新文件里继续写 |
12 raaaaaar 2021-01-15 17:35:52 +08:00 via Android 信息密度才是真的,越底层越高,光说行数没意思 |
13 youla 2021-01-15 17:47:29 +08:00 bool a=true; if(a==true) { a==false; } if(a==false) { a==true; } 请问这块代码算几行???/doge |
14 cway 2021-01-15 17:50:56 +08:00 一般都以多少钱判定是不是大项目 |
15 nthhdy 2021-01-15 19:48:40 +08:00 看多少人参与开发 |
16 tydl 2021-01-15 20:52:29 +08:00 via Android @cway 对,我们是 20w 以下小型,20-50w 中型,50w 以上大型。 钱数的确定是根据功能数来确定。 |
17 proxychains 2021-01-15 22:02:36 +08:00 via Android @cloudfstrife 大佬 看到长串的 bash 就头皮发麻 |
18 Kasumi20 2021-01-15 22:28:54 +08:00 10000 warning 10000 error |
19 akira 2021-01-15 23:21:06 +08:00 现在的话 百万级别? |
20 xiangyuecn 2021-01-16 00:03:10 +08:00 node_modules 、 动不动就上微服务 |
21 wangyanrui 2021-01-16 00:13:42 +08:00 via Android 看用户体量和访问频次等,大不大的,和代码总量没直接关联关系吧 |
22 YYYeung 2021-01-16 01:31:19 +08:00 当代码库变成不敢乱改的屎山...... |
24 Mac 2021-01-16 01:50:38 +08:00 via Android 除了 hello world 之外都算,因为我懒 |
25 iConnect 2021-01-16 08:25:39 +08:00 via Android @raaaaaar #12 楼说的才有意义。纯粹数行数并不能显示项目的真实大小,信息密度才是更关键的指标。 一堆低密度代码到处复制,很快就能形成大项目。真正高信息密度的代码,只需 100 行就能让大脑炸裂。 |
26 liuzhedash 2021-01-16 09:20:53 +08:00 个人经验如下: 1w 行:指哪打哪,需要改啥很快就能搞定 5w 行:需要想应该怎么分不同的包 /命名空间,新 feature 应该怎么设计 10w 行:频繁 code review,防止菜鸡同事写出浆糊代码 100w 行+:保证 bug 不比 feature 多,其他都是虚的 |
27 Kirie 2021-01-16 09:23:26 +08:00 不能在合理时间内完成编译的代码 |
28 lplusk 2021-01-16 09:55:24 +08:00 至少需要一个专业的 QA 负责把控项目质量 => 中型规模以上项目 至少需要五个专业的 QA 负责把控项目质量 => 可被称为大型项目 |
29 byteX 2021-01-16 11:11:41 +08:00 我觉得通过代码行数 /代码质量去鉴别的话无异议,应该看有多少人用。一百万行一万个人用,一万行一百万人用。 |
31 snBDX1b0jJM4ogKd 2021-01-16 14:51:03 +08:00 via Android @cloudfstrife #1 你这个命令怕是统计不了大型项目 |
32 FrankHB 2021-01-16 17:25:32 +08:00 楼上某位,一个 cloc . 搞定的东西怎么还要敲 find …… |
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 地址空间了。) |
34 daijialong 2021-01-16 17:58:59 +08:00 当你的项目代码有 10 个 G 大小就是大型项目了 |
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 --------------------------------------------------------------------------------------- |
36 rb6221 2021-01-16 20:18:00 +08:00 我大概估算一下我现在开发的项目应该是 50-100w 行,我觉得算中型吧 大型感觉要百万 |
37 paoqi2048 2021-01-18 22:21:37 +08:00 @cloudfstrife 是 grep -v ^$吧? |
38 cloudfstrife 2021-02-04 11:56:24 +08:00 @paoqi2048 #37 是的,写错了,敲太快了 |