大模型輔助軟件開發:方法與實戰
張剛
買這商品的人也買了...
-
$485微服務架構原理與開發實戰
-
$658精益數據方法論:數據驅動的數字化轉型
相關主題
商品描述
大模型時代,能否利用好各種工具,成為軟件工程師生產效率高低的關鍵分水嶺。本書記錄了一個融合專業技能和大模型能力的軟件開發過程。案例來自真實場景,將需求分析、領域驅動設計、測試先行、由外而內開發、演進式設計等現代工程實踐和大模型的能力有機結合,實現了高效、高質量開發。該案例具有較高的業務復雜度和技術復雜度,讀者可以在閱讀過程中瞭解軟件開發所面臨的典型問題,並學習如何利用大模型解決這些問題。
本書適合希望建立軟件開發全局觀和想要瞭解現代軟件開發實踐的初學者,也適合希望借助大模型提升軟件開發效率的專業開發者。此外,本書也可以作為《軟件設計:從專業到卓越》的補充讀物。
作者簡介
张刚,软件工程博士、资深技术专家、CCF 软件工程委员会执行委员、贝尔实验室杰出工程师。先后任职于阿尔卡特朗讯、上海理工大学和阿里巴巴。20 余年软件开发、架构设计和技术领导者的成功经验,先进软件工程方法与实践的持续探索者和积极传播者。
目錄大綱
第 1章 認識高效軟件開發 1
1 1 高效探索和發現 1
1 1 1 洞察軟件開發的復雜性本質 1
1 1 2 開發的核心是探索和發現 4
1 2 建設專業能力 6
1 2 1 分而治之 6
1 2 2 質量內建 7
1 2 3 持續演進 8
1 2 4 精益軟件設計框架 9
1 3 用大模型提升開發效率 16
1 3 1 大模型可以幫助工程師做什麽 16
1 3 2 和大模型協同的原則和技巧 26
第 2章 業務規劃和流程分析 29
2 1 案例背景 29
2 2 精益創業和最小可行產品 29
2 2 1 精益創業為什麽重要 30
2 2 2 成功的核心是快速學習 30
2 2 3 開發 測量 認知 31
2 2 4 最小可行產品 32
2 3 共享出行的業務規劃 32
2 4 業務流程分析 35
2 4 1 業務流程 35
2 4 2 業務流程的表達 35
2 4 3 事件驅動的業務流程分析 37
2 5 共享出行的業務流程分析 38
2 5 1 寫下終態業務事件 38
2 5 2 由後到前列出所有關鍵的業務事件 39
2 5 3 分析異常情況 39
2 5 4 定義執行者和動作 41
第3章 分析系統需求,澄清需求細節 43
3 1 需求分析活動概覽 43
3 2 大模型如何支持需求分析 46
3 3 管理需求全景圖 49
3 4 在需求分析過程中沉澱領域模型 50
3 4 1 探索和發現領域模型 51
3 4 2 領域模型的價值 54
3 5 需求澄清和實例化 55
3 5 1 圍繞業務目標,澄清需求細節 55
3 5 2 業務規則描述 56
3 5 3 使用測試用例澄清需求 58
第4章 構建初始架構 63
4 1 架構的使命和目標 63
4 1 1 架構的定義 63
4 1 2 如何形成高質量決策 64
4 2 大模型如何支持架構設計 65
4 3 理性決策和演進式架構 69
4 3 1 設計的理性模型 69
4 3 2 如何讓架構可演進 75
4 4 共享出行的關鍵架構決策 76
4 4 1 獨立App 還是微信小程序 76
4 4 2 架構分解 77
4 4 3 開發、購買還是復用 80
4 4 4 容器化部署 82
4 5 從構建一個空系統開始 83
4 5 1 空系統並不是什麽都沒做 83
4 5 2 初始化Spring Boot 項目 84
4 5 3 搭建代碼框架 85
4 6 制定自動化測試方案 88
4 6 1 需要完備的自動化測試 88
4 6 2 測試先行的開發策略 89
4 6 3 選擇有性價比的自動化測試方案 89
第5章 實現核心域 92
5 1 用大模型輔助開發核心域 92
5 2 用代碼表達領域模型 93
5 2 1 用大模型生成領域層代碼 93
5 2 2 理解DDD 戰術模式 98
5 3 發布出行計劃 103
5 3 1 基於需求編寫測試代碼和產品代碼 103
5 3 2 修復大模型輸出中的問題 106
5 3 3 事件和事務耦合 107
5 3 4 實現API 109
5 4 撮合出行計劃 110
5 4 1 從實例化需求到自動化測試 111
5 4 2 由外而內實現系統功能 114
5 4 3 註冊事件監聽,完成集成 122
5 5 通過WebSocket 發送通知 123
5 5 1 WebSocket 和STOMP 協議 123
5 5 2 實現基於WebSocket 的通知 125
第6章 實現通用域:以認證授權為例 129
6 1 認證授權基礎 129
6 1 1 基本概念 129
6 1 2 認證授權流程 130
6 1 3 令牌格式和OIDC 協議 132
6 2 Keycloak 基礎 135
6 2 1 部署Keycloak 135
6 2 2 配置Realm 136
6 2 3 創建客戶端 137
6 2 4 創建測試用戶 138
6 2 5 測試認證授權,獲取訪問令牌 138
6 2 6 用API 創建用戶 138
6 3 用大模型輔助開發認證授權服務 139
6 3 1 微信小程序身份認證方案 139
6 3 2 實現登錄功能 141
6 4 用大模型輔助開發自動化測試 144
6 4 1 利用大模型規劃和編寫自動化測試 144
6 4 2 改進設計獲得更好的可測試性 146
6 4 3 Mock 外部依賴 147
6 4 4 運行測試 149
6 5 用大模型輔助集成Spring 安全配置 149
6 5 1 使用Spring Security 保護API 150
6 5 2 基於HTTP 請求頭的用戶ID 識別 152
第7章 構建持續集成基礎設施 157
7 1 持續集成加速演進式設計 157
7 2 用大模型輔助構建持續集成流水線 161
7 2 1 安裝Jenkins 161
7 2 2 設計持續集成流水線 164
7 3 用大模型支持容器化部署 167
7 3 1 編寫Dockerfile 167
7 3 2 用Kubernetes 管理服務 168
7 3 3 編寫Kubernetes 資源配置文件 170
7 3 4 在Kubernetes 集群中部署資源 172
第8章 實現微信小程序 174
8 1 微信小程序開發基礎 174
8 1 1 微信小程序的結構 174
8 1 2 小程序開發環境 176
8 2 規劃界面原型 176
8 2 1 原型設計 177
8 2 2 映射到頁面和組件 177
8 3 用大模型輔助前端開發 179
8 3 1 完成頁面整體框架 179
8 3 2 實現plan 組件 180
8 3 3 重構和封裝 183
8 3 4 和後端集成 185
8 4 用大模型輔助完成權限管理 190
8 4 1 獲取訪問令牌 190
8 4 2 在API 調用中添加訪問令牌 192
第9章 持續演進 194
9 1 業務發展要求演進式設計 194
9 2 上車點管理 195
9 2 1 更新領域模型 195
9 2 2 在撮合成功後計算並指定上車點 197
9 2 3 出發地附近沒有上車點 199
9 2 4 合並距離相近的上車點 201
9 3 順風車業務 202
9 3 1 業務流程分析 202
9 3 2 更新領域模型 204
9 3 3 發布出行計劃 204
9 3 4 撮合出行計劃 207