4006-998-758
3000+课程任你选择
LLM赋能软件研发全流程实战演练
研发学院 LLM赋能
范钢

从事软件研发工作近二十年,并且现在一直坚守在大型软件架构设计一线工作。从需求分析、软件开发到项目管理、架构设计都有丰富的从业经验,尤其熟悉互联网架构与分析的特点。先后主持或参与了数十个国内外大型软件项目,涉及领域包括互联网、金融、军工、财务、税务等领域。先后为京东、淘宝网、支付宝等电商网站设计电子发票开票平台,为全国各地各行各业的纳税人设计增值税发票在线开票系统,为各级税务机关提供税务大数据风险监控平台。此外,还是大型遗留系统改造专业户,多次参与大型遗留系统改造、软件系统重构等重大项目,长期关注大型业务系统的品质保证、防止腐化以及技术改造等困扰软件企业的问题,进而提出了许多实用而有效的解决方案,在遗留系统优化与改造方面有丰富的经验。


查看老师详情
课程内容


课程大纲


第一单元 基于LLM的软件研发思路

利用LLM进行软件研发的思路

1.   LLM智能大模型的应用场景:

1)代码解释:通过LLM对代码进行解释与注释

2)代码改写:通过LLM对原有代码进行优化

3)代码生成:通过LLM根据新需求编写代码

4)代码测试:通过LLM根据新需求编写测试用例

2.   LLM智能大模型核心原理与应用:

1)提示词工程:如何通过提示词的互动,指导LLM编码

2)示例文档上传:如何通过编写与上传示例文档,指导LLM工作

3)搭建本地知识库:通过搭建知识库,为LLM制定开发规范

4)Skills/Rules:为AI提供编程的技能,制订开发的规范


氛围编程vibe coding的AI编程思路

1.   氛围编程(vibe coding)的设计思想

1)设定环境、目标与业务需求

2)让AI去编码,完成开发的工作

3)不断地运行调试与反馈,让AI去修复与解决问题

2.   从传统编程到氛围编程的转变

1)从“实现者”到“引导者/产品经理”的转变

2)从“关注细节”到“关注体验”的转变

3)从“全面地设计”到“快速启动、逐步迭代”的转变

3.   氛围编程(vibe coding)的设计实战

实战演练:图书管理系统的AI编程过程

1)提出最小需求让AI去设计实现

2)提出需求让AI去不断地调试与优化

3)在原有的基础上,提出更多的业务需求

4.   氛围编程(vibe coding)的局限与问题

1)AI编程无法去应对复杂的、大规模的应用开发

2)AI编程同样需要制定相应的编码规范

3)AI编程同样需要架构规划与层次划分

4)AI编程同样需要基于设计思想进行设计编码

结论:AI替代的不是人,而是不会使用AI的人

1)需要更加深刻的理解业务而不是技术

2)需要更强的架构规划与设计能力

3)需要对AI编码的正确与否的甄别与判断能力

4)需要掌握与AI工作与协同的工作技能


契约编程spec coding的AI编程思路

1.   契约编程spec coding与规范驱动开发SDD

1)人与AI一起制订契约(业务需求、业务架构、UI原型、非功能需求)

2)人与AI一起制订技术架构、拆解开发任务

3)AI驱动进行设计、开发、测试与运行调试

2.   从氛围编程到契约编程的转变

1)从“模糊指令”到“精准契约”的转变

2)从“代码优先”到“规范优先”的转变

3)从“实现者”到“架构师/审核者”的转变

4)从“结果不可控”到“过程可验证”的转变

3.   契约编程spec coding的设计实践

实战演练:图书管理系统的AI编程过程

1)为AI制订契约:spec、tasks、checklist

2)人AI基于契约进行设计、开发与调试

3)通过修改契约,迭代地扩展业务需求

4.   契约编程spec coding的探讨与思考

1)用什么方式表达契约:用例模型与领域模型

2)如何制订开发任务:以领域驱动为规范制订开发任务

3)以rules和skills为核心,规范AI的编程质量


案例:以DDD为指导的AI编程实践

1.   制定LLM软件开发的模板与规范:

1)文档模板:架构设计的模板、用例模型的模板、领域模型的模板

2)开发规范:领域对象、服务接口、DSL配置、测试用例的开发规范

3)依次为基础,提前为AI设计一系列的rules和skills

2.   基于领域模型的LLM软件开发:

上半场:梳理业务需求,构建领域模型,形成契约

1)LLM辅助的软件需求探索与业务架构规划

2)LLM辅助编写用例模型,由人来审核

3)LLM辅助编写领域模型,由人来审核

下半场:基于领域模型的AI驱动开发、测试与调试

4)LLM辅助形成数据库设计,编写SQL脚本

5)LLM辅助编写领域对象、服务接口与DSL代码

6)LLM辅助,基于底层平台实现业务代码的编写

7)LLM辅助,基于业务需求创建测试用例代码

8)LLM辅助完成前端的开发,并进行运行调试与优化


第二单元 DDD的AI编程全程演练

