主要观点总结
本文介绍了John D. Cook在博客中提到的一个概念——Norris常数,描述了未经训练的程序员在写代码时,能写出的平均代码量存在一个瓶颈,超过这个量后代码会变得混乱难以维护。文章详细讨论了这一观点,包括Clift Norris的发现和梦工厂的经验,以及一些技术领导的见解。
关键观点总结
关键观点1: Norris常数的概念及由来
Clift Norris发现了一个基本常数,即未经培训的程序员在他或她遇到瓶颈之前能写出的平均代码量,被称为Norris常数。Clift估计这个值是1500行。
关键观点2: 梦工厂的经验
在梦工厂,程序员的代码行数经常遇到2万至2万五千行的瓶颈,超过这个数的新特性难以增加。作者自己也有类似的经验,编写了一个照明工具,通过改变编程方法成功交付了大约2万行的代码。
关键观点3: 突破瓶颈的关键
突破代码行数瓶颈的关键在于保持简单,避免增加不必要的特性和代码。技术领导需要学会对不合理的需求说“不”,并知道什么需求增加了线性复杂度(只和自身相关)和指数级复杂度(和别的需求有关联)。
关键观点4: 大型代码项目的挑战
大型代码项目如Linux内核,其代码量巨大时面临的挑战是复杂的依赖关系和线性、指数级复杂度的管理。真正的诀窍在于知道如何平衡这些复杂度。
文章预览
在2011年John D. Cook写了一篇 博客 ,其中提到: 我的朋友Clift Norris发现了一个基本常数,我称之为Norris常数,一个未经培训的程序员在他或她遇到瓶颈之前能写出的平均代码量。Clift估计这个值是1500行。超过这个数以后,代码会变得如此混乱,以至于本人都无法轻而易举的进行调试和修改。 我还不了解足够多的初级程序员来验证这一结果,不过我自己认识到,程序员生涯的下一个瓶颈将发生在20,000行。我把Norris常数改成2,000那样正好变成十倍。 在我离开大学之后的第一份工作中,我和我的同事一样(和我差不多年纪)反复遇到了20,000行的瓶颈。在梦工厂我们有950个程序给动画师使用,行数统计显示多的一些基本在20,000 至25,000行。超过这个数的话即再多的努力也无法增加新特性了。 在1996年年中的时候我负责编写 梦工厂的照明工具 (和另外两个程序
………………………………