看过不少相关软件体系结构的书,理论随口道来,丝毫不成问题,然而第一次接触企业级架构,感触是非常大的。
所谓模块化, 模块化是指解决一个复杂问题时自顶向下逐层把系统划分成若干模块的过程,有多种属性,分别反映其内部特性。
这是百度百科的解释,嗯,很高大上,然而如何实现模块化呢,确是丝毫没有道明。
经过这些天在理赔外包公司的打磨,做了一些相关于系统架构的需求开发,也基本了解了公司的架构方式。
先说明一下,公司是做保险理赔外包流程的,软件开发主要是为了辅助业务处理,是给车间工人处理流程使用的,主要功能在这里不再一一介绍了,客户主要有新华人寿、泰康人寿、同方全球、建信等国内的顶级保险公司。
如果所有公司的业务需求个处理流程完全一致的话,好办,一个模板解决一切,关键问题是各个公司流程一样但对处理细节有不同的要求,必须独立开发。还有一点就是,虽然业务流程的处理略有不同,但是对于用户、角色、模块、菜单等的管理确是一样的。
好吧,现在有了公用模块和各个公司的私有模块。之后就是架构了,用脚趾头想也知道公用模块共享,私有模块独立开发:
1、登录时注册数据库连接,为各个模块共享数据源,在模块加载时赋值于模块内部独有数据源
2、功能分别安排在不同的模块中,单一模块单一职责,分配模块号,共用数据源,模块之间耦合为0
3、登录系统后,根据不同的工程名称从数据库中读取Module表,获得系统的所有模块号加载模块
这即是我们公司的模块化管理方案。
PS:有人说,软件工程的架构管理和土木工程极为类似,我承认这一说法。这里略作了一下思想斗争,系统去除一个独立功能模块对系统没有什么影响,房子少了一面墙壁便不在完整。但想了想,独立功能模块可称为系统的子系统,房子少了一张座椅也没有什么影响,有这两点,这个“有人说”似乎更加确凿无疑。