业务架构的规划与设计过程

一、业务需求探索与业务架构规划

实战演练:AI辅助与人机结合的业务架构探索过程

二、由粗到细的业务梳理过程

三、动态模型与静态模型相结合的分析过程

1. 动态模型:用例模型

每个用例及其业务流程的梳理过程

2. 静态模型:领域模型

领域对象及其相互关系的梳理过程


用例模型与需求规格说明书

实战演练:在线交易系统的业务梳理过程

1. 用例模型的分析设计过程

1)站在全局的业务规划与战略设计

2)由粗到细的用例建模过程:用例、参与者与系统边界

3)三种类型的用例描述:业务流程、查询报表、图表展示

4)按照用例描述的方式编写需求规格说明书

2. 界面原型设计

3. 演练:基于LLM的进行需求探索,建立用例模型

1)基于LLM进行业务架构的规划与业务需求的探索

2)为用例模型编写设计skills并且不断调教

3)业务架构+skills,让LLM自动生成用例模型与用例描述

4)对LLM生成的用例模型与用例描述进行审查与调教

5)基于用例模型形成最终的需求规格说明书


演练基于LLM的领域建模过程

1.   从领域中吸取业务领域知识

2.   统一语言建模:与用户沟通需求的高级技巧

3.   领域驱动的设计思想:将真实世界与软件世界对应起来

1)将真实世界的事物与软件世界的对象对应起来

2)将真实世界中事物的行为,与软件世界中对象的方法对应起来

3)将真实世界中事物间的关系,与软件世界中对象间的关联对应起来

4.   演练:用LLM基于用例模型形成领域模型

1)为领域模型编写skills并不断调教

2)用例模型+skills,通过LLM形成领域模型

3)对AI生成的领域模型进行梳理与确认

4)按照领域模型划分限界上下文

5.   基于DDD进行业务架构规划

1)为每个限界上下文构建业务领域模型

2)划分并识别主题域、支撑域、通用域

3)落实各子域之间的联系、接口及事件通知机制

6.   对LLM生成的领域模型进行审查与调教


演练基于AI编程的后端开发

1.   利用LLM搭建后端项目软件开发环境

1)编写skill文件定义Springcloud开发环境

2)采用Builder模式,由LLM搭建后端开发环境

3)通过Maven运行并验证后端开发环境

2.   利用LLM将领域模型的设计转变成数据库设计脚本

1)为数据库设计编写skills文件

2)领域模型+skill文件,由LLM生成数据库脚本

3)开发人员对数据库脚本进行审查与优化

3.   利用LLM将领域模型的设计转变成程序设计

1)为领域对象编写skills文件

2)为服务接口编写skills文件

3)为DSL的配置编写skills文件

4)基于领域模型+skills文件,由LLM生成初步的程序代码

5)开发人员对程序代码进行审查与优化

4.   基于DDD的平台规范,由LLM实现业务功能

1)基于DDD的规范,搭建一套支持DDD的开发平台

2)编写DDD开发平台的API接口文档

3)通过注释的方式,对服务接口Service的每个方法进行设计

4)基于接口注释+平台API接口文档,由LLM编写和实现业务功能

5)开发人员对AI生成的程序代码进行审查与调优

5.   基于用例模型的业务需求,由LLM生成测试用例代码

1)为测试用例代码编写skills文件

2)用例模型+skills文件,由LLM生成测试程序代码

3)开发人员对测试代码进行确认与调教,并完成最终的测试


基于DDD的平台架构设计

1.  解决软件层次的复杂性:将业务与技术解耦

2.  整洁架构与六边形架构的设计思想

3.  CQRS命令与查询职责分离的设计思想

4.  基于整洁架构的DDD架构设计思路

1)制作通用仓库与工厂的设计思路

2)引入DSL的思路与设计实现

3)支持DDD的增删改功能架构设计

4)支持DDD的查询功能的架构设计

5.  基于DDD的底层平台,进行AI编程开发

6.  用AI去优化与规范底层开发平台


演练基于AI编程的前端开发

1.   利用LLM搭建前端项目软件开发环境

1)通过业务架构规划的技术选型,搭建React+Vue的前端项目

2)基于LLM创建登录页、主页、用户注册等基础组件

3)启动并验证前端项目

2.   基于用例模型,由LLM规划UI界面,生成界面原型

1)通过读取用例模型,由LLM规划UI/UX

2)基于UI界面规划,由LLM生成界面原型

3)通过人机交互,对界面原型的效果进行调优

3.   由LLM识别后端API接口,进行前后端交互

1)由LLM识别后端API接口,完成前后端交互的开发

2)分别启动前后端应用,运行调试前后端项目

3)由LLM对前后端运行过程中的问题进行分析与修复


第三单元 LLM的高质量软件设计

在AI时代应该如何编程

1.   AI是用于替代人,还是给人提供更加高效的工具?

2.   脱离设计的AI编程只能是低质量的代码

3.   高质量的软件设计才能指导AI高质量地编码维护

