首页 > 公开课 > 产品研发 > 利用DeepSeek软件重构与设计模式实战训练营

利用DeepSeek软件重构与设计模式实战训练营

一、培训背景

软件重构面临的背景都是相似的,程序员们为了快速完成需求和上线而写出了最基本的代码。然后在功能的不断扩充过程中,以打补丁的方式对代码进行扩充,中间还会面临着开发人员的变更和离职。逐渐地,代码就会变得越来越臃肿,渐渐地变得难以维护。

糟糕的软件代码会带来开发效率的降低,在糟糕架构下加入新功能,会大大影响新功能的代码质量,开发和调试时间都会大大增加,接着是故障率的提升。随着不同产品的推出,不同客户、不同版本的发布,需要维护的遗留代码越来越多,重构也就在所难免。然而,采用传统的方式进行重构,周期长、成本高。

随着人工智能大模型DeepSeek的迅速发展,AI也逐渐具备了推理与编程的能力。AI的发展不是为了替代人,而是替代不会用AI的人。通过DeepSeek的辅助,可以帮助开发人员快速理解代码,重构与优化代码,运用设计模式进行设计,建立自动化测试体系,用更低的成本长期持续地维护与变更系统。

本课程首先深入剖析软件质量下降的根源,提出重构是软件变更中保持高质量的必然,讲解如何运用“两顶帽子”的方式应对变更,拒绝腐化。接着,用真实案例讲解已经代码腐化的遗留系统是如何通过“软件重构七步曲”,由简入深、循序渐进地重构一个大系统。演练在整个过程中,如何通过AI编程,更加快速而高效地优化代码、软件重构、建立自动化测试,保持代码整洁。

二、培训对象

Ø 初中高级工程师、企业架构师、软件设计师等。

Ø 各类软件研发中心的软件设计师、架构师、项目经理、技术总监、质量部门经理。

Ø 对于重构技术怀有疑问和困惑,需要梳理解答的团队和个人,效果最佳。

  代码重构 设计重构 软件腐烂监控 重构管理
程序员 必须精通 需要了解 需要了解 需要了解
设计师 必须精通 必须精通 需要了解 需要了解
架构师 必须精通 必须精通 必须精通 必须精通
数据库工程师 需要了解 需要了解 / /
质量管理 / / 必须精通 必须精通
管理者 / / 需要监控 需要了解

三、培训收益

Ø 提高软件开发效率

在编码之前制定设计方案,避免在开发过程中频繁修改代码,提高软件开发效率。

Ø 提高软件综合质量

编码之前进行全面的需求分析和规划,从而设计出更加优秀的软件架构和模块设计,提高软件的质量和可靠性。

Ø 方便软件维护和升级

设计出易于维护和升级的软件系统,减少维护成本和升级难度。

Ø 减少软件开发成本

在开发过程中发现问题和缺陷,避免在后期进行大量的修改和调整,从而减少软件开发成本。

四、培训信息

1)培训方式:

培训采用线下专家面授+同步直播的形式。所有课程均赠送学习教材、视频回放、答疑交流群、促学服务等。并对考生提供专人报考、考试指导、证书邮寄等。多维度精细化教学,一站式报考服务,满足不同企业及学员的学习需求。

2)培训班次:

2025年04月20-23日 上海

2025年06月23-26日 武汉

2025年09月25-28日 成都

五、培训内容

培训共计4天,每天6小时,具体日程安排如下:

章节 内容
第一单元 剖析软件退化的根源 软件开发的轮回:
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)
典型的代码重复案例与散弹式修改
探讨代码复用的设计难题与软件重构
案例讲解:代码复用的常用方法
利用DeepSeek进行代码的优化
1. 国产智能大模型DeepSeek的13个应用场景:
代码改写、代码解释、代码生成、中英文翻译,等等
2. 智能大模型核心应用的精华:
提示词工程、文档上传、搭建本地知识库
3. AI自动化编程带来的挑战:
1)不能交给AI过于复杂的任务
2)AI编写的代码如何规范编程,基于某个平台进行编程
3)AI编写的代码,日后如何变更维护
解决方案:以知识库作为规范指导AI编程
1. 通过知识库制定DeepSeek软件开发的模板与规范:
1)文档模板:架构设计的模板、用例模型的模板、领域模型的模板
2)开发规范:领域对象、服务接口、DSL配置、测试用例的开发规范
2. 基于知识库进行的DeepSeek软件开发:
1)基于业务需求进行分析设计
2)将大任务拆分成无数个小任务
3)基于知识库的规范进行AI编程
4)基于知识库的规范AI编写测试用例
第三单元 基于DeepSeek的软件重构 软件重构的概念与设计思想
1. 重构是一系列代码的等量变换
案例:一个Hello World重构过程
2. 重构的保险索:自动化测试
案例:Hello World的自动化测试过程
3. 软件修改的四种动机——重构的价值
4. 一个真实的谎言——重构的误区
5. 重构的主要方法与技巧
重构是高质量编码的实现方式
1. 重构是代码整洁与高质量编码的实现方式
1) 准确理解软件重构
2) 每次变更的时候,先重构再实现需求
3) 每过一段时间就通过重构整理一次代码
2.  基于AI的软件重构思路
1)用AI进行原始代码的理解
2)用AI进行代码的改写与优化
3)用AI编写测试用例
3. 案例:演练Hello World的维护变更过程
1) 最初的软件设计
2) 第一次变更:抽取方法与抽取类
3) 第二次变更:抽取接口与系统分层
4)重构完成以后,用测试用例进行验证
演练一个完整的重构过程
案例分析:重构一个大型遗留系统
1. 重构第一步:分解大函数
超级大函数及其危害
案例:演示大函数产生的过程
案例:演示抽取方法操作步骤
实践抽取方法会遇到的问题和解决方案
演练AI编程在抽取方法中的应用
2. 重构第二步:拆分大对象
超级大对象及其危害
案例:演示超级大对象的产生过程
案例:演示抽取类的操作步骤
讲解单一职责设计原则
案例:演示“分久必合,合久必分”的重构过程
演练AI编程在抽取类中的应用
3. 重构第三步:提高复用率
讲解顺序编程及其危害
“不要重复代码”原则
案例:提高代码复用的6个方法
案例:演示新增代码时的代码复用过程
用静态检查工具检查重复代码
4. 重构第四步:可扩展设计
过度设计 vs. 恰如其分的设计
讲解“开放-封闭”的设计原则
案例:讲解可扩展设计的4个方法
案例:讲解新增代码的可扩展设计过程
5. 重构第五步:降低耦合度
案例:讲解接口、实现与工厂模式
案例:讲解外部接口解耦与适配器模式
演练用AI编程进行设计模式的设计
6. 重构第六步:系统分层
反思软件架构需要怎样的分层结构
遗留系统如何拥抱需求变化
遗留系统如何应对技术变革
7. 重构第七步:领域驱动设计
领域驱动设计的概念
讲解领域模型分析方法
演练一个完整的DeepSeek开发过程
1. 通过知识库制定DeepSeek软件开发的模板与规范:
1)文档模板:架构设计的模板、用例模型的模板、领域模型的模板
2)开发规范:领域对象、服务接口、DSL配置、测试用例的开发规范
2. 基于知识库进行的DeepSeek软件开发:
1)DeepSeek辅助的软件需求探索与编写需求文档
2)DeepSeek辅助编写用例模型
3)DeepSeek辅助编写领域模型
4)DeepSeek辅助形成数据库设计,编写SQL脚本
5)DeepSeek辅助编写领域对象与服务接口代码,进行DSL配置
6)DeepSeek辅助,基于某个平台进行业务代码的编写
7)DeepSeek辅助创建测试用例代码
第四单元 设计模式 1. 设计模式的由来
2. 设计模式的发展
3. 设计模式对高质量软件设计的作用
适配器模式及其实战应用
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. 如何实现单例模式
单例模式的应用
1. 用单例模式设计工厂
2.  用单例模式提高性能
原型模式及其实战应用
什么是原型模式
1. 工厂类在提供产品时遇到的设计问题
2. 原型模式及其概念
原型模式的设计实现
案例:函数调用的无副作用问题
案例:JavsScript中的原型模式
模板方法模式及其实战应用
什么是模板方法模式
1. 煮咖啡给我们的启示
2. 设计工厂类的新思路
3. 模板方法模式及其概念
模板方法模式的作用与技巧
案例:一个工厂模板的设计与实现
深入理解不要重复自己原则
1. 重复代码带来的严重后果
2. 散弹式修改及其解决思路
3. 探讨实现代码复用的难题
4. 代码复用在不同场合采用的方法
5. 模板方法模式在代码复用中的作用
装饰者模式及其实战应用
1. 业务量增长带来的多数据源问题
2. 运用装饰者模式巧妙解决多数据源问题
3. 装饰者模式及其概念
4.  实战演练用AI进行设计变更
装饰者模式的应用
案例:多数据源的设计实现
1. 多数据源问题的分析设计过程
2. 多数据源的设计与实现
案例:商城收银系统的设计变更过程
1. 商城收银系统期初的设计
2. 混合策略的设计与实现
3. 多层装饰者的设计与实现
桥接模式及其实战应用
1. 对象继承的泛滥
2. 桥接模式及其概念
3.  实战演练用AI进行设计变更
桥接模式的应用
案例:员工管理与工资发放的设计
1. 员工管理与工资发放带来的继承泛滥问题
2. 采用桥接模式的设计与实现
案例:查询支持类的设计
1. 查询支持类遭遇的继承泛滥问题
2. 查询支持类的解决方案
3. 单例模式下查询支持类的设计
深入体会单一职责原则
享元模式及其实战应用
什么是享元模式
1. Hibernate是怎样访问数据的
2. 享元模式及其概念
享元模式的应用
案例:数据缓存的设计实现
案例:享元模式在大数据中的应用
其它设计模式及其实战应用
用一个情景剧秒懂其它设计模式
观察者模式:JobHunter的情景剧
代理模式:老板与秘书的差异
命令模式:像工作流一样处理业务
外观模式:超级家庭影院的烦恼
构建器模式:SQL Builder的设计
组合模式:如何构建一棵树
中介者模式:QQ在沟通中的作用
迭代器模式:如何顺序访问一个集合
第五单元 关于重构的深度讨论 什么时候重构
1. 重构是一种习惯
2. 重构让程序可读
3. 重构,才好复用
4. 先重构,再扩展
5. 紧急任务时的重构
自动化测试的困境
1. 重构初期的困局
2. 解耦与自动化测试
3. 建立自动化测试体系
4. 通过AI建立自动化测试体系
关于重构效果的评价
1. 评价软件质量的指标
2. 评价软件质量的工具

