AI輔助編程實戰 Ai-Assisted Programming: Better Planning, Coding, Testing, and Deployment

[美]湯姆·陶利(Tom Taulli)

  • AI輔助編程實戰-preview-1
  • AI輔助編程實戰-preview-2
AI輔助編程實戰-preview-1

相關主題

商品描述

本書深入探討了AI(人工智能)如何革新軟件開發領域,從AI輔助編程的演變、優勢與挑戰到具體的工具與技術實現,為開發者打開了一個全新的世界。全書共10章,第1章介紹了編程的歷史演變和生成式AI的崛起;第2章深入技術細節,解釋了AI輔助編程工具的主要功能和工作原理;第3章討論了提示工程的重要性,以及如何與AI工具進行有效溝通;第4章和第5章通過GitHub Copilot和其他AI編程工具的案例,展示了AI在實際開發中的應用;第6章擴展到通用大語言模型,如ChatGPT和GPT-4,探討了它們在日常任務處理中的應用;第7章和第8章覆蓋了軟件開發的早期階段和代碼編寫過程,展示了AI如何輔助決策、提高學習效率和代碼質量;第9章討論了調試、測試和部署過程中AI的作用;第10章總結了AI輔助編程的一些啟示,包括學習曲線、優勢、不足及對未來工作的影響。

本書適合軟件開發者、編程愛好者、技術項目經理、高等院校電腦科學專業的學生及對AI在編程領域的應用感興趣的專業人士閱讀。

作者簡介

作者简介

Tom Taulli,作家、顾问和投资者,著有Artificial Intelligence Basics等图书。他还为AIBusiness网站、Inc.网站、Barrons网站、eSecurity Planet网站和Kiplingers网站等媒体撰稿,并为O'Reilly和Pluralsight开发教育课程,专注生成式AI、数据库技术及Python编程等领域。

 

译者简介

成海霞,微软高级软件工程师,负责Java on Azure面向传统应用服务器的云原生解决方案的设计和研发,助力企业客户将Java遗留系统成功转型并无缝迁移至Azure容器平台,实现技术现代化的飞跃。曾就职于甲骨文上海研发中心,从事自动化测试产品及PAAS平台现代化DevOps系统的研发。Microsoft Azure for Java Developers图书技术评审,InfoQ中国社区编辑/译者,翻译了多本技术图书。

目錄大綱

推薦序1 1

推薦序2 3

序言 5

前言 7

 

第 1章 AI打開開發者的新世界 13

1.1 編程的演變與革命 14

1.2 生成式AI 16

1.3 AI輔助編程工具的優點 17

1.3.1 最小化搜索 18

1.3.2 充當你的顧問 20

1.3.3 與IDE集成 20

1.3.4 適配你的代碼庫 21

1.3.5 檢查代碼完整性 22

1.3.6 AI驅動的文檔生成器 22

1.3.7 現代化支持 23

1.4 AI輔助編程工具的缺點 26

1.4.1 幻覺 26

1.4.2 知識產權 26

1.4.3 隱私 27

1.4.4 安全 28

1.4.5 訓練數據 28

1.4.6 偏見 29

1.5 開發者的新世界 29

1.5.1 職業發展 30

1.5.210 倍開發者 30

1.5.3 開發者的技能 31

1.6 小結 31

 

第 2章 AI輔助編程技術的工作原理 33

2.1 AI輔助編程工具的主要功能 33

2.2 智能代碼自動補全與上下文感知的代碼補全 34

2.3 編譯器與AI輔助編程工具 34

2.4 能力等級 36

2.5 生成式AI和LLM 37

2.5.1 技術演變 38

2.5.2 Transformer模型 39

2.5.3 OpenAI Playground 42

2.6 評估LLM 47

2.7 LLM的類型 50

2.8 評估AI輔助編程工具 52

2.9 小結 53

 

第3章 提示工程 55

3.1 藝術與科學 56

3.2 挑戰 56

3.3 提示 57

3.4 上下文 58

3.5 指令 58

3.5.1 摘要 59

3.5.2 文本分類 59

3.5.3 建議 60

3.5.4 翻譯 60

3.6 輸入內容 62

3.7 輸出格式 62

3.8 優秀實踐 63

3.8.1 越具體越好 63

3.8.2 專業術語與縮略語 64

3.8.3 零樣本學習和少樣本學習 65

3.8.4 引導詞 66

3.8.5 CoT提示 66

