看到这一章时,首先映入脑海的一组关键词是:高质量,高性能,易扩展,易维护,可读性高。
作者Weinberg给的有些许差异,关键词:技术规范,进度计划,适应性,效率。
这里牵扯到一个如何评估优秀程序,进而衡量优秀程序员的标准问题。
在boss们看来,最重要的因素是进度计划,如果影响schedule,那这个程序就不是好程序,因为一旦丢掉市场,你的程序变的没有价值,也就是说最重要的是经济因素。从市场的角度来看,实际情况是第一考虑点就是schedule,合同在那摆着。比尔盖茨被称为最优秀的程序员也是因为windows市场的巨大成功。商用价值体现了程序的价值。
这里我想提的是,符合技术规范的程序,也即可用的程序远比效率高而不可用的程序价值要高(不是优秀,是价值),所以我崇尚UNIX的哲学:simple is beautiful。
作为主管,必须在效率和可用及schedule上作出权衡;作为程序员,切不可为了效率而效率,一味追求技术的成就感而忽略了进度。往往项目经理急的要死,而程序员却在调试他心中认为的优秀程序,此时应该记住”程序的价值体现:第一必须是可用,体现功能价值;第二输出到市场,体现商业价值“。另外,很大一部分程序员认为高效率的程序才是优秀的程序,而不考虑扩展性和可读性等等其他因素,这样的程序员的成才之路必将坎坷。