1.CI/CD
CI持续集成
- 通过自动化流程持续把各个开发者的工作集成到一起,避免过大的集成成本。
- 包括代码规范化版本控制、代码检查、代码构建和自动化单元测试。
CD继续交付
- 通过自动化测试和部署流程使软件系统随时处于可发布状态。
![](https://img.haomeiwen.com/i4222138/3c113325ef653f2f.png)
![](https://img.haomeiwen.com/i4222138/5ec56ad73386798d.png)
流水线
- 代码源
- 阶段
代码扫描;
代码覆盖率;
单元测试;
镜像构建;
自动部署;
开源工具
- Jenkins
- 蓝鲸(腾讯)
CI/CD最核心的是什么?
- 单元测试(代码覆盖率)
- 集成测试(上下文边界)
- 功能测试
- 回归测试
2.领域沟通和建模如何避免漏掉重要细节
深层模型:
- 若开发人员识别出设计中隐含的某个概念或是在讨论中受到启发而发现一个概念时,就会对领域模型和相应的代码进行许多转换,在模型中加入一个或多个对象或关系,从而将此概念显式地表达出来。有时,这种从隐式概念到显式概念的转换可能是一次突破,使我们得到一个深层模型。
漏掉重要细节的原因:
- 以用户及活动作为建模的核心,模型过于偏向业务
- 漏掉重要分支
- 复杂系统难免漏掉细节(借助产品走查不断对模型进行检验,比如验收标准需要覆盖所有分支)
应对方法:
- 不能单纯以角色的活动为中心进行沟通和建模,应该以模型(柜门机、账号)本身为核心。
- 领域沟通过程中,研发人员发挥主动性
- 场景走查
3.DDD的常见问题、争论以及局限性
架构合理性的评估:适应业务的变化。
贫血模型和充血模型。封装变化。
不可维护的系统
- 不能添加功能、不能改功能
- 没有人能说得清楚业务的功能
![](https://img.haomeiwen.com/i4222138/bf51f1560591e6dc.png)
网友评论