课程费用

7800.00 /人

课程时长

3

成为教练

课程简介

本课程首先深入剖析软件质量下降的根源,提出重构是软件变更中保持高质量与代码整洁的必然道路。紧接着,课程深刻的解析了什么是高质量代码,以及高质量代码给我们带来的帮助是什么。在此基础上,通过一系列实战案例讲解了,如何通过AI来完成软件重构、设计模式与领域驱动等工作,快速而高效地实现代码整洁。

目标收益

培训对象

课程大纲

第一单元 剖析软件退化的根源 软件开发的轮回:
1. 起初客户提出的需求并不复杂
2. 随着日后的变更,系统开始变得越来越复杂
3. 激烈的市场要求快速交付
4. 越来越复杂的系统交付速度会越来越慢
5. 越来越快的技术发展要求技术架构不断更迭
带来的问题:
1. 系统交付速度越来越慢而不能适应市场变化
2. 技术架构不断更迭越来越困难而不能适应技术发展
3. 测试变得越来越困难而任务繁重
4. 软件系统越来越笨重而不适应未来变化
分析与反思
探讨软件退化的根源
案例分析:演示电商网站付款功能代码质量下降的过程
1. 起初的设计
2. 随后的变更
3. 质量不断下降的过程
软件质量下降的根源:
1. 软件总是因变更而变得越来越复杂
2. 软件结构已经不再适应复杂的软件需求
3. 必须要调整软件结构以适应新的软件需求
4. 重构是保持高质量软件设计的习惯
两顶帽子的设计方式
软件是因需求变更而质量下降吗?
案例分析:推演软件变更的设计过程
应对软件变更的最佳方式:两顶帽子
1. 重构原有代码以适应新的需求
2. 实现新的需求
案例:演示两顶帽子的设计过程
第二单元 高质量的软件设计 准确理解高质量代码
1. 剖析高质量代码设计的本质
2. 软件的质量保证:内部质量与外部质量
3. 高质量软件设计的标准:易于阅读、易于维护、易于变更
准确理解代码整洁之道
1. 什么时候应该代码整洁
2. 函数代码整洁应当遵循的原则
3. 类与接口代码整洁应当遵循的原则
4. 注释代码的整洁之道
5. 异常处理的代码整洁之道
案例:实战项目的整洁代码展示
案例分析软件设计原则及其本质
1. 低耦合
1) 依赖反转原则(DIP)
案例:购票业务类与数据访问类
2) 开放-封闭原则(OCP)
案例:需求变更与可扩展点设计
案例:Square/Circle的解决方案
2. 高内聚
1) 单一职责原则(SRP)
案例:财务凭证变更带来的问题
案例:超级大函数与大对象的难题
案例:MySQL读写分离的改造过程
2) 不要重复自己原则(DRY)
典型的代码重复案例与散弹式修改
探讨代码复用的设计难题与软件重构
案例讲解:代码复用的常用方法
基于AI编程的高质量开发
1.国产智能大模型DeepSeek的13个应用场景:
代码改写、代码解释、代码生成、中英文翻译,等等
2.智能大模型核心应用的精华:
提示词工程、文档上传、搭建本地知识库
3.AI自动化编程带来的挑战:
1)不能交给AI过于复杂的任务
2)AI编写的代码如何规范编程,基于某个平台进行编程
3)AI编写的代码,日后如何变更维护
解决方案:通过知识库制定规范指导AI编程
1.通过知识库制定AI软件开发的模板与规范:
1)文档模板:架构设计的模板、用例模型的模板、领域模型的模板
2)开发规范:领域对象、服务接口、DSL配置、测试用例的开发规范
2.基于知识库进行的AI软件开发:
1)基于业务需求进行分析设计
2)将大任务拆分成无数个小任务
3)基于知识库的规范进行AI编程
4)基于知识库的规范AI编写测试用例
第三单元 软件重构与设计模式 重构是高质量编码的实现方式
1. 重构是代码整洁与高质量编码的实现方式
1) 准确理解软件重构
2) 每次变更的时候,先重构再实现需求
3) 每过一段时间就通过重构整理一次代码
2. 基于AI的软件重构思路
1)用AI进行原始代码的理解
2)用AI进行代码的改写与优化
3)用AI编写测试用例
3. 案例:演练Hello World的维护变更过程
1) 最初的软件设计
2) 第一次变更:抽取方法与抽取类
3) 第二次变更:抽取接口与系统分层
4)重构完成以后,用测试用例进行验证
设计模式在高质量编码的应用
1. 设计模式是学习高质量编码的捷径
2. 学习设计模式的关键:设计动机
什么是适配器模式
1. 软件设计中外部接口的难题
2. 第三方框架带来的设计难题
3. 适配器模式及其概念
4. 实战演练AI的设计编码
适配器模式的应用
1. 适配器模式解决第三方框架带来的难题
案例:Hibernate适配器的设计
2. 适配器模式解决外部接口的设计难题
案例:第三方支付接口的设计
案例:财务数据接口的设计
什么是策略模式
1. 工资发放功能遇到的难题
1) 工资发放功能最初的设计及其问题
2) 对问题的分析过程及其新的设计思路
2. 策略模式及其概念
3. 实战演练AI的设计编码
策略模式的应用
1. 案例:工资发放功能设计改进的过程
1) 工资发放功能的Java实现
2) 工资发放功能的C++实现
2. 案例:折扣功能的设计实现
1) 深入理解开放-封闭原则
2) 折扣功能的变更与改进过程
什么是工厂模式
探讨软件设计中遇到的难题
1. 依赖反转原则的设计难题
2. 开放-封闭原则的设计难题
3. 探讨工厂模式的本质
简单工厂模式的设计实现
1. 简单工厂模式的C++实现
2. 基于配置的简单工厂模式
3. 剖析简单工厂如何实现依赖反转原则
案例:剖析Spring的beanFactory
4. 解读工厂模式对设计的重大意义
5. 讲解如何创建一个工厂
1) 创建工厂的步骤与关键点
2) 利用Spring框架简化工厂类的设计
6. 实战演练用AI设计一个工厂
什么是装饰者模式
1. 业务量增长带来的多数据源问题
2. 运用装饰者模式巧妙解决多数据源问题
3. 装饰者模式及其概念
4. 实战演练用AI进行设计变更
装饰者模式的应用
案例:多数据源的设计实现
1. 多数据源问题的分析设计过程
2. 多数据源的设计与实现
案例:商城收银系统的设计变更过程
1. 商城收银系统期初的设计
2. 混合策略的设计与实现
3. 多层装饰者的设计与实现
什么是桥接模式
1. 对象继承的泛滥
2. 桥接模式及其概念
3. 实战演练用AI进行设计变更
桥接模式的应用
案例:员工管理与工资发放的设计
1. 员工管理与工资发放带来的继承泛滥问题
2. 采用桥接模式的设计与实现
案例:查询支持类的设计
1. 查询支持类遭遇的继承泛滥问题
2. 查询支持类的解决方案
3. 单例模式下查询支持类的设计
深入体会单一职责原则
第四单元 领域驱动设计 DDD是应对软件复杂性之道
1. 剖析领域驱动的设计思想
2. 服务、实体与值对象的概念
3. 充血模型与贫血模型的设计思路
4. 问题域、子域与限界上下文划分
基于领域模型的设计变更
1. 演练基于DDD的设计与变更过程
2. 演练领域模型如何指导数据库设计
3. 演练领域模型如何指导程序设计
4. 聚合、仓库与工厂:傻傻分不清
5. 限界上下文:系统拆分的利器
以DDD作为规范指导AI编程
1.通过知识库制定AI软件开发的模板与规范:
1)文档模板:架构设计的模板、用例模型的模板、领域模型的模板
2)开发规范:领域对象、服务接口、DSL配置、测试用例的开发规范
2.基于知识库进行的AI软件开发:
1)AI辅助的软件需求探索与编写需求文档
2)AI辅助编写用例模型
3)AI辅助编写领域模型
4)AI辅助形成数据库设计,编写SQL脚本
5)AI辅助编写领域对象与服务接口代码,进行DSL配置
6)AI辅助,基于某个平台进行业务代码的编写
7)AI辅助创建测试用例代码
DDD软件开发的实战演练
实战演练:咖啡自动贩卖机的设计变更过程
最初的设计:基于DDD的开发
1. 系统业务规划与领域驱动战略设计
2. 子系统→限界上下文→功能模块划分
3. 动态:需求分析与用例模型
1) 由粗到细的用例模型分析
2) 业务流程分析与用例描述
4. 静态各子域业务领域建模
1) 业务讨论过程中的领域建模
2) 运用原文分析法的领域建模
3) 运用事件风暴法的领域建模
5. 各子域的接口设计
1) 上下文地图的模型分析
2) 模块间接口的方案设计
第一次变更:业务需求的变更
1. 用例模型的变更
2. 回到领域模型进行变更的分析与设计
3. 基于领域模型指导程序变更
第二次变更:技术的变更
1. 通过领域模型分析,业务没有调整
2. 上层业务代码不动,底层技术架构调整
第三次变更:向云+端的转型
1. 基于业务进行用例模型的需求整理
2. 基于业务进行领域模型的分析规划
3. 基于领域模型进行现有系统的改造
第一单元 剖析软件退化的根源
软件开发的轮回:
1. 起初客户提出的需求并不复杂
2. 随着日后的变更,系统开始变得越来越复杂
3. 激烈的市场要求快速交付
4. 越来越复杂的系统交付速度会越来越慢
5. 越来越快的技术发展要求技术架构不断更迭
带来的问题:
1. 系统交付速度越来越慢而不能适应市场变化
2. 技术架构不断更迭越来越困难而不能适应技术发展
3. 测试变得越来越困难而任务繁重
4. 软件系统越来越笨重而不适应未来变化
分析与反思
探讨软件退化的根源
案例分析:演示电商网站付款功能代码质量下降的过程
1. 起初的设计
2. 随后的变更
3. 质量不断下降的过程
软件质量下降的根源:
1. 软件总是因变更而变得越来越复杂
2. 软件结构已经不再适应复杂的软件需求
3. 必须要调整软件结构以适应新的软件需求
4. 重构是保持高质量软件设计的习惯
两顶帽子的设计方式
软件是因需求变更而质量下降吗?
案例分析:推演软件变更的设计过程
应对软件变更的最佳方式:两顶帽子
1. 重构原有代码以适应新的需求
2. 实现新的需求
案例:演示两顶帽子的设计过程
第二单元 高质量的软件设计
准确理解高质量代码
1. 剖析高质量代码设计的本质
2. 软件的质量保证:内部质量与外部质量
3. 高质量软件设计的标准:易于阅读、易于维护、易于变更
准确理解代码整洁之道
1. 什么时候应该代码整洁
2. 函数代码整洁应当遵循的原则
3. 类与接口代码整洁应当遵循的原则
4. 注释代码的整洁之道
5. 异常处理的代码整洁之道
案例:实战项目的整洁代码展示
案例分析软件设计原则及其本质
1. 低耦合
1) 依赖反转原则(DIP)
案例:购票业务类与数据访问类
2) 开放-封闭原则(OCP)
案例:需求变更与可扩展点设计
案例:Square/Circle的解决方案
2. 高内聚
1) 单一职责原则(SRP)
案例:财务凭证变更带来的问题
案例:超级大函数与大对象的难题
案例:MySQL读写分离的改造过程
2) 不要重复自己原则(DRY)
典型的代码重复案例与散弹式修改
探讨代码复用的设计难题与软件重构
案例讲解:代码复用的常用方法
基于AI编程的高质量开发
1.国产智能大模型DeepSeek的13个应用场景:
代码改写、代码解释、代码生成、中英文翻译,等等
2.智能大模型核心应用的精华:
提示词工程、文档上传、搭建本地知识库
3.AI自动化编程带来的挑战:
1)不能交给AI过于复杂的任务
2)AI编写的代码如何规范编程,基于某个平台进行编程
3)AI编写的代码,日后如何变更维护
解决方案:通过知识库制定规范指导AI编程
1.通过知识库制定AI软件开发的模板与规范:
1)文档模板:架构设计的模板、用例模型的模板、领域模型的模板
2)开发规范:领域对象、服务接口、DSL配置、测试用例的开发规范
2.基于知识库进行的AI软件开发:
1)基于业务需求进行分析设计
2)将大任务拆分成无数个小任务
3)基于知识库的规范进行AI编程
4)基于知识库的规范AI编写测试用例
第三单元 软件重构与设计模式
重构是高质量编码的实现方式
1. 重构是代码整洁与高质量编码的实现方式
1) 准确理解软件重构
2) 每次变更的时候,先重构再实现需求
3) 每过一段时间就通过重构整理一次代码
2. 基于AI的软件重构思路
1)用AI进行原始代码的理解
2)用AI进行代码的改写与优化
3)用AI编写测试用例
3. 案例:演练Hello World的维护变更过程
1) 最初的软件设计
2) 第一次变更:抽取方法与抽取类
3) 第二次变更:抽取接口与系统分层
4)重构完成以后,用测试用例进行验证
设计模式在高质量编码的应用
1. 设计模式是学习高质量编码的捷径
2. 学习设计模式的关键:设计动机
什么是适配器模式
1. 软件设计中外部接口的难题
2. 第三方框架带来的设计难题
3. 适配器模式及其概念
4. 实战演练AI的设计编码
适配器模式的应用
1. 适配器模式解决第三方框架带来的难题
案例:Hibernate适配器的设计
2. 适配器模式解决外部接口的设计难题
案例:第三方支付接口的设计
案例:财务数据接口的设计
什么是策略模式
1. 工资发放功能遇到的难题
1) 工资发放功能最初的设计及其问题
2) 对问题的分析过程及其新的设计思路
2. 策略模式及其概念
3. 实战演练AI的设计编码
策略模式的应用
1. 案例:工资发放功能设计改进的过程
1) 工资发放功能的Java实现
2) 工资发放功能的C++实现
2. 案例:折扣功能的设计实现
1) 深入理解开放-封闭原则
2) 折扣功能的变更与改进过程
什么是工厂模式
探讨软件设计中遇到的难题
1. 依赖反转原则的设计难题
2. 开放-封闭原则的设计难题
3. 探讨工厂模式的本质
简单工厂模式的设计实现
1. 简单工厂模式的C++实现
2. 基于配置的简单工厂模式
3. 剖析简单工厂如何实现依赖反转原则
案例:剖析Spring的beanFactory
4. 解读工厂模式对设计的重大意义
5. 讲解如何创建一个工厂
1) 创建工厂的步骤与关键点
2) 利用Spring框架简化工厂类的设计
6. 实战演练用AI设计一个工厂
什么是装饰者模式
1. 业务量增长带来的多数据源问题
2. 运用装饰者模式巧妙解决多数据源问题
3. 装饰者模式及其概念
4. 实战演练用AI进行设计变更
装饰者模式的应用
案例:多数据源的设计实现
1. 多数据源问题的分析设计过程
2. 多数据源的设计与实现
案例:商城收银系统的设计变更过程
1. 商城收银系统期初的设计
2. 混合策略的设计与实现
3. 多层装饰者的设计与实现
什么是桥接模式
1. 对象继承的泛滥
2. 桥接模式及其概念
3. 实战演练用AI进行设计变更
桥接模式的应用
案例:员工管理与工资发放的设计
1. 员工管理与工资发放带来的继承泛滥问题
2. 采用桥接模式的设计与实现
案例:查询支持类的设计
1. 查询支持类遭遇的继承泛滥问题
2. 查询支持类的解决方案
3. 单例模式下查询支持类的设计
深入体会单一职责原则
第四单元 领域驱动设计
DDD是应对软件复杂性之道
1. 剖析领域驱动的设计思想
2. 服务、实体与值对象的概念
3. 充血模型与贫血模型的设计思路
4. 问题域、子域与限界上下文划分
基于领域模型的设计变更
1. 演练基于DDD的设计与变更过程
2. 演练领域模型如何指导数据库设计
3. 演练领域模型如何指导程序设计
4. 聚合、仓库与工厂:傻傻分不清
5. 限界上下文:系统拆分的利器
以DDD作为规范指导AI编程
1.通过知识库制定AI软件开发的模板与规范:
1)文档模板:架构设计的模板、用例模型的模板、领域模型的模板
2)开发规范:领域对象、服务接口、DSL配置、测试用例的开发规范
2.基于知识库进行的AI软件开发:
1)AI辅助的软件需求探索与编写需求文档
2)AI辅助编写用例模型
3)AI辅助编写领域模型
4)AI辅助形成数据库设计,编写SQL脚本
5)AI辅助编写领域对象与服务接口代码,进行DSL配置
6)AI辅助,基于某个平台进行业务代码的编写
7)AI辅助创建测试用例代码
DDD软件开发的实战演练
实战演练:咖啡自动贩卖机的设计变更过程
最初的设计:基于DDD的开发
1. 系统业务规划与领域驱动战略设计
2. 子系统→限界上下文→功能模块划分
3. 动态:需求分析与用例模型
1) 由粗到细的用例模型分析
2) 业务流程分析与用例描述
4. 静态各子域业务领域建模
1) 业务讨论过程中的领域建模
2) 运用原文分析法的领域建模
3) 运用事件风暴法的领域建模
5. 各子域的接口设计
1) 上下文地图的模型分析
2) 模块间接口的方案设计
第一次变更:业务需求的变更
1. 用例模型的变更
2. 回到领域模型进行变更的分析与设计
3. 基于领域模型指导程序变更
第二次变更:技术的变更
1. 通过领域模型分析,业务没有调整
2. 上层业务代码不动,底层技术架构调整
第三次变更:向云+端的转型
1. 基于业务进行用例模型的需求整理
2. 基于业务进行领域模型的分析规划
3. 基于领域模型进行现有系统的改造

课程费用

7800.00 /人

课程时长

3

预约体验票 我要分享

近期公开课推荐

近期公开课推荐

提交需求