设计模式
翻译成设计模式总有种教条的第一感观。然而笔者想指出的是,每种工具(具体到软件开发人员手里便是编程语言)总有其局限性。从头打造一个既适合自己使用习惯又能应对任何情景的“语言”似乎难度异常艰巨,总有不尽人意之处。我们不妨换个角度看,当一个工具不那么满意的时候可以通过改变使用习惯,总结经验并应用到日后的工作中去。用工匠的说法,这就叫 手法和套路 。经过超过半个世纪软件工程的发展,加上人类文明上千年的经验,解决问题总是有理可循的。应用这些手法与套路,可以让原本局限的工具通过软性(使用者的主观能动性)来使之具备原本不具有的各种好的特点(例如灵活性,健壮性等等)。
做个比喻就是小说作者与剧作家很少会“凭空想象”或者“臆想”一个情景,而是会使用现成的主题,例如“悲剧伴随着英雄”,“浪漫故事”等等。
可维护性包含方面
面向对象软件设计中
-
找出有共性、相关的对象,抽象成为具有合适粒度的接口与继承关系,抓住关键因素
-
设计要能针对手头需要解决的问题,又需要具有通用性质来应对未来的问题与需求
-
避免重新设计,尽量少的重新设计
开发者本身可以做的事情
一个熟练的设计者,一个经验丰富的老工匠,总是有自己的一套思路与手法。
-
抽象化问题,总结经验,深层次思考
-
使用已经被多次证明 行之有效 的设计