个人随笔,如请转载,请注明出处:http://blog.csdn.net/dingwood/article/details/7540988。
1 高扩展性
我理解的高扩展性就是在需求变动或新增需求时,开发人员能够基于以前的系统架构做出快速开发。
1.1例子:
项目经理李峰把JAVA EE项目架构搭建好后,实习生张飞就按照工作安排进行A、B、C、D四个模块的开发。由于维护需要,在编写业务逻辑处理的代码时,需要将用户的操作记录下来,以方便维护。张飞在写完A模块的日志记录及业务逻辑后,就老老实实的将日志记录代码拷贝到B、C、D等模块,代码的复用变成了代码的粘贴复制,随着工作的进展,客户提出需求,将用户的操作记录下来,权限高的用户可以查看权限低的用户,此时,小张听到这个消息立马傻掉了,因为他的记录日志方法以硬编码的方式散落在各个业务对象中,数十个业务对象都需要修改,即便是修改了一个业务对象,粘贴复制到其他对象也够累的,此时,项目经理李峰说,要用OO思想看世界,将公用的系统需求(比如记录日志、权限验证)进行封装,以方便在每个业务对象中进行调用。在张飞奋斗了一天后,终于把他所负责的模块改完了。------整体架构稳固,公共功能进行封装,提供各模块调用,好比bizware的通讯适配层被封装起来,将报文处理函数(接收8字节、发送8字节函数)以数据库形式记录,主控程序通过读取数据库配置来调用通讯函数,以满足各种不同的并且多变的通讯接口要求。
1.2 针对网银项目的理解
传统网银包括老三样:查询、转账和理财。网银所有的功能都是基于这三类发展和演变的。针对这三类交易,网银接入系统的一般处理流程为:接收并解析报文-->校验(如果有需要)