
內容簡介
本書深入探討了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中國社區編輯/譯者,翻譯了多本技術圖書。
目錄
推薦序11推薦序23
序言5
前言7
第1章AI打開開發者的新世界13
1.1編程的演變與革命14
1.2生成式AI16
1.3AI輔助編程工具的優點17
1.3.1最小化搜索18
1.3.2充當你的顧問20
1.3.3與IDE集成20
1.3.4適配你的代碼庫21
1.3.5檢查代碼完整性22
1.3.6AI驅動的文檔生成器22
1.3.7現代化支持23
1.4AI輔助編程工具的缺點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.1AI輔助編程工具的主要功能33
2.2智能代碼自動補全與上下文感知的代碼補全34
2.3編譯器與AI輔助編程工具34
2.4能力等級36
2.5生成式AI和LLM37
2.5.1技術演變38
2.5.2Transformer模型39
2.5.3OpenAIPlayground42
2.6評估LLM47
2.7LLM的類型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.5CoT提示66
3.8.6引導性問題67
3.8.7請求類比示例67
3.9減少幻覺68
3.10安全和隱私69
3.11自治的AIAgent70
3.12小結73
第4章GitHubCopilot75
4.1GitHubCopilot簡介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使用Copilot80
4.2.1Codespaces與VSCode81
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.3Copilot合作夥伴計劃94
4.4小結95
第5章其他AI輔助編程工具97
5.1CodeWhisperer97
5.2DuetAI99
5.3Tabnine101
5.4Replit102
5.5CodeGPT104
5.6Cody105
5.7CodeWP107
5.8Warp108
5.9BitoAI110
5.10Cursor111
5.11CodeLlama112
5.12其他開源模型113
5.12.1StableCode113
5.12.2AlphaCode114
5.12.3PolyCoder114
5.12.4CodeT5114
5.12.5軟件公司開發的模型115
5.13小結116
第6章ChatGPT和其他通用LLM117
6.1ChatGPT117
6.2GPT-4118
6.3訪問ChatGPT119
6.3.1移動版ChatGPT122
6.3.2自定義指令122
6.4使用必應瀏覽功能123
6.5處理乏味的任務126
6.5.1正則表達式126
6.5.2入門代碼127
6.5.3README文件128
6.6跨瀏覽器兼容性129
6.7bash命令130
6.8GitHubActions130
6.9ChatGPT插件131
6.9.1Codecademy插件131
6.9.2AskYourDatabase插件133
6.9.3RecombinantAI插件133
6.10自定義GPT133
6.11Gemini135
6.11.1應用137
6.11.2編程138
6.12Claude139
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.2Web設計規劃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.1CSS182
8.13.2創建圖形183
8.13.3AI工具184
8.14API186
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.6AI不會搶走開發者的工作203
10.7小結204
······
