





內容簡介
內容介紹:
AI 世代強勢來臨,這是一場關於「開發效率」與「思考維度」的革命!
從開發者的實際痛點出發,帶你學會如何在不同開發階段策略性地與 AI 協作。從需求分析、使用者故事定義,到資料庫設計、Flask 後端實作及 UI 介面優化,逐步打造可維護、可上線的應用程式,並有效提升開發效率。
帶你從實務專案出發,建立可維護、可驗證的 AI 輔助開發流程
● 將 AI 工具整合進實際開發流程
● 建立可重複使用的 AI 提示詞
● 產出專業級文件與自動化測試
● 高效進行除錯與程式重構
● 有效避開 AI 常見的幻覺問題
本書特色:
本書適合 ~
● 想提升開發效率的 Python 開發者:將 AI 整合進實際開發流程,提升程式開發品質。
● 想掌握 AI 輔助開發流程的學習者:從規劃、設計、實作到除錯,完整理解 AI 如何參與軟體開發生命週期。
● 重視程式碼品質與可維護性的工程師:深入了解如何運用 AI 協助重構、除錯、文件撰寫與測試生成。
本書不限於使用特定 AI 工具,重點在於培養與 AI 協作的思維與方法,讓你能靈活應用於不同開發情境。並且將會簡介 GitHub Copilot、ChatGPT、Gemini、Blackbox AI、Tabnine、Cursor 等工具的特色與適用情境,幫助讀者從實作案例中比較差異,找到最適合自己的
AI 輔助開發工具。
別讓 AI 只是你的玩具,讓它成為你的專業開發夥伴!
產品目錄
▌第 1 篇 AI 輔助程式開發入門
第 1 章 認識生成式 AI
▸ 1.1 給開發者的生成式 AI
.1.1.1 程式碼生成與自動補全
.1.1.2 錯誤偵測與自動修正
.1.1.3 文件生成
.1.1.4 程式重構與優化
.1.1.5 生成測試案例與建立模擬資料 (mock data)
▸ 1.2 開發者工具概述
.1.2.1 整合型開發工具
.1.2.2 獨立型工具
▸ 1.3 生成式 AI 是怎麼運作的?
▸ 1.4 什麼是 LLM?為何值得關注?
▸ 1.5 為什麼這些工具有時候會出錯?
.1.5.1 LLM 與資料庫的區別
.1.5.2 訓練階段問題
.1.5.3 誤解上下文
▸ 1.6 LLM 的潛力
▸ 1.7 生成式 AI vs. 程式碼補全
.1.7.1 其他類型的生成式 AI
.1.7.2 為什麼開發者應該關注生成式 AI
▸ 1.8 結合 AI 協作的專案開發流程
.1.8.1 構思與規劃
.1.8.2 程式碼生成與協作
.1.8.3 程式碼審查與分析
.1.8.4 測試與除錯
.1.8.5 文件與內容生成
▸ 1.9 選擇合適的生成式 AI 工具
.1.9.1 資料品質與可用性
.1.9.2 開發流程整合
.1.9.3 品質驗證
.1.9.4 持續追蹤工具演進
.1.9.5 思維轉變
▸ 1.10 不必害怕 AI 的崛起
▸ 1.11 開始動手寫程式!
第 2 章 AI 協助撰寫程式的第一步
▸ 2.1 什麼是 GitHub Copilot?
.2.1.1 GitHub Copilot 的運作方式
.2.1.2 與 GitHub Copilot 互動
▸ 2.2 常見模式
▸ 2.3 關鍵的上下文 (Context is everything)
▸ 2.4 什麼是自然語言處理 (NLP)?
▸ 2.5 一個簡單的 Python 專案
.2.5.1 準備你的開發環境
.2.5.2 建立應用程式
.2.5.3 支線任務:測試函式速度
▌第 2 篇 AI 輔助建構應用程式
第 3 章 探索需求與生成設計文件
▸ 3.1 認識 ChatGPT
▸ 3.2 問題陳述 (使用者需求)
▸ 3.3 建立正確的提示詞 (prompt)
▸ 3.4 衡量 ChatGPT 對設計流程的影響
▸ 3.5 使用 ChatGPT 創建的設計文件
▸ 3.6 軟體設計文件:業餘無線電 (HAM) 執照練習測驗應用程式
▸ 3.7 深入探討細節
.3.7.1 系統概述 (第 2 點)
.3.7.2 技術堆疊 (第 5 點)
▸ 3.8 生成專案的使用者故事
.3.8.1 在提示詞中定義角色
.3.8.2 輸出結果:使用者故事
.3.8.3 分析輸出結果
.3.8.4 仔細檢視使用者故事文件
第 4 章 撰寫應用程式的第一版程式碼
▸ 4.1 Stubbing:建立應用程式的骨架
▸ 4.2 從設計文件中擷取需求
.4.2.1 步驟 1:使用 ChatGPT 擷取需求
.4.2.2 步驟 2:使用 Gemini 擷取需求
▸ 4.3 設定開發環境
▸ 4.4 Flask 應用程式結構 (structure)
▸ 4.5 為應用程式建立骨架 (stubbing)
▸ 4.6 初次執行應用程式
第 5 章 使用 Blackbox AI 生成程式碼
▸ 5.1 使用生成式 AI 工具進行應用程式開發
▸ 5.2 建立開發環境
▸ 5.3 開發核心功能
.5.3.1 建立資料庫
.5.3.2 連線至資料庫
.5.3.3 從前端呼叫資料庫
.5.3.4 重構 Questions 類別
.5.3.5 修改應用程式入口點 (App.py)
.5.3.6 抽取一組題目
.5.3.7 建立測驗工作階段 (session) 資料
.5.3.8 建立測驗工作階段的程式碼
.5.3.9 產生題目集合 (question set)
.5.3.10 驗證測驗工作階段 (session) 是否建立成功
.5.3.11 結論
第 6 章 使用 Tabnine 建立軟體後端
▸ 6.1 建立工作階段與發現第一個 bug
▸ 6.2 建立索引頁面
.6.2.1 建立啟動工作階段的互動介面 (新增按鈕)
.6.2.2 讓工作階段持續存在
.6.2.3 重構工作階段的建立流程
.6.2.4 重構題目集合方法
.6.2.5 建立結束工作階段的功能
▌第 3 篇 進階 AI 開發技術
第 7 章 使用生成式 AI 建構使用者介面
▸ 7.1 使用 AI 工具取得策略方向
.7.1.1 ChatGPT 的輸出結果
.7.1.2 Gemini 的輸出結果
.7.1.3 Blackbox AI 的結果
.7.1.4 提示詞優化 (refinement)
▸ 7.2 建立樣板
▸ 7.3 梳理應用程式的流程
.7.3.1 建立整體設計
.7.3.2 根據線框圖撰寫 HTML 草稿
.7.3.3 應用程式的最終介面 (UI)
第 8 章 使用生成式 AI 建立有效測試
▸ 8.1 為什麼要使用生成式 AI 來進行測試?
▸ 8.2 什麼是單元測試?
▸ 8.3 生成 Python 測試的工具
▸ 8.4 使用生成式 AI 撰寫單元測試
.8.4.1 unittest 還是 pytest?
.8.4.2 使用 Copilot 生成測試
.8.4.3 使用 Tabnine 生成測試
.8.4.4 使用 Blackbox AI 生成測試
.8.4.5 應該使用哪一個工具來產生測試?
第 9 章 提示工程 (Prompt Engineering)
▸ 9.1 了解提示工程
▸ 9.2 認識提示詞的組成
.9.2.1 關鍵元素:上下文、指示、範例
.9.2.2 示範精準提示詞G以 MySQL 連線為例
▸ 9.3 打造終極提示詞
▸ 9.4 基本提示詞類型
.9.4.1 Zero-shot (零樣本) 提示
.9.4.2 Few-shot 提示
.9.4.3 開放式 (Open-ended) 提示詞
.9.4.4 限制型 (Constrained) 提示詞
.9.4.5 結構化 (Structured) 提示詞
.9.4.6 迭代式流程的案例
▸ 9.5 進階的提示工程
.9.5.1 思維鏈提示 (Chain-of-thought prompting)
.9.5.2 遞迴提示 (Recursive prompting)
.9.5.3 情境操控 (Context manipulation)
.9.5.4 指令精鍊 (Instruction refinement)
.9.5.5 輸出控制 (Output control)
.9.5.6 小結
▸ 9.6 程式設計師專用的提示詞技巧
.9.6.1 角色與視角設定
.9.6.2 情境與限制條件
.9.6.3 任務拆解與流程控制
.9.6.4 輸出結構與格式控制
.9.6.5 品質檢查與改善標準
.9.6.6 方案比較、取捨與反例
第 10 章 使用 Cursor 進行 Vibe Coding
▸ 10.1 什麼是 Vibe Coding?
▸ 10.2 什麼是 Cursor?它為什麼與眾不同?
.10.2.1 介面
.10.2.2 專案層級的上下文理解、客製化能力
▸ 10.3 初始構想
▸ 10.4 建立遊戲的初始提示詞
▸ 10.5 Cursor 基礎操作
.10.5.1 提供回饋
.10.5.2 添加上下文 / 情境 (Adding context)
.10.5.3 選擇模式 (Selecting a mode)
.10.5.4 模型選擇 (Model selection)
.10.5.5 MAX 模式
▸ 10.6 初次提示詞的結果
▸ 10.7 第一次執行遊戲
▸ 10.8 進一步調整遊戲
.10.8.1 修正木頭重疊
.10.8.2 加入高分紀錄
.10.8.3 讓遊戲持續進行
作者介紹
Jeremy C. Morgan 致力於協助開發者精進專業能力,現任 KodeKloud 的資深訓練架構師。擁有二十年的工程師經驗,曾為各種規模的組織打造軟體,服務對象從 Fortune 100 企業到小型新創公司皆包含在內。過去幾年,專注於生成式 AI 與機器學習專案,並在自己的技術部落格撰寫教學文章,且廣受讀者歡迎。歡迎造訪作者的個人網站:www.jeremymorgan.com
規格
退貨說明
退貨須知:
- 依照消費者保護法的規定,您享有商品貨到次日起七天猶豫期(含例假日)的權益(請注意!猶豫期非試用期),辦理退貨之商品必須是全新狀態(不得有刮傷、破損、受潮)且需完整(包含全部商品、配件、原廠內外包裝、贈品及所有附隨文件或資料的完整性等)。
- 請您以送貨廠商使用之包裝紙箱將退貨商品包裝妥當,若原紙箱已遺失,請另使用其他紙箱包覆於商品原廠包裝之外,切勿直接於原廠包裝上黏貼紙張或書寫文字。若原廠包裝損毀將可能被認定為已逾越檢查商品之必要程度,本公司得依毀損程度扣除回復原狀必要費用(整新費)後退費;請您先確認商品正確、外觀可接受,再行拆封,以免影響您的權利;若為產品瑕疵,本公司接受退貨。
依「通訊交易解除權合理例外情事適用準則」,下列商品不適用七日猶豫期,除產品本身有瑕疵外,不接受退貨:
- 易於腐敗、保存期限較短或解約時即將逾期。(如:生鮮蔬果、乳製品、冷凍冷藏食材、蛋糕)
- 依消費者要求所為之客製化給付。(如:客製印章、鋼筆刻字)
- 報紙、期刊或雜誌。
- 經消費者拆封之影音商品或電腦軟體。
- 非以有形媒介提供之數位內容或一經提供即為完成之線上服務,經消費者事先同意始提供。(如:電子書)
- 已拆封之個人衛生用品。(如:內衣褲、襪類、褲襪、刮鬍刀、除毛刀等貼身用品)
- 國際航空客運服務。
若您退貨時有下列情形,可能被認定已逾越檢查商品之必要程度而須負擔為回復原狀必要費用(整新費),或影響您的退貨權利,請您在拆封前決定是否要退貨:
- 以數位或電磁紀錄形式儲存或著作權相關之商品(包含但不限於CD、VCD、DVD、電腦軟體等) 包裝已拆封者(除運送用之包裝以外)。
- 耗材(包含但不限於墨水匣、碳粉匣、紙張、筆類墨水、清潔劑補充包等)之商品包裝已拆封者(除運送用之包裝以外)。
- 衣飾鞋類/寢具/織品(包含但不限於衣褲、鞋子、襪子、泳裝、床單、被套、填充玩具)或之商品缺件(含購買商品、附件、內外包裝、贈品等)或經剪標或下水或商品有不可回復之髒污或磨損痕跡。
- 食品、美容/保養用品、內衣褲等消耗性或個人衛生用品、商品銷售頁面上特別載明之商品已拆封者(除運送用之包裝外一切包裝、包括但不限於瓶蓋、封口、封膜等接觸商品內容之包裝部分)或已非全新狀態(外觀有刮傷、破損、受潮等)與包裝不完整(缺少商品、附件、原廠外盒、保護袋、配件紙箱、保麗龍、隨貨文件、贈品等)。
- 家電、3C、畫作、電子閱讀器等商品,除商品本身有瑕疵外,退回之商品已拆封(除運送用之包裝外一切包裝、包括但不限於封膜等接觸商品內容之包裝部分、移除封條、拆除吊牌、拆除貼膠或標籤等情形)或已非全新狀態(外觀有刮傷、破損、受潮等)與包裝不完整(缺少商品、附件、原廠外盒、保護袋、配件紙箱、保麗龍、隨貨文件、贈品等)。
- 退貨程序請參閱【客服專區→常見問題→誠品線上退貨退款】之說明。








