为什么需要面向对象设计要点。
这似乎是非常书面上的概念,但在最近工作当中,发现这些要点,对于生产效率、质量影响很大。
特别是在大多数团队中,并没有设计和编码区分,程序员的对于软件的框架起决定性影响。程序员是否有基本的面向对象设计的知识、技能,直接影响到代码的的结构。
可能大家觉得先设计而后编码,就是瀑布了,这不一定。就算瀑布,也不是假定一个项目就是所有一次瀑布下来。这里就不扯远了。是否先设计再编码,各有利弊。先设计,再编码,那么可以是技能比较高的人员做设计,然后技能一般的程序员按照设计编码。好处在于,高技能人员决定程序框架,使得程序结构良好;高技能人员的知识技能得以复制和全播。这么看是有利于成本、质量、交付期的控制的。这里没有说一个产品或一个项目,全部一次设计。这里反复明确这一点。无论什么样的开发过程,将大块劈成数个小块,是最基本的利于开发实现的方法。或横向劈成数小块,安排到不同小组实现,或纵向切割,分不同时间阶段实现。现实当中,先设计再实现,是有很多挑战的:(1)很多程序员不喜欢事先的限制。(2)大部分公司并无这样的大牛。(3)一个大牛负责好多项目,不能具体到一个产品或一个项目,一个模块那样去设计。(4)组织整体氛围,总是项目或/产品多,人员少,无论是管理人员,或程序员,除了编码之外的工作都不认为是在推进软件实现,普遍的焦急,这样的氛围不允许真正设计工作存在。(有设计文档也只是应付检查的)更多的情况是,组织里大家都是动手累代码的。这种情况也是有有点的。不过最好是这些团队成员,技能比较到位,那么一出手,就比较靠谱。
基于以上的原因,整理一些面向对象设计要点的文章。

浙公网安备 33010602011771号