“大千世界中,唯一缺乏的就是人类的注意力。”——凯文•凯利
要使软件易于阅读和修改,所需要的不仅仅是一些原则和模式。还需要你的注意力,需要纪律约束,需要创造美的激情。
每一个软件模块都有三项职责。
功能职责(是否完成了功能?)
它运行起来所完成的功能,这也是该模块得以存在的原因。变化职责(是否能够应对变化?)
它要应对变化,几乎所有的模块在它们的晟敏周期中都要变化,开发者有责任保证这种改变应该尽可能简单。一个难以改变的模块是拙劣的,即时能够工作,也需要对它进行修正。交流职责(换一个人,是否可读?)
要和阅读它的人进行沟通。对该模块不熟悉的开发人员应该能够比较容易地阅读并理解它。一个无法进行沟通的模块也是拙劣的,同样需要对它进行修正。
小知曰:好的模块一定是符合“开放封闭原则(OCP,Open Closed Principle)”的,即:对扩展是开放,而对修改是封闭。