领域工程组的首要工作是使用领域驱动开发来改造传统的三层架构。在项目规划和需求工程和架构设计阶段,两名工程师进行用例驱动的构件开发,两名工程师建立打印信息系统的领域模型和领域服务,随着逻辑不断增加,传统三层架构中的业务逻辑层的代码在业务工程组未开启时就已经臃肿不堪,例如一个微信支付的服务类有400多行代码,通过依赖注入的方式实现具体业务时,又会提出新的要求,到时再由领域工程组来修改这个微信支付服务类,这种做法不满足开闭原则和依赖倒置原则,这个时候,事件驱动架构给我们提供了解决办法。我提出把业务逻辑层拆分为业务层和领域层,这两个层之间通过EventBus进行解耦,领域层内又分为领域模型、领域服务、领域仓库,领域层是独立的,不因为业务层新增需求而改变,以微信支付为例,领域工程小组开发完成这个服务后,若未来业务工程小组提出该微信支付服务不满足具体需求,领域工程通过抽象分离,开发另一个服务供调用,另一个服务在领域工程中可以共用领域仓库和领域模型,由此实现高内聚低耦合的系统,若微信支付功能需要两个领域服务的情况出现,也要考虑是否需要将特殊需求的业务代码放在业务层,在领域层尽量使用一个微信支付服务。