美文网首页金融基础技术与业务
孔明:DDD设计开发过程管理平台与CFETS-DDD开发框架

孔明:DDD设计开发过程管理平台与CFETS-DDD开发框架

作者: 李戬plutocracy | 来源:发表于2018-01-29 07:56 被阅读101次

孔明是我们这个系统对外的别称。XX中心研发全流程监控管理,遵循DDD理念的设计与开发可视化平台。

DDD设计开发过程管理平台(CFETS-DDD-PLATFORM,以下简称平台)主要完成需求采集和量化管理、设计信息的采集与可视化管理和跟踪、版本发布信息的自动维护和管理、测试计划的自动生成和测试进度的跟踪、以及开发质量评估与可视化。

平台使用基于AxonFramework封装的CQRS框架和AKKA分布式Actor框架开发,吸收CWAP、TS和ISP等工团队实践过程中积累的优秀经验,严格采用DDD概念设计开发。

平台与CFETS-DDD开发框架(以下简称框架)互为一体,平台本身基于框架开发,框架定义需要跟踪的设计信息,框架是一个突出监控和强约束的范式,以便能够主被动结合实时采集设计信息。采集的设计信息经过实时可视化之后,以供需求者、架构师、领域专家和测试者评估。

CFETS-DDD是一个基于事件的高扩展性、强约束性、测试友好、模块化、领域化、微服务化的技术开发框架,它的目的是为公司所有开发者提供一致的技术开发体验和规范化的交付、部署体验。

平台的几大核心概念:

  1. Plugin组件 :一个组件是一个包含业务职责逻辑内核的代码包。代码包是组织协作开发的最佳协作实践粒度。代码包之间需要按照一定的依赖规则组合在一起。组件信息,包含组件的注册信息和组件的授权访问信息通过容器初始化统一加载和鉴权。
  2. Event事件 :行为发生之后产生事件,事件是行为现象的范畴,事件发生之后并不需要关心事件的监听者,也就是说行为本身与监听者监听事件是完全解耦的。
  3. EventHandler或者EventActor :事件处理器。
  4. Message(Command)消息(命令) :在面向对象的世界中,消息定义为触发行为的前置条件,消息必须指定接收者,消息不一定要及时响应(回复),如果需要及时响应那么就用命令方式。
  5. CommandHandler或者MessageActor:命令处理器,消息处理者。
  6. Event Platform事件台 :事件台提供了事件定义、注册、收集、展示、检索等事件管理功能,并为所有基于CFETS-DDD框架开发的进程提供所需注册事件信息的功能,以便开发者和应用进程迅速获取所需要的订阅事件。
  7. Message Platform消息台:消息台提供了消息定义、注册、收集、展示、检索等消息API管理功能,为系统设计者和开发者提供必要的消息的汇总功能。
  8. Event Mesh事件网络 :事件传播机制实现的基础设施,支持进程内事件通信以及进程间事件通信。
  9. Domain Model领域模型:包含聚合、聚合根、实体和值对象以及限界上下文这几个核心概念。

以读写分离的思想为基础,写模型领域化、读模型报表化、模型运行内存化

平台需求

平台的开发坚持少即是多的原则,优先开发有实践意义的功能,也就是开发团队真正会使用的功能。

主要分为:

  1. 需求跟踪类
  2. 开发设计类
  3. 版本发布类
  4. 测试质量类
  5. 技术思想类

集中部署,为所有项目组提供服务,所以优先设计用户和权限模块,最好集成LDAP,与公司现有账户体系关联。

需求跟踪类(项目经理)

严格坚持基于业务功能点细化需求条目,根据细化的需求条目安排相关开发计划和版本计划的原则:

  • 展示对应系统所有需求条目以及详细的分解之后的需求条目,包括工作量分析、关联业务模块分析
  • 展示分解需求条目和开发版本对应的关系
  • 展示各个开发模块对应需求细分条目、开发和测试进度、开发人员、审核人员等关系

开发设计类(技术经理和架构师)

严格基于框架关注的的设计要素,集成绘图开发工具包(Echarts/D3.js/breeze等),关联展示并自动形成应用架构图:

  • 以图和表的形式展示系统目前正在开发和部署的所有组件及其版本信息
  • 查询该构件的相关依赖关系,包括直接依赖、间接依赖,以供设计者参考分析
  • 展示构件的主要功能和提供API使用的markdown文档
  • 绘制和展示组件的领域模型,以供需求人员、设计人员和开发人员以及测试人员交流评估开发质量,甚至领导洞悉技术细节
  • 绘制事件风暴模型(Event Stroming),以便展示系统整个业务需求的全貌和设计细节,减少人力投入
版本发布