3.8.6 引導性問題 67

3.8.7 請求類比示例 67

3.9 減少幻覺 68

3.10 安全和隱私 69

3.11 自治的AIAgent 70

3.12 小結 73

 

第4章 GitHub Copilot 75

4.1 GitHub Copilot 簡介 75

4.1.1 版本和價格 76

4.1.2 案例:AMD公司的硬件編程 77

4.1.3 案例:Shopify電商服務平臺 78

4.1.4 案例:埃森哲咨詢公司 79

4.1.5 安全 79

4.2 使用Copilot 80

4.2.1 Codespaces與VS Code 81

4.2.2 代碼建議 82

4.2.3 註釋 84

4.2.4 聊天 85

4.2.5 內聯聊天 90

4.2.6 打開的標簽頁 92

4.2.7 命令行界面 92

4.3 Copilot合作夥伴計劃 94

4.4 小結 95

 

第5章 其他AI輔助編程工具 97

5.1 CodeWhisperer 97

5.2 Duet AI 99

5.3 Tabnine 101

5.4 Replit 102

5.5 CodeGPT 104

5.6 Cody 105

5.7 CodeWP 107

5.8 Warp 108

5.9 Bito AI 110

5.10 Cursor 111

5.11 Code Llama 112

5.12 其他開源模型 113

5.12.1 StableCode 113

5.12.2 AlphaCode 114

5.12.3 PolyCoder 114

5.12.4 CodeT5 114

5.12.5 軟件公司開發的模型 115

5.13 小結 116

 

第6章 ChatGPT和其他通用LLM 117

6.1 ChatGPT 117

6.2 GPT-4 118

6.3 訪問ChatGPT 119

6.3.1 移動版ChatGPT 122

6.3.2 自定義指令 122

6.4 使用必應瀏覽功能 123

6.5 處理乏味的任務 126

6.5.1 正則表達式 126

6.5.2 入門代碼 127

6.5.3 README文件 128

6.6 跨瀏覽器兼容性 129

6.7 bash命令 130

6.8 GitHub Actions 130

6.9 ChatGPT插件 131

6.9.1 Codecademy插件 131

6.9.2 AskYourDatabase插件 133

6.9.3 Recombinant AI插件 133

6.10 自定義GPT 133

6.11 Gemini 135

6.11.1 應用 137

6.11.2 編程 138

6.12 Claude 139

6.13 小結 141

 

第7章 軟件開發的早期階段:想法、需求和規劃 143

7.1 頭腦風暴 143

7.2 市場調研 145

7.2.1 市場趨勢 147

7.2.2 市場規模 148

7.3 競爭分析 149

7.4 需求分析 151

7.4.1 產品需求文檔 152

7.4.2 軟件需求規約 153

7.4.3 訪談 154

7.4.4 白板討論 155

7.4.5 文檔基調 156

7.5 項目規劃方法 157

7.5.1 測試驅動開發 159

7.5.2 Web設計規劃 160

7.6 小結 162

 

第8章 編寫代碼 165

8.1 現狀:AI輔助編程工具能替代開發者嗎 165

8.2 決策:是否採用AI輔助編程工具 167

8.3 提高學習效率 167

8.4 高效註釋 169

8.5 模塊化編程 169

8.6 快速啟動項目 170

8.7 自動填充 171

8.8 重構 173

8.8.1 忍者代碼 173

8.8.2 提煉函數 174

8.8.3 分解條件表達式 175

8.8.4 重命名 175

8.8.5 無用代碼 176

8.9 編寫函數 176

8.10 面向對象編程 178

8.11 框架和庫 179

8.12 生成樣本數據 180

8.13 前端開發 182

8.13.1 CSS 182

8.13.2 創建圖形 183

8.13.3 AI工具 184

8.14 API 186

8.15 小結 187

 

第9章 調試、測試和部署 189

9.1 調試 189

9.2 文檔 190

9.3 代碼審查 192

9.3.1 單元測試 193

9.3.2 拉取請求 195

9.4 部署 197

9.4.1 用戶反饋 198

9.4.2 產品發布 199

9.5 小結 200

 

第 10章 AI輔助編程的一些啟示 201

10.1 陡峭的學習曲線 201

10.2 主要優勢 201

10.3 不足之處 202

10.4 提示工程是科學與藝術的結合 203

10.5 編程之外的能力 203

10.6 AI不會搶走開發者的工作 203

10.7 小結 204