软件开发的家园,编程爱好者的天地.

现在是:北京时间 2016/4/14 上午11:50:51 星期四

设为首页  |  加入收藏  |  网站地图

当前位置: 第八基地首页 > 软件工程 > SOA >
软件架构浅谈:问题域及其解决方法(4)
发布于:第八基地 来源:互联网 作者:天堂路上 时间:2016-04-24 点击:254

1.业务上。问题域分解为,逻辑的纵向抽象层次,以及逻辑的横向模块分解和集成。

  2.技术上。问题域分解为,纵向的技术主题,以及横向的技术职责的分解和集成。

  所以通常而言,领域模型设计中,模块分解,抽象分层和职责分层都是重要手段。问题域为:流程,业务实体和计算(包括规则)。

  对象的抽象分解和集成

  对象的依赖分解和集成(模块内和模块外)

  流程的分解和集成(页面流,工作流以及计算流程)

  进程边界:用户请求重定向,以及业务数据持久化等。

  BTW:通常语言做为架构的基础引入和更换是有巨大风险的;而通过提供强大的框架能力,框架尽可能多的完成技术问题,并通过元数据,模式以及约定降低业务和框架的耦合。避免因为框架升级带来不必要的成本。

  从技术手段上,提高开发效率的另外两个手段是代码生成和类库引用。但代码生成和类库引用,都只解决了逻辑的分解能力,没有提供集成能力,所以一般情况下需要提供框架集成,尤其代码生成需要在系统的最外层,避免集成带来的问题。

  对于开发团队来说,额外面临一个问题,组织内部的学习成本问题。

  1.需要保持分解以及集成能力本身的简约性

  这个……其实是一个culture问题,不再罗唆!

  2.采用模式和约定是减少学习成本的另一种手段。ROR的兴起就是最好的例证。

  总结一下,解决架构面临开发成本问题需要如下几个方面:

  0.问题域

  1.分解与分层

  2.架构与类库,Spring,Hibernate。起支撑性作用。

  3.模式和技巧

  4.领域模型

  5.方法论

  5.1.开发方法:OO(设计模式),FP(函数式编程)。

  5.2.设计方法:DomainModelPrototype和业务行为的分析模式。

  架构面临的品质问题,则通过自动化测试,代码检测工具来完成。

  必须大量应用自动化测试,减少人工硬调试的复杂性,重复性和不确定性。

  自动化测试包括单元测试和集成测试。无论是单元测试还是集成测试对面临需要脱离隔离依赖关系并保证开发的并行性。

对我有帮助
(0)
0%
对我没帮助
(0)
0%
返回顶部
在线反馈
在线反馈