4006-998-758
3000+课程任你选择
代码架构与设计工作坊
研发学院 代码架构
戴昊

现任创业AI公司研发技术总监负责带领团队研发计算机视觉、AI安防及大数据相关产品。15年+ 大型软件产品架构经验。曾为日本第一,世界第二的瑞穗银行(Mizuho Bank);世界第二大证券交易所 – 东京证券,五十铃汽车开发企业级系统。曾给深圳证券交易所,深圳证券,招商银行信用卡中心,平安金融,中国电信,DELL 讲授过企业级架构及重构与模式的课程。擅长企业级系统架构,领域驱动设计,重构与模式。


查看老师详情
课程内容


课程大纲


Part1   – 将需求划分为上下文


一、发现需求里的领域知识

1.如何发现领域中的知识

2.业务分析中模型转换的问题

3.领域模型 VS 分析模型

4.如何说“业务的语言“ 描述需求

5.通用语言关键点

6.如何避免沟通漏斗 – 结构化沟通

7.演习:使用通用语言对需求进行挖掘与明确


二、限界上下文与微服务

1.建模的本质 与 限界上下文

2.限界上下文的目的:消除歧义

3.限界上下文与通用语言

4.案例:支付宝关联银行账户的建模分析

5.不要将有二义性的领域概念放在同一限界上下文中

6.理解限界上下文

7.演习:限界上下文案例分析 – 信用卡申请

Part2   – 将上下文组织为服务


三、从上下文到服务

1.通过服务来实现独立自治的组件

2.服务发现概念模型

3.AP的Eureka vs   CP的Consul

4.注册中心实现

5.演习:使用 Nacos 进行服务发现与配置管理

6.网关路由

7.网关的职责

8.网络 I/O 模型

9.BFF 网关

10.演习:使用Gateway 进行网关路由

11.客户端负载均衡

12.客户端负载均衡器

13.代理负载均衡器

14.演习:使用 Ribbon进行客户端负载均衡

Part3   – 将服务进行对象化建模

 

 

四、实体与值对象 – 数据容器还是行为载体

1.如何避免贫血,实体与领域服务之间的分寸

2.唯一标识

3.案例:实现实体层超类型(Layer Supertype)

4.实战 - 任务分配执行系统 实体行为归属甄别

5.值对象的特征

6.为什么值对象这么容易被忽略


五、聚合 – 比类更高一层的封装

1.聚合设计原则

2.聚合的一致性边界

3.一个事务中只处理一个聚合

4.聚合内实现事务一致性

5.聚合外实现最终一致性

6.聚合设计的注意点


六、对象建模演习:

演习:如何通过使用实体值对象聚合根据需求进行建模与演化

Part4   – 如何改善代码设计


七、开放封闭原则

1.代码中的接线板是什么?

2.编程价值观 – 沟通,简单,灵活

3.如何做到对扩展开放,对修改封闭

4.次时代租车服务终端 (ARCS) 的促销需求

5.笨拙的促销实现

6.如何不修改代码而改变它的行为

7.最简单的 OCP 实现 – 策略模式

8.前端代码重构:拆分复杂表达式

9.敏捷开发的精髓 – 只被第一颗子弹击中


八、重构至模式训练营 – 用 Strategy 替换条件逻辑

1.核心重构方法:以多态取代条件表达式

2.关键重构方法:Move Method,Introduce Parameter,   Extract Parameter, Replace Conditional with Polymorphism

3.演习:实战遗留代码重构 - 银行贷款计算模块

Part5   – TDD开发流程


九、TDD 核心技术 – mock

1.使用Mock对象进行交互测试

2.基于值的测试,基于状态的测试,基于交互的测试

3.Mock 和 Stub 的区别

4.手工 Mock 对象示例

5.同时使用 Mock 和 Stub

6.每个测试一个 Mock 对象

7.伪对象链:用 Stub 生成模 Mock 或其他 Stub

8.手工 Mock 对象和 Stub 的问题


十、TDD 核心技术 – 隔离框架

1.隔离框架

2.为什么要使用隔离框架

3.动态生成伪对象

4.案例:用动态伪对象替换为手工伪对象

5.模拟值

6.测试事件监听与触发

7.隔离框架的优缺点

8.受限框架与非受限框架

9.演习:TDD实战 - 银行贷款计算模块

Part6   – 使用AI进行结对编程


十一、使用LLM进行结对编程提升开发效率

1.如何向 LLM描述需求

2.为什么要测试先行

3.让 LLM生成测试场景

4.对 LLM的反馈进行调整

5.指导 LLM生成单元测试

6.指导 LLM生成实现代码框架

7.让LLM根据需求生成业务代码

8.执行单元测试并提示LLM根据错误修正代码

9.添加更多的场景测试用例

10.演习:使用LLM创建命令行分析器的代码实现


返回上一级