- 主题:有人写过超过一万行代码的程序吗?
一个人,任何语言。不一定要是产品,proof of concept 和 demo 以及一个模块都算。我没写过超过一万行的,我感觉达到五千行以后就很难控制了,会开始出现难以修复的 bug ,代码质量开始下降,人开始失去耐心,并开始忘记自己写过的代码。
#发自zSMTH@Moto Z3 Play
--
FROM 87.93.200.*
我主要是写 c, cpp, py ,都没写过超过一万行而且是一个人负责的程序。
举几个我比较熟悉的例子。gcc 一个 pass ,一般在几百到小几千行。qemu tcg 大概一万五千行;openssl ecc 接近四万行,但其中有效部分大概两万行。这种复杂度明显是我的极限了。
要一个人写一个完整的 qemu 或者 openssl 那得把我逼疯。
【 在 eggcar 的大作中提到: 】
:
: 写c试试,10000行连框架都没搭起来
#发自zSMTH@Moto Z3 Play
--
FROM 87.93.200.*
整个 intel 一年 merge 进 kernel 的代码不到十万行。排名第十的公司只有一万行。所以我估计一个人一年的有效产出差不多就是一万行到顶了。
【 在 callmebbser 的大作中提到: 】
:
: 一个超万行的独立程序都没写过,还能叫程序员吗?
:
: 【 在 philbloo (philbloo) 的大作中提到: 】
: : 一个人,任何语言。不一定要是产品,proof of concept 和 demo 以及一个模块都算。我没写过超过一万行的,我感觉达到五千行以后就很难控制了,会开始出现难以修复的 bug ,代码质量开始下降,人开始失去耐心,并开始忘记自己写过的代码。
#发自zSMTH@Moto Z3 Play
--
FROM 85.76.76.*
好吧,你厉害。我最近三个月写了不到五千行 py ,已经尽全力了,而且代码质量快要失去控制了
【 在 hgoldfish 的大作中提到: 】
:
: 瞄了一眼。。我这半年的产出大概是两万行。也就是一年的产出是四万行左右。python 代码。
:
: 【 在 philbloo (philbloo) 的大作中提到: 】
: : 整个 intel 一年 merge 进 kernel 的代码不到十万行。排名第十的公司只有一万行。所以我估计一个人一年的有效产出差不多就是一万行到顶了。
#发自zSMTH@Moto Z3 Play
--
FROM 85.76.76.*
请教一下,这十万行是全部都能装在脑子里吗?还是需要注释的辅助才能想起来?还有,你对这些代码的质量是很满意还是觉得有改进余地?
【 在 ancksunamun 的大作中提到: 】
:
: 我是一个科学软件的作者,超过10万行程序,github上的记录是一百多万的change。
#发自zSMTH@Moto Z3 Play
--
FROM 87.93.200.*
一天写两千行 cpp ,连续写两个礼拜?服气。我最快的速度也就一天两百行 cpp ,想的时间远超过敲键盘的时间,所有重要的函数都是改几十次才能定型。比如最近花了一整个礼拜带周末,才写完一个 pass,做齐次方程变形的量纲分析和 code motion,总共也就两屏的 py ,外加一个十行的测试用例,等过几天加了测试估计还得改。
【 在 here080 的大作中提到: 】
:
: 一看你就是缺少软件工程的能力。
: 一万行代码级别的程序一个人写,只要自律规范,非常轻松。努点力两个星期就搞定了还能附带三万行测试。我说的可是C++
:
: 难的是你带3个小弟将一万行代码的工作分拆出去让他们作,还能保持代码质量和风格统一。
#发自zSMTH@Moto Z3 Play
--
FROM 87.93.200.*
哦 一个产品做七八年那是能背下来了 坚持下来不容易
【 在 ancksunamun 的大作中提到: 】
:
: 全在脑子里,这个项目我已经维护了七八年了。文档也很多,几百页,网页wiki也有几十页。代码在不断改进,不过主要是应用新的技术,比如核心改写成OpenCL,支持docker之类的。
: 【 在 philbloo 的大作中提到: 】
: : 请教一下,这十万行是全部都能装在脑子里吗?还是需要注释的辅助才能想起来?还有,你对这些代码的质量是很满意还是觉得有改进余地?
: :
#发自zSMTH@Moto Z3 Play
--
FROM 87.93.200.*
有些逻辑很难拆分 十个 pass 相互作用 分成多少个模块或者函数都得把所有算法记在心里
【 在 javaboy 的大作中提到: 】
:
: 和我的体验差不多。
:
: 其实可以再细致一点:
:
#发自zSMTH@Moto Z3 Play
--
FROM 87.93.200.*
不是科学研究 没那水平 也是做工程产品的 跟别人合作的时间大概占一半吧 也给 Intel 的 driver 还有 llvm 都发过 patch 。参加过上千万行代码的产品,不过在里面负责的部分都局限在几个模块里面。
【 在 here080 的大作中提到: 】
:
: 这么看来你做的是科学研究,不是软件工程。
: 科学界的代码一般更讲究小而精,不讲究大工程质量。两千行以下的工程一般不太需要注重风格。
: 我猜你大概不常与别人协作写代码?如果你的代码别人要用而别人的代码你也要用,就容易变得注重规范。而一旦规范起来了,工程变大对代码质量就不会有什么影响了。至少几十万行的工程是不难的。
: 【 在 philbloo (philbloo) 的大作中提到: 】
#发自zSMTH@Moto Z3 Play
--
FROM 87.93.200.*
居然。。。
【 在 fanci 的大作中提到: 】
:
: 等一下,我看的是十大第一吗?!
#发自zSMTH@Moto Z3 Play
--
FROM 87.93.200.*