可持续发展不仅是项目架构设计,还与代码质量密切相关,代码的整洁度与质量成正比。——RobertC.Martin,“整洁的代码”代码质量究竟会带来多大的不同。【代码量】我们知道,代码量的多少体现了功能的复杂程度。例如,WindowsXP的代码量超过2000万行,Linux内核有1500万行(2012年)。但是,代码量和函数数量之间并没有线性关系。在一个优秀的设计中,代码量和功能数量的关系是这样的;在一个糟糕的设计中,代码量和功能数量的关系是这样的:一个优秀的系统往往有一个优秀的结构设计:层次清晰,职责单一,模块化,便于扩展或复用。添加功能通常只是在现有框架中添加少量代码。然而,在一个糟糕的设计中,层次混乱,相互耦合,难以阅读,难以重用,难以扩展。每当我被要求添加一项功能时,我都必须几乎完全实施整个功能流程,并解决与原始系统的所有兼容性问题。[评论]在好的代码中,评论是这样的:在糟糕的代码中,评论是这样的:最愚蠢的程序员可以写出机器可以理解的代码,最好的程序员可以写出人类可读的代码来理解代码。程序注释是为了便于阅读。在大多数优秀的代码中,注释几乎占了代码行的一半,描述函数功能,解释参数配置,指出陷阱。糟糕的代码不仅不包含这些注释,甚至还保留了大量的残留代码,可读性差,难以重构。[命名]好的代码,命名是这样的;坏的代码,命名是这样的:命名是为了让代码更易读,使用标准化的术语不仅更容易理解,而且是开发人员的知识水平和开发经验表现。如果说用汉语拼音来命名很奇怪,那么直接用a、b、c、d来命名就可恨了。谁记得你的a是个神奇的东西!看一个经典的例子,字符串替换:一点Java常识一想到正则表达式,你就会想到正则表达式:为什么要抄这一堆代码给老大看?开发中确实有很多时候,直接复制代码就可以马上完成功能,而不影响原来的功能。但当此类代码较多时,如遇功能调整,则需重新调试所有副本。值得花一些时间学习更优雅的用法。[功能]保持功能简短,使您的代码更具可读性,例如:逐步完成复杂的逻辑。如果写在一起,会是这样的:相信我,一旦你写出这样的功能,随着时间的推移,它会越来越长,直到有一天,你也忘记了其中的一段代码是做什么的。其实,复杂的功能不能只按步骤划分,更应该按层级细化。不要在一个函数中进行不同级别的操作,否则会变得很晦涩。
