“大千世界中,唯一缺乏的就是人類的注意力。”——?jiǎng)P文?凱利
要使軟件易于閱讀和修改,所需要的不僅僅是一些原則和模式。還需要你的注意力,需要紀(jì)律約束,需要?jiǎng)?chuàng)造美的激情。
每一個(gè)軟件模塊都有三項(xiàng)職責(zé)。
功能職責(zé)(是否完成了功能?)
它運(yùn)行起來(lái)所完成的功能,這也是該模塊得以存在的原因。變化職責(zé)(是否能夠應(yīng)對(duì)變化?)
它要應(yīng)對(duì)變化,幾乎所有的模塊在它們的晟敏周期中都要變化,開發(fā)者有責(zé)任保證這種改變應(yīng)該盡可能簡(jiǎn)單。一個(gè)難以改變的模塊是拙劣的,即時(shí)能夠工作,也需要對(duì)它進(jìn)行修正。交流職責(zé)(換一個(gè)人,是否可讀?)
要和閱讀它的人進(jìn)行溝通。對(duì)該模塊不熟悉的開發(fā)人員應(yīng)該能夠比較容易地閱讀并理解它。一個(gè)無(wú)法進(jìn)行溝通的模塊也是拙劣的,同樣需要對(duì)它進(jìn)行修正。
小知曰:好的模塊一定是符合“開放封閉原則(OCP,Open Closed Principle)”的,即:對(duì)擴(kuò)展是開放,而對(duì)修改是封閉。