作为一个,每年都要开发很多项目,如何在开发中提升软件开发效率,更好的复用代码功能,一直是我们追求的事情之一。
代码复用不是简单的进行代码拷贝,它需要能很好的融入新的系统,下面我们就实际开发的经历和大家分享下。
软件开发中,整个系统是由多个不同的功能模块组成的,模块之间保持一定的通信,从而使整个系统很好的运行起来。我们以crm系统为例,含有的功能大致:客户管理、日程管理、潜在客户管理、订单管理、报价单管理、营销管理、发票管理等等。crm系统对不同的行业和具体的客户可能会有所不同,但有些基础的功能还是类似。当然除了这些应用功能外,还有些系统的基础功能,比如:权限管理、系统用户管理、数据备份、参数设置等等。
我们这里讨论的软件开发不是产品化的软件,是面向客户的定制软件类软件,有些客户考虑到自己的数据安全,和自己的业务流程完全吻合,会选择进行定制。定制就意味着需要进行单独的架构设计,设计出吻合客户业务需求的系统,如果完全从零开始开发不是不可以,但是周期会拉长许多,开发的成本也会高不少。既然crm系统基础功能类似,那能不能把一些功能模块进行模块化开发呢?这样对于新项目,就无需再次进行开发。这就是模块化开发的由来。
模块化开发不是把代码搬运过来就完事了,我们在对这个模块的第一次开发的时候就要考虑到后续的模块化部署。还是以绅士狗为例,比如客户管理模块,功能基本相同,不同点是客户对象的内容有所差别。如果项目开发的多,则模块化积累的多,这样新项目开发的周期就会缩短很多。当然这个是针对同类系统的开发而言,如果是完全不同的系统,功能完全是全新的,则无法使用之前的模块化,但是还是可以在开发的时候考虑模块化开发,这样如果由后续的类似项目就可以提高效率。