写了很多代码,碰到过很多项目。我发现在一些小型一点的项目中面向对象可以达到很好的效果,但是在一些大型一些的项目中却很难大面积推行,我想了一下可能有下面的原因。
面向对象的开发理念缺乏理论支持和工程指引。
估计任何一个大学学习计算机或者相关专业的学生都学习或者接触过面向对象。但是在学校课程中给到学生的无非就是三大特性,如果碰到好一点的老师可能就会提及一下SOLID原则。在企业中做项目,关于如何对需求进行抽象和设计很多时候都是技术员各自发挥,而很少有想过引进相关理论去做指引,这样很有可能最后导致就是大型项目无法实现好的抽象从而提高整体的质量。
抽象代码难以被大多数技术人员所理解
在大型项目里面总有一些同事是能够很好的对需求进行抽象并且表达成代码的。但是很多时候大型项目都需要代码可以被任何其他程序员理解和维护。这样抽象了的代码就不能很直接的被其他程序员所理解,在一定程度上面提高了项目管理的难度,这是对系统进行抽象不被项目管理青睐的其中一个原因。
需要对于系统抽象的注解和说明
对于同一件事情,一千个人有一千种看法,对于同一个需求,一千个程序员会有一千种抽象的方式。这种抽象的方式必须要通过有效的方式记录下来,在开发之前让同Team的同事大家都理解和认可了这种抽象方式,这样在后面开发和维护的时候才能让团队有一致的认识以及可以大家一起贡献代码。所以UML,设计以及设计的宣讲在团队里面十分重要。
硬性地对真实事物的映射
在小型项目,因为需要处理的逻辑不复杂,按照真实事物来搭建模型还是可行的。但是在大型系统里面,要处理的事物十分复杂,如果尝试用代码映射整个真实事物会把代码带来大量无谓的复杂性。对象模型只能是对于真实世界事物的抽象,只要抽象的方式