第1页共6页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第1页共6页实战项目分析最近接到一个临时任务:帮外国某知名公司分析一个项目架构
这个项目是两年前开发的,并且经过了几次升级
主要功能是管理客户、合作伙伴资料,提供在线业务等等,具体细节不用多说
据客户说,他们在使用本系统的过程中发现了很多的问题,觉得已经不再满足他们的需求,希望我们能帮助他们评估一下当前的系统有哪些架构上的问题,并帮助他们发现未来可能发生的问题,从而决定是否需要开发新的系统客户提供了很详细的文档,包括业务说明,系统架构,技术要点,部署方案等等
看完文档,对系统和客户期望有了一定的了解之后,开始干活儿
Net技术构建的,基于
NetFramework2
0,使用了ASP
NET,WinForm,WebService等技术,并使用了EnterpriseLibrary中的DataAccess,Cache,Log等功能
我本人负责的是架构的分析
结合文档和源代码,没用1个小时,系统架构就很清晰了
其中发现了一些很普遍的问题,在这里跟大家分享一下:1
分层架构分层架构是绝大部分企业软件都普遍采用的方案,但由于架构师水平的参差不齐,导致很简单的一个分层,出现了很大的差异
大家都知道“3层架构”或者“多层架构”
有点理论里分3层,有点理论里分5层,还有分7层的
其实,在我看来分几层不重要,重要的是分层的目的
分层是为了什么的
简单的说就一句话:为了便于维护
大家都知道,软件开发中“变化”才是永恒的
开发周期是死的(尽管可以一拖再拖,但总有一个发布的截至日期吧
),但后期的维护却是很不变得
不管是发布补丁也好,更新版本也好,其实都是为了能适应软件发布之后面临的各种各样的“变化”
好,我们回到分层上来
分层,就是为了使系统结构更清晰,系统耦合性变小,使修改一处代码时,对其它的部分影响最小