我们为什么需要高质量的代码? 你是否有过为了修改一处简单的功能,看了半天源代码而无从下手的时候? 你是否遇到过前端未正确处理异常,导致页面白屏的时候? 你是否遇到需要重构一大堆代码,却发现没有任何测试用例,只能靠人肉回归的时候? 这三个常见的场景分别对应代码质量衡量指标中的可维护性、鲁棒性和可测试性。因此代码质量并不是只是与维护者的心情息息相关,与软件的交付质量也是密不可分。
知名程序员如何看待高质量的代码 Bjarne Stroustrup C++语言发明者,《C++程序设计语言》作者 我喜欢优雅和高效的代码,代码逻辑应当直截了当,叫缺陷难以隐藏;尽量减少依赖关系,使之便于维护;依据某种分层战略完善错误处理代码;性能调至最优,省得引诱别人做没规矩的优化搞出一堆混乱来。整洁的代码只做好一件事。 Grady Booch UML创始人,《面向对象分析与设计》作者 整洁的代码简单直接。整洁的代码如同优美的散文。整洁的代码从不隐藏设计者的意图,充满了干净利落的抽象和直截了当的控制语句。 Ward Cunningham Wiki发明者,极限编程创始人之一 如果每个例程都让你感到深合己意,那就是整洁代码。如果代码让编程语言看上去像是专为解决那个问题而存在,就可以称之为漂亮的代码。 代码质量指标 可维护性 系统的可维护性是衡量一个系统的可修复(恢复)性和可改进性的难易程度。所谓可修复性是指在系统发生故障后能够排除(或抑制)故障予以修复,并返回到原来正常运行状态的可能性。而可改进性则是系统具有接受对现有功能的改进,增加新功能的可能性。 可读性 罗伯特·根宁公式 句子的形成。句子越单纯,其可读性越大。 迷雾系数 (Fog index)。这是指词汇抽象和艰奥难懂的程度。因此,迷雾系数越大,其可读性越小。 人情味成分。新闻中含人情味成分越多,其可读性越大。 新闻可读性的研究是随着西方报业竞争兴起的,其目的在于改进新闻写作,以求扩大发行量。除去第三点人情味成分,前两点对于改进代码的可读性也有着普适的借鉴意义。