與AI一起寫代碼

Chris Minnick 周偉

相關主題

商品描述

本書 展示了利用AI編程的方法和工具,能夠有效幫助讀者掌握AI輔助編程技術, 輕松完成代碼的編寫、 調試、 除錯、 新和優化,顯著提高編程效率。本書提供了編程過程中集成AI的實用方法,包括詳細的示例代碼,演示如何與AI API交互, 如何將AI生成的內容納入軟件解決方案並擴展至其他AI功能,如代碼重構、 翻譯和測試。 本書還介紹了一些實用的AI編程資源。 本書 適合程序員、 人工智能研發人員以及其他對人工智能感興趣的讀者閱讀。

作者簡介

克裏斯·明尼克(Chris Minnick)是 技術作家、教育專家及程序員。獨著/合著技術書籍逾20部,包括多本“達人迷”系列暢銷作品,為頭部在線教育平臺開發視頻課程體系,長期為多家 大企業提供編程與AI培訓。

目錄大綱

譯者序 Ⅲ
引 言 Ⅳ
    關於本書 Ⅴ
    讀者對象 Ⅴ
    書中圖標 Ⅵ
    在線資源 Ⅵ
    近期目標 Ⅶ
第 1 部分 技術入門
第 1 章 AI 的作用 3
   消滅無聊任務 3
     發現無聊任務 4
     用 AI 編寫模板 4
     用 AI 實現 CRUD 7
   提供語法幫助 13
     無須記住瑣碎細節 14
     代碼補全提示 14
     適應新語法 15
   靜態代碼分析 18
     靜態代碼分析檢測不良代碼 18
     使用 AI 進行靜態代碼分析 19
   使用 AI 學習編程 19
     AI 的教育潛能 20
     避免潛在的陷阱 20
   與 AI 結對編程 20
     結對編程模式 20
     與 AI 結對編程的利弊 21
     AI 結對編程實戰 21
第 2 章 機器學習和深度學習 28
   機器學習和深度學習 28
     基本概念 28
     神經網絡 29
     訓練和測試模型 31
   自然語言處理 32
     自然語言處理的歷史 33
     自然語言處理的困境 34
   理解 Transformer 36
     註意力機制 36
     獲取標記 37
   生成式 AI 模型 39
   認識 AI 的局限 40
     語言模型不擅長數學 40
     語言模型啰唆冗長 41
     AI 存在知識局限 42
     AI 存在常識性問題 43
     AI 存在準確性問題 43
     AI 存在偏見性問題 43
第 3 章 AI 編程工具 44
   探索 GitHub Copilot44
     安裝 Copilot插件 44
     使用 Copilot高效工作 46
     使用快捷鍵 50
   探索 Tabnine 51
     安裝 Tabnine 51
     設置 Tabnine 52
     使用 Tabnine 編程 53
   探索 Replit54
     使用 Replit創建網站 56
     探索 Replit工作區 58
     與 ReplitAI 結對編程 59
第 4 章 與聊天機器人一起編程 64
   改進提示詞 64
     調整溫度 64
     解讀提示詞的各元素 68
     與 AI 一起寫代碼
     開放式與封閉式提示詞 69
     使用不同類型的提示詞 69
     提升提示詞水平 71
   與 Copilot聊天 72
     了解斜杠命令 72
     了解 Copilot智能體 73
     利用 CopilotChat73
   與 ChatGPT 聊天 75
     註冊和設置 75
     自定義說明 76
     讓 ChatGPT 了解您 77
     讓 ChatGPT 了解您的期望 79
   深入理解 OpenAI 平臺 81
     檢查積分 81
     玩轉 Playground 82
     運行示例 83
     扮演不同角色 84
     調整模型設置 84
     獲取 API 密鑰 85
   使用 OpenAI 開發聊天機器人 87