版本发布类(代码审核专员、配置部署专员和DBA)

  • 以组件维度展示每个组件的版本提交和发布历史(release note)
  • 每日凌晨3点自动更新所有组件间的依赖到最新依赖
  • 人工审批更新基础数据和交付数据脚本
  • 自动对各个版本的代码提交进行校验,校验提交是否符合版本提交规范,校验是否通过自动化单元测试,校验是否通过静态代码扫描,校验是否影响进程正常启动,自动执行集成测试脚本,并通知审核人员
  • 支持审核人员一键完成发布准备工作
  • 支持发布配置人员一键集成部署和进程信息跟踪


    组件详情展示

测试质量类(测试专员、开发人员)

集成Sonar,以及代码扫描,获取测试信息:

  • 根据发布模块以及修复的缺陷列表,自动生成测试计划,支持人工补录测试计划
  • 获取组件的单元测试信息,单元测试覆盖度,通过代码注解信息获取单元测试类具体的测试关注点
  • 展示版本的测试整体进度,以及回归测试信息
  • 展示主流程的测试信息,包括是否可测,以及测试中暴露的主要问题
  • 提供发版前主流程的自动回归测试,一键测试
  • 提供呼叫测试功能,以调度测试人员的主动性和积极性

技术思想类(开发人员)

  • 展示框架和平台的有关设计思想,以供参考
  • 关联技术架构组技术资料存储相关系统,提供开发资料和开发工具的下载入口
中汇-主题编程竞赛第2季-小程序-吉祥三宝-孔明ddd开发过程管理平台_03.jpg 中汇-主题编程竞赛第2季-小程序-吉祥三宝-孔明ddd开发过程管理平台_04.jpg 中汇-主题编程竞赛第2季-小程序-吉祥三宝-孔明ddd开发过程管理平台_05.jpg 中汇-主题编程竞赛第2季-小程序-吉祥三宝-孔明ddd开发过程管理平台_06.jpg 中汇-主题编程竞赛第2季-小程序-吉祥三宝-孔明ddd开发过程管理平台_07.jpg 中汇-主题编程竞赛第2季-小程序-吉祥三宝-孔明ddd开发过程管理平台_08.jpg 中汇-主题编程竞赛第2季-小程序-吉祥三宝-孔明ddd开发过程管理平台_09.jpg 中汇-主题编程竞赛第2季-小程序-吉祥三宝-孔明ddd开发过程管理平台_10.jpg 中汇-主题编程竞赛第2季-小程序-吉祥三宝-孔明ddd开发过程管理平台_11.jpg 中汇-主题编程竞赛第2季-小程序-吉祥三宝-孔明ddd开发过程管理平台_12.jpg 中汇-主题编程竞赛第2季-小程序-吉祥三宝-孔明ddd开发过程管理平台_13.jpg 中汇-主题编程竞赛第2季-小程序-吉祥三宝-孔明ddd开发过程管理平台_14.jpg

相关文章

  • 孔明:DDD设计开发过程管理平台与CFETS-DDD开发框架

    孔明是我们这个系统对外的别称。XX中心研发全流程监控管理,遵循DDD理念的设计与开发可视化平台。 DDD设计开发过...

  • 快速开发平台在国内的发展现状

    什么是快速开发平台? 所谓快速开发平台是指能够进行二次开发的软件框架,与基础框架不同的是,在快速开发框架中相关的业...

  • DDD战略2 领域知识

    GitChat课程《领域驱动设计--战略篇》笔记,课程作者张逸 一.DDD开发中团队的沟通与协作 DDD先要识别问...

  • Flutter了解

    Flutter:谷歌推出的开源跨平台移动应用开发框架(使用Dart语言开发)。 前言:原生开发与跨平台开发 原生开...

  • 人员分工安排

    锦州项目跟进 系统设计(陈俊杰、翁年年) 平台框架搭建(陈俊杰) 开发环境搭建(陈俊杰) 开发框架学习(尚可武) ...

  • 架构师之路3-代码开发稳定之道

    设计架构基本原则 设计原则继承面向对象的设计思想,遵守设计模式基本原则 框架开发与项目开发相分离框架的开发任务是维...

  • 领域驱动设计的DDD简介和工程实践

    领域驱动设计DDD简介 软件负责性与开发周期关系 DDD经典分层 用户界面/展示层:负责向用户展现信息,并且会解析...

  • Spring 框架学习(一):设计理念、整体架构

    Spring 框架学习(一):设计理念、整体架构 设计理念 Spring 是一个轻量级的应用开发框架(平台)。 传...

  • 跨平台,混合开发

    参考: 混合开发 框架对比从事编程那些年经历的跨平台开发工具框架演变历史跨平台框架的发展历史移动端跨平台开发框架对比分析

  • DDD快速上手

    DDD,中文名为领域驱动设计,为业务开发中必不可少的指导方法论,本文以业务开发中战略设计和战术设计为例,将普通开发...

网友评论

    本文标题:孔明:DDD设计开发过程管理平台与CFETS-DDD开发框架

    本文链接:https://www.haomeiwen.com/subject/fzitzxtx.html