今天与另外一个面试官共同面试了一位软件设计师,关于“结合项目的应用经验,如何提升架构的扩展性?”
的问题,引起了个人思考,在软件架构设计上,关于软件架构的扩展性,软件架构师应该关注问题:
1.架构分层
软件架构的合理分层对软件框架的可扩展、可维护、可理解有很大的帮助。软件架构师应在
软件设计前期,合理地对软件架构的分层,明确各层的职责,层层之间的交互规范、约束。合理
的软件架构分层,对于今后框架设计以及业务应用设计的扩展指明了方向和目标。
2.设计模式
在软件架构设计过程中,根据项目的实际需要,合理应用软件设计模式,建立实际项目应用
场景与设计模型的使用样例,提供采用设计模型对软件的扩展性、可维护性等进行具体的说明。
指引设计人员的设计工作。软件设计人员在实际应用中要不断加深对设计模型的理解,并
不断根据项目需要合理地使用设计模式。
3.过滤器、拦截器、事件机制
软件设计师应该深入理解过滤器、拦截器、事件机制等实现原理。
4.扩展点
开源框架ECLIPSE提供了较好的扩展与扩展点的实现方式。
5.工作流
基于SOA实现的项目,结合工作流,能按需组合业务应用流程,对应业务应用的扩展提供了较大的帮助。
6.规则引擎
引人规则引擎,处理复杂业务规则的应用
7.OSGi技术
OSGi技术是目前企业应用框架中比较流行的架构,采用OSGi服务平台搭建J2EE的应用,应用项目能够可重用、可插拔,并能按需部署,结合Spring DM能够很好地发布和获取OSGi服务。