结论:AI时代给设计者提出的是更高的设计要求

1)基于业务需求进行分析设计

2)将大任务拆分成无数个小任务

3)基于rules对AI编程进行规范

4)基于rules对AI编写的测试用例进行规范


基于LLM的代码整洁与重构过程

1.  AI编程是软件重构与代码整洁的解决之道

1)解析软件退化的根源与代码整洁

2)传统的软件重构的困境

3)AI编程是软件重构的解决之道

2.   重构是代码整洁与高质量编码的实现方式

1)   准确理解软件重构

2)   每次变更的时候,先重构再实现需求

3)   每过一段时间就通过重构整理一次代码

3.  案例:演练业务需求变更与代码维护过程

1)   基于LLM进行业务需求与用例模型的变更

2)   基于LLM与用例模型进行领域模型的变更

3)   基于用例模型与领域模型的变更,让LLM进行程序代码的变更

4) 基于用例模型与领域模型的变更,让LLM编写新的测试用例

5) 通过测试用例,对新老功能的测试与验证


基于LLM对遗留系统进行优化

案例分析:基于LLM重构一个大型遗留系统

1.   重构第一步:代码可读性

1)讲解代码的规范性与可读性

2)演练用AI对遗留系统的代码进行规范与注释

2.   重构第一步:分解大函数

1)解析超级大函数产生的根源

2)演练用AI进行软件重构:抽取方法

3.   重构第二步:拆分大对象

1)超级大对象拆分的思路:单一职责原则

2)演练用AI进行软件重构:抽取类

4.   重构第三步:提高复用率

1)讲解顺序编程的危害与散弹式修改

2)演练用AI进行代码复用的重构过程

5.   重构第四步:可扩展设计

1)讲解“开放-封闭”的设计原则

2)演练用AI进行代码可扩展设计的4个方法

6.   重构第五步:降低耦合度

案例:利用AI进行工厂模式的软件设计

案例:利用AI进行适配器模式的软件设计

案例:利用AI进行策略模式的软件设计


第四部分 基于LLM的自动化运维

基于LLM搭建自动化发布平台

1.  持续集成工具Jenkins及其运行原理

2.  AI辅助的Jenkins的安装部署过程

1)AI编写Jenkins在Docker的部署脚本

2)AI编写Jenkins在Kubernetes的集群部署脚本

3.  创建自动化流水线Pipeline

1)Pipeline的任务创建与脚本语法

2)Junit + Allure的自动化测试与测试报告

3)基于SonarQube的代码规范性检查

4)基于Jacoco的代码覆盖性检查

5)制作Docker镜像并发布

6)在Kubernetes分布式云平台部署

4.  演练:由LLM编写基于Pipeline的持续集成脚本


演练电商订单系统的自动化部署

1.   一个完整项目的微服务拆分与Git发布

2.   通过AI为每个微服务项目创建pipeline脚本

3.   通过AI每个微服务编写自动化测试脚本

4.   每个微服务的代码规范性检查

5.   每个微服务的代码覆盖率检查

6.   通过AI为每个微服务制作Docker镜像发布脚本

7.   通过AI编写Kubernetes云平台自动化部署脚本

8.   通过AI编写Vue前端项目打包部署脚本


演练智能化的系统监控与运维

1.   搭建系统监控组件Prometheus实操

1)K8s系统监控组件kube-state-metrics与metrics-server

2)在Kubernetes平台埋点:node-exporter

3)在Prometheus中设计rules与告警

实战演练:通过AI的规划,对redis, RabbitMQ, kafka, elasticSearch等技术组件进行实时监控与告警

2.   搭建监控数据展现组件Grafana实操

实战演练:通过AI的规划,用Grafana设计数据监控指标与控制台

3.   设定AlertManager自定义告警通知的实操

4.   基于MCP的故障问题智能处置


智能化的链路跟踪与性能优化

1.   搭建基于SkyWalking的链路跟踪体系

1)SkyWalking的架构体系与设计原理

2)在Kubernetes云平台搭建SkyWalking服务器

3)为每一个服务应用加入SkyWalking的agent收集数据

2.   基于AI进行数据分析与性能优化

1)通过日志分析和压力测试,在AI的辅助下进行故障的排查

2)有针对性地对问题进行设计调优

3)有针对性地设计监控指标,进行实时监控与告警


EFK日志采集与故障分析

1.   日志采集与故障分析的重要意义

2.   搭建ElasticSearch+Flunted+Kibana日志采集实操

1)部署Flunted在Kubernetes平台采集日志

2)日志数据存储在ElasticSearch数据库中

3)使用Kibana对日志数据进行分析

3.   使用Kibana系统监控组件分析与监控系统

1)在Kibana中进行错误日志的跟踪与监控

2)通过AI进行错误日志的分析与处置

3)通过Kibana进行数据图表分析,建立日志监控控制台

4.   通过Kibana进行业务指标分析与问题溯源

1)通过Kibana进行用户行为日志的追踪与监控

2)通过AI进行用户行为的业务指标分析与问题溯源


返回上一级