这两天刚把写了半年多的 web 后端( Python 语言)部署线上,闲来没事,写了个小脚本遍历了下代码行数,缝缝补补一万多行的代码量,突然有个牢骚,问下各位大佬,在尽力保证代码质量的情况下,多少行代码算大型项目 [斜眼笑]
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 ``` :) |
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 2
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 2
|
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 1
个人经验如下:
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
xytest 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
janus77 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 是的,写错了,敲太快了
|