這是一本講解如何用ChatGPT、Github Copilot X、Cursor等主流AIGC工具優(yōu)化和提升軟件開發(fā)全流程效率和質(zhì)量的實(shí)戰(zhàn)性著作。
全書以軟件開發(fā)的流程位主線來組織內(nèi)容,詳細(xì)講解了程序員、架構(gòu)師、項(xiàng)目經(jīng)理、產(chǎn)品經(jīng)理、技術(shù)團(tuán)隊(duì)管理者們?nèi)绾卧诩夹g(shù)方案構(gòu)建、需求文檔撰寫、代碼編寫與注解、客戶端開發(fā)、前端開發(fā)、后端開發(fā)、測(cè)試和調(diào)試、性能優(yōu)化、疑難問題解決、產(chǎn)品設(shè)計(jì)、軟件架構(gòu)與設(shè)計(jì)、應(yīng)試與面試12個(gè)主題充分發(fā)揮AIGC工具的潛能,在提高研發(fā)效率和質(zhì)量的同時(shí),提升自身的實(shí)力。
AIGC工具在軟件研發(fā)12個(gè)主題的使用方法,全部以實(shí)戰(zhàn)項(xiàng)目案例的方式展開講解,有具體的工程化思路,也有可復(fù)用的提示詞,還有對(duì)使用經(jīng)驗(yàn)的總結(jié)和注意事項(xiàng)的提醒。只要跟著本書的案例實(shí)操一遍,就能順利躍遷為AI時(shí)代的新程序員,與AI共同進(jìn)化,成為不被AI淘汰的人。
(1)資深專家撰寫:本書由14位來自各家大廠和科技公司的資深技術(shù)專家撰寫,是他們探索AI輔助編程的一手經(jīng)驗(yàn)總結(jié)。
(2)主流AI編程工具全覆蓋:詳細(xì)講解了ChatGPT、Github Copilot、Cursor、AutoGPT、Bito等AI輔助編程工具的使用。
(3)軟件研發(fā)流程全覆蓋:詳細(xì)講解了在技術(shù)方案構(gòu)建、需求文檔撰寫、代碼編寫與注解、客戶端開發(fā)、前端開發(fā)、后端開發(fā)、測(cè)試和調(diào)試、性能優(yōu)化、疑難問題解決、產(chǎn)品設(shè)計(jì)、軟件架構(gòu)與設(shè)計(jì)、應(yīng)試與面試12個(gè)主題如何使用AI工具。
(4)大量真實(shí)案例驅(qū)動(dòng):12個(gè)主題的知識(shí)點(diǎn)講解,全部是用案例來驅(qū)動(dòng)的,手把手教你如何操作。
(5)大量可復(fù)用提示詞:書中給出了大量精調(diào)后的提示詞,讀者可以直接在工作中復(fù)用。
(6)AI輔助軟件開發(fā)工程思維:本書還總結(jié)了在AI輔助軟件開發(fā)這種新范式下,軟件工程師開發(fā)項(xiàng)目應(yīng)該具備的工程化思維。
前 言
為何寫作本書
2023年4月,生成式人工智能領(lǐng)域的ChatGPT開始如日中天,ChatGPT和基于ChatGPT開發(fā)的應(yīng)用影響了人們工作和生活的方方面面。面對(duì)此次ChatGPT引發(fā)的人工智能熱潮,蘭軍老師有了寫一本書來分享其ChatGPT實(shí)踐經(jīng)驗(yàn)和知識(shí)的想法。我當(dāng)時(shí)也在關(guān)注ChatGPT,探索有哪些可以應(yīng)用ChatGPT帶來效率提升的地方。我們一拍即合,于是便有了此書。
限于我們接觸ChatGPT的時(shí)間與精力,實(shí)踐經(jīng)驗(yàn)還不夠豐富,我們只能盡量把真實(shí)的實(shí)踐經(jīng)驗(yàn)和感悟記錄到書中,希望能為編程領(lǐng)域的同行提供參考。
本書主要內(nèi)容
本書共13章,各章主要內(nèi)容如下:
第1章介紹AI輔助編程的主流工具,包括ChatGPT、GitHub Copilot、Cursor、AutoGPT和Bito等,最后介紹了人工智能繪畫工具M(jìn)idjourney。
第2章以一個(gè)爬取熱門的前十條微博項(xiàng)目為例,展示如何一步一步地提示ChatGPT給出項(xiàng)目的方案和代碼。可以通過提供清晰且明確的指令、可參考的格式和上下文等技巧來讓ChatGPT明白我們的問題,還可以讓ChatGPT協(xié)助我們寫商業(yè)計(jì)劃書。
第3章以實(shí)現(xiàn)一個(gè)教師資料庫(kù)需求為例,通過提示ChatGPT,讓ChatGPT完成技術(shù)文檔的編寫。
第4章為AI輔助客戶端編程。從Android的界面設(shè)計(jì)入手,逐步提示ChatGPT來進(jìn)行代碼生成,演示了如何修改Bug、如何進(jìn)行單元測(cè)試、如何解釋代碼等。在iOS應(yīng)用開發(fā)方面,以利用ChatGPT進(jìn)行一門新語言SwiftUI的學(xué)習(xí)為例,在ChatGPT輔助下進(jìn)行登錄界面的編寫,此外利用ChatGPT解決了一個(gè)實(shí)際項(xiàng)目遇到的視頻轉(zhuǎn)碼導(dǎo)致色彩失真的問題。
第5章為AI輔助前端編程,利用ChatGPT進(jìn)行主流前端框架Vue3的源碼閱讀和理解,生成項(xiàng)目打包配置文件,構(gòu)建正則表達(dá)式,以及快速生成Vue組件等。
第6章為AI輔助后端編程,以編寫一個(gè)生鮮小超市項(xiàng)目的代碼為例,對(duì)從開發(fā)準(zhǔn)備、方案設(shè)計(jì)、建表,到實(shí)現(xiàn)注冊(cè)、登錄退出、下單支付整個(gè)流程的實(shí)現(xiàn)進(jìn)行提示,引導(dǎo)ChatGPT給出最終的代碼。
第7章為AI輔助測(cè)試和調(diào)試,列舉了ChatGPT在制定測(cè)試策略、輸出測(cè)試計(jì)劃、快速生成測(cè)試用例等方面的實(shí)踐。
第8章和第9章為編寫程序的高階應(yīng)用。第8章為性能優(yōu)化,介紹發(fā)現(xiàn)性能問題、數(shù)據(jù)庫(kù)優(yōu)化、網(wǎng)絡(luò)傳輸優(yōu)化、內(nèi)存管理方面的實(shí)踐。第9章探討了AI在解決疑難雜癥時(shí)的應(yīng)用。
第10章綜合運(yùn)用多個(gè)AI工具開發(fā)了一個(gè)跑酷游戲,讓ChatGPT輔助設(shè)計(jì)游戲玩法,利用Midjourney生成游戲場(chǎng)景圖及游戲角色,并用Cursor工具生成最終的游戲代碼。
第11章從產(chǎn)品的角度利用ChatGPT提供的能力來開發(fā)應(yīng)用,其中有英語陪聊教練的Prompt設(shè)計(jì)、利用ChatGPT輸出當(dāng)日新聞資訊的Prompt設(shè)計(jì),以及基于ChatGPT開發(fā)數(shù)字人的產(chǎn)品應(yīng)用。
第12章探討軟件架構(gòu)師如何利用ChatGPT輔助各項(xiàng)日常工作。
第13章介紹ChatGPT如何幫助面試官快速理解面試題、出面試題,以及如何幫助求職者進(jìn)行模擬面試。
本書讀者對(duì)象
希望提升項(xiàng)目開發(fā)和代碼編寫效率的程序員。
希望為員工增效的企業(yè)管理者。
將要從事軟件行業(yè)的學(xué)生。
致謝
本書是團(tuán)隊(duì)智慧的結(jié)晶,由李柏鋒、蘭軍、張陽、陳劭松、周博、姚坤、王景山、馮振鵬、謝續(xù)金、李鑫民、管艷國(guó)、蔣帥、廖燕芳、陳勝琦共同撰寫而成。
感謝對(duì)本書內(nèi)容提供幫助的朋友,包括:車庫(kù)AI團(tuán)隊(duì)的胡藝、管振豪、程政等,房訊通的胡淋波、羅明明、雷瑞,易征的張勇軍、朱首文,以及云上評(píng)估的歐陽興。
特別感謝蘭軍老師(《運(yùn)營(yíng)前線1:一線運(yùn)營(yíng)專家的運(yùn)營(yíng)方法、技巧與實(shí)踐》和《運(yùn)營(yíng)前線2:一線運(yùn)營(yíng)專家的運(yùn)營(yíng)方法、技巧與實(shí)踐》作者),沒有蘭軍老師就沒有本書的誕生,蘭軍老師對(duì)本書的寫作起了極大的推動(dòng)作用。
謹(jǐn)以此書獻(xiàn)給互聯(lián)網(wǎng)行業(yè)的所有耕耘者,以及秉承終身學(xué)習(xí)理念、具備成長(zhǎng)思維、關(guān)注AI前沿技術(shù)的朋友們。
李柏鋒
李柏鋒
一位有信息工程背景的富有創(chuàng)造力的技術(shù)專家,梅沙科技聯(lián)合創(chuàng)始人和首席技術(shù)官,原騰訊高級(jí)工程師。華南理工大學(xué)研究生畢業(yè)后加入騰訊,參與和主導(dǎo)了多個(gè)千萬級(jí)用戶量的項(xiàng)目,涉及基礎(chǔ)開發(fā)框架的設(shè)計(jì)、系統(tǒng)流程架構(gòu)的設(shè)計(jì)以及API建設(shè)。在梅沙科技,從零開始搭建技術(shù)團(tuán)隊(duì),為智慧校園教育提供系統(tǒng)架構(gòu)支撐和技術(shù)創(chuàng)新,系統(tǒng)覆蓋戶外營(yíng)地教育、K12校園的招生入學(xué)、家校溝通、教務(wù)管理和教學(xué)測(cè)評(píng)全周期的業(yè)務(wù),服務(wù)近百所學(xué)校和教育機(jī)構(gòu)。 十分關(guān)注AI等前沿技術(shù),并致力于AI應(yīng)用到實(shí)際的生產(chǎn)力提升,以及探索AI在業(yè)務(wù)中的應(yīng)用。參與編寫并出版了《編程真酷》一書。
蘭軍
1995 年開始在DOS系統(tǒng)進(jìn)行編程研發(fā),2002 年從技術(shù)進(jìn)入互聯(lián)網(wǎng)產(chǎn)品領(lǐng)域,歷任騰訊高級(jí)產(chǎn)品經(jīng)理、YY 語音高級(jí)經(jīng)理、迅雷產(chǎn)品總監(jiān),2016 年創(chuàng)辦深圳梅沙科技至今,從事智慧校園系列軟件系統(tǒng)研發(fā)管理,在人工智能時(shí)代,期待用 AIGC技術(shù)提升團(tuán)隊(duì)研發(fā)效率,于是發(fā)起本書策劃并參與撰寫。
張陽
2002年以Flash AS程序員身份入行,2007年聯(lián)合發(fā)起WebRebuild 前端技術(shù)組織。2010年聯(lián)合創(chuàng)辦深圳房訊通至今,為全國(guó)各500多家銀行和政府提供房地產(chǎn)數(shù)據(jù)服務(wù)。2023年初受ChatGPT和GenAI沖擊,迅速成立4人小組,全職研究和探索新一代AI的應(yīng)用場(chǎng)景,并在此期間主理車庫(kù)AI老張視頻號(hào),全程更新AI實(shí)踐心得和車庫(kù)創(chuàng)業(yè)過程。
目 錄 Contents
前言
第1章 AI智能化編程助手 1
1.1 ChatGPT 1
1.1.1 ChatGPT與GPT-4介紹 2
1.1.2 ChatGPT在軟件開發(fā)中的應(yīng)用場(chǎng)景 4
1.1.3 實(shí)踐案例 4
1.2 GitHub Copilot 13
1.2.1 安裝 14
1.2.2 使用 15
1.2.3 總結(jié) 16
1.3 Cursor 17
1.3.1 安裝 17
1.3.2 使用 19
1.3.3 總結(jié) 20
1.4 AutoGPT 21
1.4.1 安裝 21
1.4.2 使用 21
1.4.3 總結(jié) 22
1.5 Bito 23
1.5.1 安裝 23
1.5.2 代碼生成 24
1.5.3 性能優(yōu)化 26
1.5.4 總結(jié) 29
1.6 Midjourney 29
1.6.1 基本語法 30
1.6.2 設(shè)計(jì)實(shí)例 31
1.6.3 設(shè)計(jì)流程 34
1.6.4 總結(jié) 35
第2章 面向軟件開發(fā)的提示工程 36
2.1 寫Prompt就是逐步明確需求的過程 37
2.1.1 讓ChatGPT一步一步寫出你想要的頁面 37
2.1.2 讓ChatGPT為你設(shè)計(jì)后臺(tái)架構(gòu)方案 41
2.1.3 讓ChatGPT完成后臺(tái)接口 44
2.2 如何提問才能讓ChatGPT更懂你 47
2.2.1 提問清晰且明確 47
2.2.2 提供可參考的格式和案例說明 48
2.2.3 提供上下文 49
2.2.4 8個(gè)OpenAI推薦的最佳實(shí)踐 53
2.3 讓ChatGPT在每個(gè)環(huán)節(jié)都發(fā)揮作用 55
2.3.1 一起討論商業(yè)計(jì)劃 55
2.3.2 做產(chǎn)品demo 58
2.3.3 找相似的開源項(xiàng)目 62
2.3.4 設(shè)計(jì)數(shù)據(jù)庫(kù) 65
2.3.5 協(xié)助寫商業(yè)計(jì)劃書 67
2.3.6 還能用ChatGPT做什么 73
2.4 提高ChatGPT的回答質(zhì)量 74
2.4.1 準(zhǔn)備工作 74
2.4.2 示例展示 75
第3章 AI輔助編寫技術(shù)文檔 79
3.1 技術(shù)文檔概述 79
3.2 架構(gòu)設(shè)計(jì)文檔 80
3.3 技術(shù)方案文檔 87
3.3.1 技術(shù)調(diào)研 87
3.3.2 技術(shù)選型 88
3.3.3 系統(tǒng)架構(gòu) 89
3.3.4 功能模塊設(shè)計(jì) 91
3.3.5 數(shù)據(jù)庫(kù)設(shè)計(jì) 92
3.3.6 接口設(shè)計(jì) 94
3.3.7 安全策略 96
3.3.8 部署方案 97
3.3.9 維護(hù)和升級(jí) 98
3.3.10 文檔撰寫 100
3.4 技術(shù)標(biāo)準(zhǔn)文檔 101
3.5 總結(jié) 103
第4章 AI輔助客戶端編程 104
4.1 AI輔助Android應(yīng)用開發(fā) 104
4.1.1 提問非常關(guān)鍵 104
4.1.2 評(píng)估回答是否有用 107
4.1.3 運(yùn)用上下文信息 107
4.1.4 代碼生成 109
4.1.5 修改Bug 110
4.1.6 單元測(cè)試 111
4.1.7 生成文檔說明 112
4.1.8 解釋代碼邏輯 112
4.1.9 解釋概念 113
4.2 AI輔助iOS應(yīng)用開發(fā) 114
4.2.1 AI能幫iOS開發(fā)者做哪些事 114
4.2.2 AI幫助快速學(xué)習(xí)SwiftUI 115
4.2.3 AI幫助解決視頻轉(zhuǎn)碼失真問題 125
第5章 AI輔助前端編程 133
5.1 AI輔助前端應(yīng)用開發(fā) 133
5.1.1 用ChatGPT閱讀Vue3(setup)源碼 134
5.1.2 搜索JavaScript方法 137
5.1.3 自動(dòng)優(yōu)化代碼 140
5.1.4 智能推薦和補(bǔ)全TypeScript類型 143
5.2 利用ChatGPT寫代碼 145
5.2.1 生成項(xiàng)目打包配置文件 145
5.2.2 快速構(gòu)建正則表達(dá)式 149
5.3 利用ChatGPT在前端開發(fā)中快速生成Vue組件 152
第6章 AI輔助后端編程 161
6.1 AI輔助商城應(yīng)用開發(fā):用ChatGPT寫簡(jiǎn)單的生鮮小超市項(xiàng)目 161
6.1.1 開發(fā)準(zhǔn)備 163
6.1.2 方案設(shè)計(jì) 163
6.1.3 建表功能 164
6.1.4 注冊(cè)功能 164
6.1.5 登錄退出功能 172
6.1.6 首頁瀏覽商品及詳情 175
6.1.7 購(gòu)物車功能 180
6.1.8 下單功能 183
6.1.9 支付功能 186
6.1.10 查看訂單 188
6.1.11 上線及服務(wù)器環(huán)境搭建 189
6.2 快速生成接口文檔 191
6.2.1 準(zhǔn)備工作 191
6.2.2 示例展示 191
第7章 AI輔助測(cè)試與調(diào)試 195
7.1 AI輔助測(cè)試與調(diào)試應(yīng)用案例 196
7.1.1 制定測(cè)試策略 196
7.1.2 輸出測(cè)試計(jì)劃 197
7.1.3 生成測(cè)試用例 199
7.1.4 生成接口測(cè)試用例和接口測(cè)試腳本 201
7.1.5 生成Web端登錄界面的自動(dòng)化測(cè)試腳本 203
7.1.6 解決問題 206
7.1.7 測(cè)試過程中用到的工具 210
7.1.8 如何進(jìn)行App自動(dòng)化測(cè)試 211
7.2 如何讓AI更好地輔助我們工作 213
7.2.1 學(xué)會(huì)提問 213
7.2.2 AI輔助編寫測(cè)試用例提問示例 214
7.3 更多實(shí)踐 217
7.4 總結(jié) 222
第8章 AI輔助應(yīng)用性能優(yōu)化 224
8.1 發(fā)現(xiàn)性能問題 224
8.2 編寫高效的代碼 226
8.3 數(shù)據(jù)庫(kù)優(yōu)化 233
8.4 網(wǎng)絡(luò)傳輸優(yōu)化 239
8.5 異步處理 242
8.6 內(nèi)存管理 244
第9章 AI輔助解決各種疑難雜癥 247
9.1 提升答題卡選項(xiàng)識(shí)別率 247
9.2 解決程序性能問題 255
9.3 解決圖片鋸齒問題 258
9.4 警惕小眾場(chǎng)景下的誤導(dǎo)性回答 260
9.4.1 小眾場(chǎng)景1:特定版本的渲染引擎下的紋理坐標(biāo)范圍 260
9.4.2 小眾場(chǎng)景2:部分安卓瀏覽器中的禁止?jié)L動(dòng)失效 262
第10章 AI輔助開發(fā)跑酷游戲 266
10.1 游戲設(shè)計(jì) 266
10.1.1 游戲世界觀構(gòu)建 266
10.1.2 游戲場(chǎng)景生成 268
10.1.3 游戲角色生成和后處理 268
10.1.4 Midjourney 圖片生成總結(jié) 269
10.2 游戲架構(gòu)設(shè)計(jì) 270
10.2.1 架構(gòu)選型 271
10.2.2 模塊功能細(xì)分 277
10.2.3 ChatGPT架構(gòu)能力總結(jié) 280
10.3 代碼實(shí)現(xiàn) 281
10.3.1 代碼輔助工具選型 281
10.3.2 模塊功能編寫 282
10.3.3 Cursor代碼生成總結(jié) 289
10.4 AI對(duì)游戲研發(fā)的影響 290
第11章 高階Prompt與基于ChatGPT的產(chǎn)品應(yīng)用開發(fā) 292
11.1 英語陪聊教練 292
11.1.1 實(shí)現(xiàn)過程與技術(shù)要點(diǎn) 294
11.1.2 指定角色Prompt 294
11.2 利用ChatGPT自動(dòng)輸出當(dāng)日新聞資訊 296
11.2.1 準(zhǔn)備工作 296
11.2.2 查新聞(并獲取JSON) 296
11.3 利用UE創(chuàng)建數(shù)字人 297
11.3.1 準(zhǔn)備工作 297
11.3.2 使用MetaHuman自帶的人物 298
11.3.3 進(jìn)階實(shí)戰(zhàn) 302
第12章 軟件架構(gòu)師如何使用AI技術(shù)提升工作效率 312
12.1 架構(gòu)師的類型 312
12.2 軟件架構(gòu)師的工作職責(zé) 313
12.3 AI輔助軟件架構(gòu)師實(shí)踐 314
12.3.1 技術(shù)戰(zhàn)略設(shè)計(jì) 314
12.3.2 技術(shù)團(tuán)隊(duì)建設(shè) 316
12.3.3 技術(shù)難題攻關(guān) 318
12.3.4 跨團(tuán)隊(duì)協(xié)作 319
12.3.5 項(xiàng)目管理 326
第13章 AI輔助提升程序員求職、招聘與面試效率 328
13.1 用ChatGPT理解面試題 328
13.2 用ChatGPT出面試題 331
13.3 讓ChatGPT扮演面試官幫你查漏補(bǔ)缺 334
后 記 340