最烂|世界之最!史上最烂的开发项目:苦撑12年编写600多万行代码
文章插图
文章插图
到底有多烂?用下面这组触目惊心的数据告诉你↓↓↓●总共600多万行C++代码●总共50000多个类●受编译器版本限制,用的C++语法都是陈旧过时的,只能在某个(早就没有维护)的操作系统上部署●基于CORBA●采用的数据库软件来自一家早就破产的公司●好几层互相叠加的层共同组成了用户界面,而且这些层没有一个是由原作者维护的●运行一个用户界面需要启动40-50个子线程●在32台并行的机器上需要48小时进行编译●没有采用运行库动态链接技术,一个可执行程序就有好几百兆那么大●启动这玩意大约需要15分钟●然后一般30秒到30分钟内会崩溃
文章插图
你从未见过的“地狱级”烂项目十年前的2008年,科技博客projectfailures爆料,博主那几年曾受雇于法国的一家大型科技企业,参与过一个政府机构委托的软件项目,职位是咨询顾问。在那里,他亲眼见证了登峰造极的愚蠢和疯狂,以及它们在软件开发工作中起到的可怕作用。十年过去了,这个地狱般的项目又被人翻了出来,再次炒的沸沸扬扬,而projectfailures博客甚至还就此专门出了一篇回顾。
文章插图
啥啥啥?不过是写点代码而已,除了赔上头发,难道会连命都搭进去吗!?这个项目咋这么恐怖啊!
文章插图
这项目到底啥情况?大约是1996年,法国的一个政府机构请某个公司开发一款软件。总的来说这玩意应该不太复杂,只不过有一些不太寻常的小问题需要解决罢了。甲方预付了几百万欧元,计划工期大概2~3年左右。于是公司招了几个程序员,开始干活。随着资金陆续到位,这公司开始疯狂招人,每隔三个月左右就把队伍扩大一倍。
文章插图
结果,7年过去了,这个项目根本还不成型。因为延误造成的罚金每天都达几千欧元。于是管理层决定,要精简一下团队,减少项目开支——具体做法是,把干活的人都开了,另外招一些对软件开发没啥经验的新手来上班。项目开始10年后,整个项目已经深陷在灾难的泥潭中,完全是由纯粹的混乱所组成。于是项目的中层管理者终于决定要招一些具有软件工程开发经验的人,来把这个烂摊子从地狱里拖出来。又过了两年,这项目居然还在苟延残喘。这公司通过给甲方发送金额不断提高的“设计变更”账单,来弥补每天产生的工期延误罚金。这都2008年了喂!
文章插图
这项目怎么能烂成这样?01)代码质量惨不忍睹在语言选择方面,没人敢说C++是种简明易懂的语言。事实上,在简洁方面,C++可能算是最糟糕的一种编程语言了吧。要知道,它可是复杂到连它的创造者BjarneStroustrup本人都不敢说自己完全掌握了这门语言。
文章插图
当然,这不能全怪开发团队。要知道,在当时,像C++这样拥有无尽复杂度的思维迷宫还是大有市场的。许多希望成为超级程序员的年轻人都对这门听起来超牛逼的语言趋之若鹜。而事实上,这些可怜的娃们,最后大部分都被C++虐惨了,多少美好的青春,都耗费在反复调试一大段晦涩难懂的代码,耗费在探寻为啥这程序会毫无理由莫名崩溃这样的事情上了。而脑子正常的人,则纷纷转向了其他语言和其他项目上去了。要知道,人生苦短啊!
文章插图
不过,看起来,这家公司并没有跳出这个圈子,还是一个猛子扎进了C++坑里。退一步说,不管你用的是什么编程语言,维护一个巨大的代码库本身就不是一件容易的事情——而这个项目的代码库居然有600多万行之巨。那,600多万行代码是个什么概念?对比下Linux3.13版内核的代码,在除去内核驱动和架构之外,在kernel/里的源代码也不过就13万行左右;另一个例子是著名的编辑器Emacs,它因为功能太多太庞大,常被人吐槽成“缺乏一个好编辑器的操作系统”,但即使如此,它的总源码规模也不过就是165万9千多行。就算你特别厉害,一目十行,你大概也要在显示器前面不眠不休花上7天,才能把全部600万行代码全部过一遍。于是我们可以想见,维护这么大一个代码库,可得逼疯多少程序员呢。看看下面这两个例子,我想,如果我是程序员的话,我也会先疯为敬吧。
- 史上最短命旗舰!为了华为P50:Mate40部分机型疑似停产
- 史上最全Python反爬虫方案汇总
- 前端开发|腾讯历史上首个专职前端开发:前端开发转到云上开发需要几步?
- 跨境电商拉开序幕,综合电商也要来分一杯羹|史上最长“黑五”·交锋| 考拉海购
- 真假难辨、运费高、清关慢……跨境电商怎么破?|史上最长“黑五”·大考 | 跨境
- Mate40|功耗超低+超长续航,史上最强Mate,华为Mate40然没让我失望!
- 特斯拉太阳能屋顶继续扩张,因为太阳能发电是历史上最便宜的电力
- 裂变活动|微信群裂变实操指南,史上最全干货
- 坚果坚果R2发布会,堪称史上最惨发布会,但创新值得鼓励
- 口碑|7年亏损150亿口碑最烂快递,依旧超海外快递数倍