GitHub Copilot編程指南:利用AI更快地編寫更好的代碼 [美]庫爾特·道斯韋爾
定 價:¥99
中 教 價:¥54.45 (5.50折)
庫 存 數: 5
本書是一本了解和掌握GitHub Copilot及AI編程的實用參考書。全書共分為四部分:第一部分是GitHub Copilot入門知識,介紹基本概念、安裝配置及試用方法;第二部分是GitHub Copilot的功能實戰,包括代碼補全的實際使用、與GitHub Copilot的對話及高效編程技巧;第三部分是GitHub Copilot的實際應用技巧,涉及學習新語言、編寫單元測試、診斷與修復錯誤、代碼重構、增強代碼安全性、處理復雜的CI/CD流程、優化開發環境以及通用轉換;第四部分是GitHub Copilot的高階應用,包括如何負責任地使用GitHub Copilot,如何將它融入軟件開發全生命周期,以及商業版與企業版的額外控制和安全特性等。本書適合程序員、軟件開發人員和軟件工程師閱讀。
在本書中,資深軟件開發人員兼GitHub社區杰出貢獻者Kurt Dowswell進行了實用且實操性的討論,介紹如何使用GitHub基于人工智能的編碼助手Copilot來加速你的編碼過程。在這本書中,你將了解到Copilot的功能如何突破你以往在VS Code中使用TabNine等自動補全工具時對編程可能性的認知界限。這本書深入探討了GitHub這款最新的開創性編程工具,帶你全面了解Copilot的各個相關方面,從安裝和配置的入門操作,到使用最受歡迎的功能、與該工具進行交互、使用商業功能,以及學習如何使用Copilot企業版。你甚至還會學到如何根據規格說明進行編程、修復運行時和編譯錯誤,以及編寫單元測試、集成測試和端到端測試。對于從業程序員、開發人員和軟件工程師來說,本書是一本不容錯過的案頭參考書。對于正在學習的程序員和其他IT從業者而言,本書也是擴展技能集、拓寬和加深編程知識的重要資源 。
The Translators Words 譯者序 過去的半年,我有幸深入體驗GitHub Copilot,并參與了這一工具在Thoughtworks內部項目中的學習和使用推廣。在這一過程中,我首次通過GitHub Copilot的強大功能深切領略到了AI輔助編程的魅力,甚至打消了此前的諸多顧慮。GitHub Copilot宛如一位與我合作多年的程序員同事,每當我寫下一個開頭,完成一個操作或者提出一個問題時,它總能準確地理解我的意圖,并訊速給出回應,無論是代碼片段還是下一步的建議。恍惚之間,我松開鍵盤,不禁憶起了當年在Thoughtworks北京辦公室的那段編程時光以及許多老朋友。機緣巧合之下,我接到了本書的翻譯任務,這讓我感到無比榮幸。能夠以譯者的身份,將高級軟件開發工程師和GitHub社區貢獻者Kurt Dowswell的精彩著作呈現給中文讀者,我深感自豪。我們都清晰地看到,人工智能正逐步改變我們開展編程工作的方式,各類AI工具如雨后春筍般涌現。在眾多工具之中,GitHub Copilot無疑是最為耀眼的一個,贏得了廣泛的社區好評。本書應運而生,目的是幫助讀者在AI 2.0時代全面了解并高效利用這個強大的AI編程助手,從而在這個快速變化的技術環境中與時俱進,始終保持個人和組織的卓越性。本書分為四部分,涵蓋了GitHub Copilot從基礎到高級的多方面內容,包括從基本的代碼補全、學習新語言、編寫測試、重構代碼、調試診斷以及處理復雜的CI/CD流程,到如何將它融入軟件開發的全周期中,如何協助確保代碼安全以及如何負責任地使用等內容,其中:第一部分是GitHub Copilot的入門知識,介紹基本概念、安裝配置及試運行方法等;第二部分是GitHub Copilot的功能實戰,包括代碼補全的實際使用、與Copilot的對話及高效編程技巧;第三部分是GitHub Copilot的實際應用技巧,涉及學習新語言、編寫單元測試、診斷和修復錯誤、代碼重構、增強代碼安全性、通用轉換以及處理復雜的CI/CD流程;第四部分是GitHub Copilot的核心見解與高階應用,包括如何負責任地使用、如何將它融入軟件開發全生命周期,以及商業版和企業版的額外控制和安全特性等。本書是一本了解和掌握GitHub Copilot及AI編程的實用參考書。作者在書中提供了豐富的示例和實用技巧,無論是編程新手還是經驗豐富的開發者,都能跟隨書中示例進行練習,輕松上手GitHub Copilot,體驗這種高效、智能的編程交互方式的實際效果。或許你也會像我一樣重新審視AI編程,打消顧慮。此外,本書也適合那些希望在組織中采納和推廣GitHub Copilot的團隊閱讀。在第四部分,作者分析了在企業中采納GitHub Copilot需要考慮的各個方面。尤其是第14章提出的AI在企業軟件開發生命周期的集成成熟度評估層級,從最初級的無流程狀態(0級)到最高級的組織優化AI工具實施(5級),為在組織中實施和評估提供了寶貴的視角。隨著人工智能技術的不斷進步,像GitHub Copilot這樣的AI驅動編程工具正在為軟件開發帶來新的機遇和挑戰。因此,理解和掌握這些新技術,將是每位程序員和每個軟件開發組織面臨的重要課題。在此,衷心感謝作者Kurt Dowswell以及所有參與本書出版的團隊成員。希望本書能為大家在編程中提供幫助和啟發,讓我們一同迎接AI驅動的未來。
禚嫻靜
Preface 前 言 歡迎閱讀本書,這是一本關于GitHub Copilot的全面使用指南。隨著編程的演進,開發工具和技術需要適應日益復雜的項目和更高效的開發需求。GitHub Copilot的出現代表了代碼編寫方式的重大變革,它將成為軟件從業者未來編程過程中的得力助手。GitHub Copilot不僅是一種工具,它還在重塑結對編程的概念。傳統的結對編程需要兩名程序員在同一個工作站共同協作以編寫更好的代碼,而GitHub Copilot則是隨時在線的AI編程搭檔,能夠提供代碼建議、調試協助,甚至自主編寫代碼塊。本書著重介紹GitHub Copilot在軟件開發中的實際應用。從設置開發環境到提升代碼安全和加速DevSecOps實踐等高級話題,每章都通過深入探討具體的案例進行分析,為你在實際工作中充分利用這一強大工具提供指導和幫助。讀者可從本書官網(https://www.wiley.com/go/programminggithubcopilot)獲取部分章節的入門項目代碼文件,從而在閱讀本書的同時跟隨書中的實例進行操作。無論是資深的開發者還是剛起步的初學者,本書都將幫助你快速且全面地掌握GitHub Copilot的功能,提升編程技能,學習新的語言,重構代碼等。致謝本書的創作離不開眾多人的指導、支持和鼓勵。首先感謝Kenyon Brown對我的信任,給予我完成本書的機會。衷心感謝Satish Gowrishankar的詳細計劃、組織和時間把控。他的監督使整個過程順利且高效。深深感謝Janet Wehner協調內容并精準引導本書出版的每一步。特別感謝T. J. Corrigan提供寶貴的專業知識,并對技術方面進行細致的審閱。最后,我要感謝我的妻子Paige Lord-Dowswell。她的鼓勵、洞見和智慧在我完成本書的過程中功不可沒。Kurt Dowswell
庫爾特·道斯韋爾(Kurt Dowswell)資深軟件架構師,擁有超過13年為美國國防部提供企業級軟件解決方案的經驗。他是最早使用GitHub Copilot的開發者之一,也是GitHub的社區杰出貢獻者,向全球開發者社區推廣這款人工智能編碼工具。
Contents 目 錄 譯者序前言第一部分 GitHub Copilot入門第1章 GitHub Copilot簡介21.1 為什么需要GitHub Copilot21.2 創建GitHub賬戶31.3 獲取GitHub Copilot許可31.4 安裝IDE插件31.4.1 下載Visual Studio Code41.4.2 安裝GitHub Copilot插件41.4.3 在IDE中配置Copilot51.4.4 安裝Node.js71.5 試運行Copilot71.5.1 準備工作81.5.2 探索Copilot81.6 結語121.7 參考文獻12第2章 深入理解GitHub Copilot132.1 揭秘GitHub Copilot背后的AI 技術132.2 理解安全、隱私與數據處理142.2.1 消息傳輸142.2.2 數據存儲142.2.3 安全增強152.3 了解版權保護152.4 探索GitHub Copilot信任中心162.5 結語172.6 參考文獻17第二部分 GitHub Copilot功能實戰第3章 探索代碼補全203.1 代碼補全功能簡介203.2 使用Copilot進行代碼補全213.2.1 預備知識213.2.2 文件命名213.2.3 頂層注釋213.2.4 使用有意義的名稱233.2.5 撰寫明確注釋243.2.6 引用打開的標簽頁263.3 探索工具欄與面板273.3.1 深入解析補全工具欄273.3.2 探索補全面板283.4 調整Copilot設置283.4.1 inlineSuggestCount303.4.2 length303.4.3 listCount303.5 利用鍵盤快捷鍵313.5.1 聚焦GitHub Copilot視圖313.5.2 建議終端命令323.5.3 觸發內聯建議323.5.4 切換到下一條面板建議323.5.5 切換到上一條面板建議323.5.6 打開補全面板323.6 結語33第4章 與GitHub Copilot對話344.1 探索Copilot Chat344.1.1 側邊欄對話344.1.2 充分利用編輯器視圖對話354.1.3 將對話拓展至新窗口354.1.4 引導對話走向正確方向374.1.5 運用內聯對話374.1.6 探索快速對話374.2 使用Copilot Chat定義提示工程404.2.1 基礎知識414.2.2 在對話中獲取上下文424.3 精準掌控對話444.3.1 使用@workspace進行查詢444.3.2 與@vscode互動524.3.3 利用@terminal學習544.4 結語54第三部分 GitHub Copilot的實際應用第5章 學習一門新的編程語言585.1 學習語言導論585.2 搭建開發環境595.2.1 準備工作595.2.2 安裝指南595.3 學習基礎知識615.3.1 準備工作615.3.2 學習C#615.4 創建控制臺應用程序625.4.1 準備工作625.4.2 創建C#控制臺應用程序625.5 闡釋代碼645.6 添加新代碼665.7 學習測試675.7.1 通過選擇創建上下文705.7.2 通過標簽創建上下文705.7.3 運行測試715.8 結語725.9 參考文獻73第6章 編寫測試746.1 創建示例項目746.2 為現有代碼添加單元測試756.2.1 以注釋驅動單元測試的創建756.2.2 使用內聯對話生成測試786.3 探索行為驅動開發806.4 結語85第7章 診斷與修復錯誤867.1 創建示例項目867.2 修正語法錯誤877.3 解決運行時異常897.4 處理終端錯誤927.5 結語95第8章 助力代碼重構968.1 Copilot代碼重構簡介968.2 創建示例項目978.3 重構重復代碼988.3.1 添加單元測試988.3.2 重構重復的錯誤處理代碼1028.4 重構驗證器1048.4.1 添加單元測試1048.4.2 提取驗證代碼至函數1058.5 重構不當變量名1088.6 代碼文檔與注釋1098.6.1 方法文檔1108.6.2 項目文檔1108.7 結語113第9章 增強代碼安全性1149.1 代碼安全詳解1149.2 創建示例項目1159.3 探索代碼安全1169.3.1 使用HTTPS1179.3.2 實現驗證1179.3.3 總結1199.4 發現和修復安全隱患1199.4.1 修復弱密碼哈希1199.4.2 修復SQL注入1219.5 結語122第10章 加速DevSecOps實踐12310.1 DevSecOps詳解12310.2 簡化容器12410.2.1 創建容器12410.2.2 部署容器12610.2.3 實施安全管控12610.3 自動化基礎設施即代碼12710.3.1 創建基礎設施即代碼12710.3.2 使用Terraform部署代碼12910.3.3 實施安全控制措施13010.4 優化CI/CD流程13110.4.1 創建CI流水線13110.4.2 增設安全掃描13310.4.3 創建CD流水線13410.5 結語136第11章 優化開發環境13711.1 增強Visual Studio13711.1.1 準備工作13711.1.2 安裝GitHub Copilot擴展13811.1.3 探索代碼補全13911.1.4 與Copilot對話14111.2 強化Azure Data Studio14311.2.1 準備工作14311.2.2 安裝GitHub Copilot擴展14311.2.3 創建數據庫模式14411.2.4 插入測試數據14511.2.5 進行查詢14611.3 助力JetBrains IntelliJ IDEA14711.3.1 準備工作14811.3.2 安裝GitHub Copilot擴展14811.3.3 探索代碼補全15011.3.4 與Copilot對話15111.4 增強Neovim15211.4.1 準備工作15211.4.2 安裝GitHub Copilot擴展15211.4.3 探索代碼自動補全15311.5 在GitHub命令行界面中使用 Copilot 15611.5.1 準備工作15611.5.2 安裝GitHub Copilot擴展15611.5.3 獲取Copilot代碼提示15611.5.4 使用Copilot解釋命令15911.5.5 為Copilot設置別名15911.6 結語16011.7 參考文獻160第12章 通用轉換16112.1 將自然語言轉換為編程語言16112.2 JavaScript組件轉換16312.3 CSS樣式簡化16512.4 非類型語言增強類型支持16912.5 框架與庫之間的轉換17012.5.1 Pandas轉Polars17112.5.2 Express.js轉Koa.js17312.6 面向對象語言的轉換17512.7 數據庫遷移17612.8 CI/CD平臺遷移17912.9 遺留系統現代化18112.10 結語18412.11 參考文獻185第四部分 GitHub Copilot的核心見解與高階應用第13章 GitHub Copilot的AI 倫理見解與責任18813.1 負責任的AI簡介18813.2 GitHub Copilot實施負責任 的AI探析18913.2.1 公平性18913.2.2 可靠性和安全性19113.2.3 隱私和保障19113.2.4 包容性19313.2.5 透明度19313.2.6 問責制19413.2.7 深入探索19513.3 負責任的AI編程19513.4 結語19613.5 參考文獻196第14章 GitHub Copilot助力 軟件開發生命周期19714.1 軟件開發生命周期簡介19714.1.1 需求19814.1.2 設計19814.1.3 編碼19814.1.4 測試19814.1.5 部署19814.1.6 維護19814.2 AI在軟件開發生命周期中的 應用評估19814.3 AI在軟件開發生命周期中的 集成層級詳解19914.3.1 第0級:不存在20014.3.2 第1級:初始20014.3.3 第2級:已管理20114.3.4 第3級:已定義20114.3.5 第4級:量化管理20214.3.6 第5級:優化20214.3.7 總結20314.4 GitHub Copilot在軟件開發 生命周期中的應用展示20314.4.1 示例場景詳解20414.4.2 需求收集20414.4.3 優化待辦事項列表20614.4.4 使用Copilot進行規劃20914.4.5 使用Copilot進行編程21014.4.6 使用Copilot進行測試21114.4.7 使用Copilot進行部署21314.5 應對挑戰:AI應用與就業前景21414.6 結語21514.7 參考文獻215第15章 探索GitHub Copilot 商業版與企業版21615.1 Copilot商業版與企業版簡介21615.1.1 基礎功能詳解21715.1.2 Copilot商業版21815.1.3 Copilot企業版21915.2 在GitHub.com與Copilot交互21915.2.1 洞悉代碼庫概況22015.2.2 向Copilot咨詢通用編程 問題22215.3 索引代碼庫以增強Copilot的 理解力22415.3.1 示例項目詳解22415.3.2 檢索增強生成技術簡介22415.3.3 為代碼庫創建索引22515.3.4 代碼庫相關問題咨詢22515.4 利用知識庫獲取更優答案22815.4.1 創建知識庫22815.4.2 總結23315.5 借助Copilot Chat處理代碼庫 文件23415.5.1 使用Copilot解釋代碼23415.5.2 獲取Copilot的改進建議23615.5.3 為當前線程附加上下文23615.6 借助Copilot增強拉取請求23815.6.1 了解拉取請求任務24015.6.2 借助Copilot進行代碼修改24115.6.3 向功能分支提交變更24415.6.4 借助Copilot概括拉取請求24515.7 管理GitHub Copilot24715.7.1 管理訪問權限24715.7.2 管理策略24715.7.3 內容屏蔽24815.7.4 審查審計日志24915.8 展望未來25015.8.1 用必應搜索增強結果25015.8.2 使用微調模型定制Copilot25115.8.3 Copilot Workspace增強 Copilot25115.9 結語25115.10 參考文獻251本書結語253附錄 擴展學習資源254術語表258