第 2 部分 用 AI 編寫代碼
第 5 章 從計劃到原型 93
   理解項目需求 93
   確定軟件需求 93
     領域需求 94
     功能需求 94
     非功能需求 95
     編寫 SRS 96
   從 SRS 生成代碼 100
     使用零樣本方法 100
     分解問題 102
   人工和 AI 混合編程 103
     編寫提示 103
     編寫服務器 104
     提交後續提示 106
     測試服務器 108
     在服務器上實現少樣本提示 109
     改進客戶端 113
     從 AI 端轉向客戶端 116
   代碼生成實用技巧 118
     人工引導 119
     指令清晰 119
     分步思考 119
     跟進提問 119
     查驗官方文檔 119
     提供示例和上下文 120
     安全 120
     繼續學習 120
      新工具 120
     留意 AI 的局限 120
第 6 章 代碼格式化和重構 121
   使用 AI 工具進行代碼格式化 121
     設置格式化工具 121
     使用 Prettier 自動設置代碼格式 123
   使用 AI 重構代碼 128
     識別代碼異味 128
     使用 Copilot檢測代碼異味 130
     安全重構 133
   生成重構代碼建議 133
     設置事件監聽器 134
     刪除魔法數字 135
     減少全局數據 136
     修覆長函數問題 137
     修覆命名不一致問題 138
     解決缺少註釋問題 139
     井字棋遊戲實戰 140
第 7 章 發現和消除漏洞 146
   了解漏洞 146
     檢測漏洞的策略 146
     常見漏洞類型 147
     能否做到軟件零漏洞 147
    使用 Jam 進行 AI 輔助報錯 148
   使用靜態代碼分析工具預防錯誤 151
     安裝 linter 151
     安裝 ESLint擴展 152
     使用 linter 修覆代碼 153
     linter 與 AI 相結合 154
      改規則 156
   使用 AI 檢測漏洞 159
   使用 AI 自動修覆漏洞 162
     Snyk 簡介 162
     Snyk 自動修覆 164
     對自動修覆進行驗證 166
     判斷是否適合自動修覆 167
第 8 章 代碼翻譯與優化 170
   代碼翻譯 170
     譯前準備 171
     翻譯策略 171
     使用 GPT-4 翻譯完整程序 175
     驗證譯後代碼 177
   使用 AI 優化代碼 178
     獲取代碼優化建議 178
     避免過早優化 182
第 3 部分 測試、 記錄和維護代碼
第 9 章 測試代碼 185
   編寫測試計劃 186
     選用傳統還是敏捷計劃 186
     測試計劃的分步驟流程 186
     AI 在測試計劃中的作用 187
     識別核心功能 187
     生成測試場景 188
   使用測試框架 190
     安裝 Jest190
     運行 Jest192
     生成測 例 193
     閱讀覆蓋率報告 196
     分析測試結果 197
   借助 AI 進行測試驅動開發 202
第 10 章 代碼文檔化 209
   使用文檔化機器人 209
     構建文檔助手 210
     測試文檔助手 212
   生成代碼註釋和註解 214
     安裝和測試 Mintlify Doc Writer 214
     測評 Underscore 216
   創建可視化文檔 219
     生成序列圖 220
     生成需求圖 221
   使用 AI 實現 API 文檔自動化 223
     創建 REST API 文檔 223
     創建 API 文檔聊天機器人 228
第 11 章 代碼維護 233
   了解四種維護類型 233
     糾正性軟件維護 234
     適應性軟件維護 234
     完善性軟件維護 235
     預防性軟件維護 235
   利用 AI 進行代碼維護 235
   使用 AI 提高代碼質量 236
     理解技術債務 236
     使用 Code Climate 237
     啟用測試覆蓋率報告 240
     分析代碼質量指標 240
     使用 AI 提升代碼質量 241
第 4 部分 AI 工具與資源
第 12 章 嘗試十個 AI 工具 251
   CodeWhisperer 251
   Sourcegraph Cody 252
   DeepMind AlphaCode 253
   Google Bard 253
   Codeium 254
   Claude 254
   MicrosoftIntelliCode 256
   Sourcery 256
   Bugasura 257
   UserWay 258
第 13 章 了解十個 AI 編程資源 259
   Code.org 的 AI 資源 259
   Kaggle 260
   Google DatasetSearch 261
   edX 261
   Edabit262
   StatQuest263
   AI4All 開放學習 263
   Gymnasium 264
   fast.ai 265
   Microsoft Learn 265
作者簡介 267
致辭 267
致謝 267