六、讲师团队

Ø 范老师 | 业界顶级技术峰会技术分享者

独立咨询顾问,畅销书籍《架构真意》与《大话重构》的作者,规模化敏捷SPC。曾任航天信息首席架构师,哈工大软件工程硕士,软件架构及重构的客座讲师。从事软件研发工作近二十年,并且现在一直坚守在大型软件架构设计一线工作。从需求分析、软件开发到项目管理、架构设计都有丰富的从业经验。先后参与了数十个国内大型软件项目,涉及国家财政、军工、税务、医疗等领域的大数据中台建设、风险防控与人工智能研究。互联网转型、微服务转型及大数据转型的实践者与倡导者。同时,还是大型遗留系统改造专业户,多次参与大型遗留系统改造、软件系统重构等重大项目,长期关注大型业务系统的品质保证、防止腐化以及技术改造等困扰软件企业的问题,在遗留系统优化与改造方面有丰富的经验。

Ø 张老师 | 高级系统架构师、资深IT培训专家

硕士学历,资深IT培训专家,百度、阿里、腾讯等特邀讲师。在多年从事的软件开发和教学领域工作中,先后担任过高级软件开发工程师,系统架构师,高级讲师。具备丰富的软件开发经验和教学经验。累计授课课时超过9000学时。同时有丰富的企业内训经验,从开发到讲师到管理,对于软件培训有自己独到的见解,擅长启蒙教育,通过启发式的讲解,让学员具备独立自主的思考并解决问题的能力,培养良好的自学方法和习惯。精通企业级的Android6.0/IOS9.2/webAPP/Cordova、Sql Server 2014、Oracle12C、MySql5.7、mariaDB10.1、VB.net、C#、WCF、Delphi、Powerbuilder、VB、SharePoint2013、Windows Server 2012、RHCE7.2(企业级应用)、NodeJS +ExpressJS+AngularJS+MongoDB+H5+jQuery等。

七、相关证书

参加培训并通过考试的学员,将获得由工业和信息化部教育与考试中心统一颁发的《软件设计模式与重构技术(高级)》职业能力证书。证书长期有效,相关信息可随时登录中心官网查询。