从事企业信息化系统开发已经3年,回顾这3年的历程,深刻体会到的一点是:软件的架构设计,不是越全面越好,而是越简单越好。简单到对开发者透明最好。
那么,一个架构设计,到底需要提供什么呢?个人认为,只需要提供三种机制:
一、客户端和服务器的通信机制,缺少通信机制的支撑,只好做个单机版;
二、包含功能权限和数据权限的全面权限机制,这里其实并不包括权限管理功能,我认为权限管理功能是一项业务。而机制,则如同自然规则一样,虽然看不见摸不着,但却无处不在。
三、业务模块的动态加载机制,如果不能动态加载业务模块,则开发新模块和发布新功能都会很麻烦。
如果你的系统是C/S模式,那么还需要客户端的自动升级机制。
除此以外,做得越多,约束越多。开发到后面,就会发现系统不重构不行,而重构也是困难重重。用“积重难返”来形容,实在是没法再贴切了。而一个轻便的,甚至是透明的架构设计,则可以做到和业务完全无关。无论今后需要开发什么样的功能,都不需要变更架构的设计。在技术升级换代后,升级架构也非常容易。