OO能在中国中小型软件企业中生存吗?
我从事几年的面向数据库设计,做过几个大项目,可以说是经验丰富,最近终于有机会能使用DDD思想来做一个新的项目,前几天完成了项目开发,做完这个项目后让我非常之喜欢OO,DDD.
使用OO进行设计,通过对象来建立系统的模型更符合人的逻辑思维,对象思想非常贴近现实,通过对象来理解系统更有意义;而使用面向数据库设计,必须通过数据库表来表达系统,数据库表虽然也能表达业务模型,不能生动的表达现实的业务意义,主要表达业务数据意义,通过数据库表理解系统比较困难。
使用OO进行编程,程序代码更加优雅、更具有生命力,面向对象编写出来的程序,展现对象之间的协作,很生动。而使用面向过程编写程序代码,枯燥乏味,是顺序的代码,而且同事伴随着大量的if else 条件语句去表达业务逻辑。
总之我喜欢OO,喜欢DDD. 然而在前几天公司内部的项目总结会上,我的观点受到部门经理和其他项目人员的质疑,部门经理提出以下几点:
1。面向数据库设计,一样能做出很好的设计,好的设计人员设计出来的表结构和你用面向对象设计后的表结构差不多。
2。面向对象,不能提高开发效率,反而增加开发人员和设计人员的要求,增加公司得人力资源成本。
3。面向对象编写的程序,以后换个人维护,很难维护啊,要求维护人员必须懂面向对象,这无疑提高人员的要求,公司以后招人要求要更高。
4。面向对象编写的程序,看不见出哪里比面向数据库设计好多少啊。
面对这几个问题,任我如何解释,说到口水都干了都没有用。本来希望能将OO得经验在公司推广开,没想到会是这样。开会最后,部门经理说现在公司不关心什么OO, 关心的是低的开发成本,使用OO会给公司带来一定人员的要求,这会加重公司的成本,使用传统面向数据库设计,面向过程编程,随便招个新人,了解业务就可以维护代码。
听了这些话后,我心情很低落,难道OO根本不是中国中小型软件企业的解决目前软件维护成本高的良药吗?如果是这样,那中国有多少个软件企业是使用OOD,OOP呢?