重構:改善 .NET 與 C# 應用程式的設計,償還欠下的技術債 (使用 GitHub Copilot 與 Visual Studio) (Refactoring with C#: Safely improve .NET applications and pay down technical debt with Visual Studio, .NET 8, and C# 12)
Matt Eland 著 AI人工智慧小組(GPT、博碩編輯室) 編譯、陳傳興(Bruce Chen) 審校
- 出版商: 博碩
- 出版日期: 2024-03-26
- 定價: $850
- 售價: 7.8 折 $663
- 語言: 繁體中文
- 頁數: 480
- 裝訂: 平裝
- ISBN: 6263337788
- ISBN-13: 9786263337787
- 
    相關分類:
    
      Refactoring
 
- 此書翻譯自: Refactoring with C#: Safely improve .NET applications and pay down technical debt with Visual Studio, .NET 8, and C# 12 (Paperback) 銷售排行: 🥈 2024/4 繁體中文書 銷售排行 第 2 名
🥇 2024/3 繁體中文書 銷售排行 第 1 名
立即出貨 (庫存 > 10)
買這商品的人也買了...
- 
                
                   學徒模式-優秀軟體開發者的養成之路 (Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman) 學徒模式-優秀軟體開發者的養成之路 (Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman)$420$332
- 
                
                   設計模式的解析與活用 (Design Patterns Explained: A New Perspective on Object-Oriented Design, 2/e) 設計模式的解析與活用 (Design Patterns Explained: A New Perspective on Object-Oriented Design, 2/e)$480$374
- 
                
                   單元測試的藝術, 2/e (The Art of Unit Testing: with examples in C#, 2/e) 單元測試的藝術, 2/e (The Art of Unit Testing: with examples in C#, 2/e)$650$507
- 
                
                   架構師的自我修煉:技術、架構和未來 架構師的自我修煉:技術、架構和未來$534$507
- 
                
                   深入淺出 C# : 運用 C# 和 .Net Core 編寫真正的程式, 4/e (Head First C#: A Learner's Guide to Real-World Programming with C#, Xaml, and .Net, 4/e) 深入淺出 C# : 運用 C# 和 .Net Core 編寫真正的程式, 4/e (Head First C#: A Learner's Guide to Real-World Programming with C#, Xaml, and .Net, 4/e)$980$774
- 
                
                   深入淺出設計模式, 2/e (Head First Design Patterns: Building Extensible and Maintainable Object-Oriented Software, 2/e) 深入淺出設計模式, 2/e (Head First Design Patterns: Building Extensible and Maintainable Object-Oriented Software, 2/e)$980$774
- 
                
                   設計重構:25個管理技術債的技巧消除軟體設計臭味 (Refactoring for Software Design Smells: Managing Technical Debt) 設計重構:25個管理技術債的技巧消除軟體設計臭味 (Refactoring for Software Design Smells: Managing Technical Debt)$520$406
- 
                
                   Martin Fowler 的企業級軟體架構模式:軟體重構教父傳授 51個模式,活用設計思考與架構決策 (Patterns of Enterprise Application Architecture) Martin Fowler 的企業級軟體架構模式:軟體重構教父傳授 51個模式,活用設計思考與架構決策 (Patterns of Enterprise Application Architecture)$800$624
- 
                
                   ASP.NET Core 工程師不可不知的 10大安全性漏洞與防駭方法 ASP.NET Core 工程師不可不知的 10大安全性漏洞與防駭方法$690$538
- 
                
                   C# 最強入門邁向頂尖高手之路王者歸來 C# 最強入門邁向頂尖高手之路王者歸來$980$774
- 
                
                   Pragmatic TDD:以 DDD 寫出鬆散耦合、文件化和高品質的程式碼 (Pragmatic Test-Driven Development in C# and .NET: Write loosely coupled, documented, and high-quality code with DDD using familiar tools and libraries) Pragmatic TDD:以 DDD 寫出鬆散耦合、文件化和高品質的程式碼 (Pragmatic Test-Driven Development in C# and .NET: Write loosely coupled, documented, and high-quality code with DDD using familiar tools and libraries)$720$562
- 
                
                   從新手到高手:.NET 框架程式開發實作 從新手到高手:.NET 框架程式開發實作$880$695
- 
                
                   輕鬆自學 ASP.NET Core MVC(.NET 8):從建置到部署的 Web 程式經典範例實作 輕鬆自學 ASP.NET Core MVC(.NET 8):從建置到部署的 Web 程式經典範例實作$780$616
- 
                
                   可觀測性工程|達成卓越營運 (Observability Engineering: Achieving Production Excellence) 可觀測性工程|達成卓越營運 (Observability Engineering: Achieving Production Excellence)$680$537
- 
                
                   Staff 工程師之路|獻給個人貢獻者成長與改變的導航指南 (The Staff Engineer's Path) Staff 工程師之路|獻給個人貢獻者成長與改變的導航指南 (The Staff Engineer's Path)$580$458
- 
                
                   CI/CD 安全防護大揭密:DevSecOps 最佳實踐指南 CI/CD 安全防護大揭密:DevSecOps 最佳實踐指南$680$530
- 
                
                   程式設計守則|如何寫出更好的程式碼 (The Rules of Programming: How to Write Better Code) 程式設計守則|如何寫出更好的程式碼 (The Rules of Programming: How to Write Better Code)$620$490
- 
                
                   迎接人形機器人時代:解讀未來語言的機械奇蹟 迎接人形機器人時代:解讀未來語言的機械奇蹟$500$390
- 
                
                   K8S 自學聖經:10大核心模板快速入門【圖解教學】 K8S 自學聖經:10大核心模板快速入門【圖解教學】$790$624
- 
                
                   AI 神助攻!程式設計新境界 – GitHub Copilot 開發 Python 如虎添翼 : 提示工程、問題分解、測試案例、除錯 AI 神助攻!程式設計新境界 – GitHub Copilot 開發 Python 如虎添翼 : 提示工程、問題分解、測試案例、除錯$560$442
- 
                
                   極速 ChatGPT 開發者兵器指南:跨界整合 Prompt Flow、LangChain 與 Semantic Kernel 框架 極速 ChatGPT 開發者兵器指南:跨界整合 Prompt Flow、LangChain 與 Semantic Kernel 框架$680$530
- 
                
                   實戰領域驅動設計:高效軟體開發的正確觀點、應用策略與實作指引 (Implementing Domain-Driven Design) 實戰領域驅動設計:高效軟體開發的正確觀點、應用策略與實作指引 (Implementing Domain-Driven Design)$1,280$998
- 
                
                   Clean Code 錦囊妙計 (Clean Code Cookbook : Recipes to Improve the Design and Quality of Your Code) Clean Code 錦囊妙計 (Clean Code Cookbook : Recipes to Improve the Design and Quality of Your Code)$880$695
- 
                
                   30天挑戰精通 PowerShell【第四版】:Windows、Linux 和 macOS 適用 (Learn PowerShell in a Month of Lunches: Covers Windows, Linux, and macOS, 4/e) 30天挑戰精通 PowerShell【第四版】:Windows、Linux 和 macOS 適用 (Learn PowerShell in a Month of Lunches: Covers Windows, Linux, and macOS, 4/e)$760$593
- 
                
                   領域故事化:協作 x 視覺化 x Agile,輕鬆打造專業水準的 DDD 軟體 (Domain Storytelling: A Collaborative, Visual, and Agile Way to Build Domain-Driven Software) 領域故事化:協作 x 視覺化 x Agile,輕鬆打造專業水準的 DDD 軟體 (Domain Storytelling: A Collaborative, Visual, and Agile Way to Build Domain-Driven Software)$650$507
商品描述
- 『技術債在每個程式倉庫(codebase)中幾乎無所不在。它是一種隱喻,代表著軟體演變過程中留下的小小麻煩(有時並不那麼小),例如捷徑、混亂、設計不相符等問題,這些問題往往是由於軟體無法適應不斷變化的外部因素所造成的。如果不加以控制,這些問題就會導致工作效率急遽下降,而重構(refactoring)正是開發者處理這個問題的主要工具。這是每位開發者都應該掌握的重要技能。』
 ——NimblePros首席架構師 Steve "ardalis" Smith
 
 『這是一本.NET資淺到資深開發者都能受益的書。程式開發沒有人不需要重構,而重構未必需要很多高深的理論才能做,只要你學好本書的精髓,沒有Visual Studio一樣可以重構,只是有工具的幫忙可以發揮加分效果,這是我在審校本書時很深的體悟。』
 ——微軟最有價值專家(Microsoft MVP) 陳傳興(Bruce Chen)
 
 重構:改善.NET與C#應用程式的設計,償還欠下的技術債
 Refactoring with C#
 使用GitHub Copilot與Visual Studio
 
 每個軟體專案剛開始時都是一塊全新的綠地(greenfield)樂園,但技術債(technical debt)往往比預期更早出現,軟體專案很快就會變成一片棕地(brownfield)荒野,徒留滿地遺留程式碼(legacy code)和技術債。在本書中,你將了解技術債的概念與成因,並學習使用Visual Studio的現代化工具,以及C# 12和.NET 8的最新語言功能,以此安全地重構你的C#程式碼。
 
 我們將一步步指引你學會使用xUnit和Moq、Snapper、Scientist .NET等函式庫,使用這些工具,你就能執行更進階的單元測試,安全地進行重構。我們也會詳述SOLID原則,以及新版C#帶來的防禦性程式設計技巧,藉此打造更容易維護的程式碼。我們還會說明如何執行程式碼分析,並撰寫自訂的Roslyn分析器,來檢測和解決程式碼中獨有的問題。
 
 程式設計的性質正在發生變化,為了迎接AI帶來的衝擊,本書「第11章」會專門討論GitHub Copilot Chat這個AI助理,看看它如何協助我們進行重構、測試、撰寫文件和產生程式碼。最後,我們也會討論如何在敏捷團隊和企業組織中,向領導者們溝通技術債的風險與重構的必要性,並獲得組織的支持與尊重。
 
 讀完本書,你將理解重構的本質,了解如何安全、有效、可重複地償還應用程式中的技術債,同時為企業帶來價值。無論你是新手開發者,還是有多年經驗的資深開發者,相信你們都能在本書中找到一些實用的提示和技術。
 
 ★學習目標★
 ・理解技術債的成因、影響及預防方法
 ・探索重構類別、方法和單行程式碼的不同做法
 ・如何使用Moq等函式庫撰寫有效的單元測試
 ・理解SOLID原則,以及如何打造可維護的程式碼
 ・GitHub Copilot Chat如何協助開發者分析、改善和測試程式碼
 ・應用程式碼分析和自訂Roslyn分析工具,確保程式碼保持整潔
 ・在敏捷團隊中正面表達技術債的風險,並採用一致的程式碼標準
 
 【範例程式碼】
 讀者可以從GitHub下載本書的範例程式碼,如果程式碼有更新,作者也會直接更新在存放庫上:https://github.com/PacktPublishing/Refactoring-with-CSharp。
 
 【彩色圖片】
 博碩文化官網也有提供本書使用的螢幕畫面截圖及彩色圖表。
作者簡介
- ✍作者簡介✍
 Matt Eland是AI人工智慧領域的微軟最有價值專家(Microsoft MVP),從2001年開始從事.NET的工作。Matt曾任資深工程師、軟體工程經理及.NET程式設計講師。他目前是俄亥俄州哥倫布市附近Leading EDJE公司的AI專家和資深顧問,他利用C#和相關技術協助公司滿足軟體工程和資料科學方面的需求。Matt在他的社群中演說和寫作,並在攻讀資料分析碩士學位期間,共同組織了Central Ohio .NET Developers Group。Matt的個人網站:MattEland.dev。
 
 ✍審校者簡介✍
 陳傳興(Bruce Chen)由MS-DOS 6.22與Intel 486 DX2-66進入資訊領域,在QBasic寫下第一行Hello World,就愛上了開發的世界,目前任職於遠東金士頓科技擔任資深工程師。現任微軟最有價值專家(Microsoft MVP),喜歡分享技術心得於部落格(https://blog.kkbruce.net),瀏覽量超過七百萬。STUDY4與twMVC社群核心成員。合著出版作品有《ASP.NET MVC 4網站開發美學》、《ASP.NET MVC 5網站開發美學》。合譯出版作品有《Martin Fowler的企業級軟體架構模式》。協助翻譯GitHub上擁有17.2K星星的《ASP.NET Core開發人員指南》,為繁體與簡體中文化的主要貢獻者。
目錄大綱
- 審校序
 推薦序
 貢獻者
 前言
 
 Part 1:在Visual Studio中使用C#進行重構
 第1章:技術債、程式碼異味與重構
 1.1 理解技術債和遺留程式碼
 1.2 識別程式碼異味
 1.3 介紹重構
 1.4 案例研究:雲霄航空公司
 1.5 小結
 1.6 問題
 1.7 延伸閱讀
 
 第2章:重構簡介
 2.1 技術需求
 2.2 重構行李費用計算器
 2.3 在其他編輯器中的重構
 2.4 小結
 2.5 問題
 2.6 延伸閱讀
 
 第3章:重構程式碼流程和迭代
 3.1 技術需求
 3.2 重構登機應用程式
 3.3 控制程式流程
 3.4 執行個體化物件
 3.5 迭代集合
 3.6 重構LINQ陳述式
 3.7 檢查並測試我們重構後的程式碼
 3.8 小結
 3.9 問題
 3.10 延伸閱讀
 
 第4章:在方法層級的重構
 4.1 技術需求
 4.2 重構航班追蹤器
 4.3 重構方法
 4.4 重構建構函式
 4.5 重構參數
 4.6 重構為函式
 4.7 介紹靜態方法和擴充方法
 4.8 檢查並測試我們重構後的程式碼
 4.9 小結
 4.10 問題
 4.11 延伸閱讀
 
 第5章:物件導向重構
 5.1 技術需求
 5.2 重構航班搜尋系統
 5.3 透過重構來組織類別
 5.4 重構與繼承
 5.5 使用抽象控制繼承
 5.6 為更好的封裝進行重構
 5.7 透過介面和多型來改善類別
 5.8 檢查並測試我們重構後的程式碼
 5.9 小結
 5.10 問題
 5.11 延伸閱讀
 
 Part 2:安全地重構
 第6章:單元測試
 6.1 技術需求
 6.2 理解測試和單元測試
 6.3 使用xUnit測試程式碼
 6.4 重構單元測試
 6.5 探索其他測試框架
 6.6 採取測試心態
 6.7 小結
 6.8 問題
 6.9 延伸閱讀
 
 第7章:測試驅動開發(TDD)
 7.1 技術需求
 7.2 什麼是TDD?
 7.3 使用Visual Studio的TDD
 7.4 何時使用TDD?
 7.5 小結
 7.6 問題
 7.7 延伸閱讀
 
 第8章:使用SOLID避免程式碼反模式
 8.1 識別C#程式碼中的反模式
 8.2 撰寫SOLID程式碼
 8.3 考慮其他的架構原則
 8.4 小結
 8.5 問題
 8.6 延伸閱讀
 
 第9章:進階單元測試
 9.1 技術需求
 9.2 使用Shouldly建立易讀的測試
 9.3 使用Bogus產生測試資料
 9.4 使用Moq與NSubstitute模擬依賴關係
 9.5 使用Snapper固定測試
 9.6 使用Scientist .NET進行實驗
 9.7 小結
 9.8 問題
 9.9 延伸閱讀
 
 第10章:防禦性程式設計技巧
 10.1 技術需求
 10.2 介紹雲霄API
 10.3 驗證輸入內容
 10.4 防止null值
 10.5 超越類別
 10.6 進階型別使用
 10.7 小結
 10.8 問題
 10.9 延伸閱讀
 
 Part 3:利用AI和程式碼分析進階重構
 第11章:AI輔助重構:使用GitHub Copilot
 11.1 技術需求
 11.2 介紹GitHub Copilot
 11.3 在Visual Studio中開始使用GitHub Copilot
 11.4 使用GitHub Copilot Chat進行重構
 11.5 使用GitHub Copilot Chat撰寫文件
 11.6 使用GitHub Copilot Chat產生Test Stub
 11.7 理解GitHub Copilot的限制
 11.8 案例研究:雲霄航空公司
 11.9 小結
 11.10 問題
 11.11 延伸閱讀
 
 第12章:Visual Studio中的程式碼分析
 12.1 技術需求
 12.2 在Visual Studio中計算程式碼度量
 12.3 在Visual Studio中進行程式碼分析
 12.4 探索進階的程式碼分析工具
 12.5 案例研究:雲霄航空公司
 12.6 小結
 12.7 問題
 12.8 延伸閱讀
 
 第13章:建立一個Roslyn分析器
 13.1 技術需求
 13.2 理解Roslyn分析器
 13.3 建立一個Roslyn分析器
 13.4 使用RoslynTestKit測試Roslyn分析器
 13.5 將分析器分享為Visual Studio擴充功能
 13.6 小結
 13.7 問題
 13.8 延伸閱讀
 
 第14章:使用Roslyn分析器重構程式碼
 14.1 技術需求
 14.2 案例研究:雲霄航空公司
 14.3 建立一個Roslyn分析器程式碼修正
 14.4 使用RoslynTestKit測試程式碼修正
 14.5 將Roslyn分析器發佈為NuGet套件
 14.6 小結
 14.7 問題
 14.8 延伸閱讀
 
 Part 4:企業中的重構
 第15章:溝通技術債
 15.1 克服重構的障礙
 15.2 溝通技術債
 15.3 優先處理技術債
 15.4 獲得組織的認同
 15.5 案例研究:雲霄航空公司
 15.6 小結
 15.7 問題
 15.8 延伸閱讀
 
 第16章:採用程式碼標準
 16.1 技術需求
 16.2 理解程式碼標準
 16.3 建立程式碼標準
 16.4 在Visual Studio中進行格式化和程式碼清除
 16.5 使用EditorConfig套用程式碼標準
 16.6 小結
 16.7 問題
 16.8 延伸閱讀
 
 第17章:敏捷重構
 17.1 在敏捷環境中的重構
 17.2 成功應用敏捷重構策略
 17.3 完成大規模重構
 17.4 重構出錯時的復原方式
 17.5 部署大規模重構
 17.6 案例研究:雲霄航空公司
 17.7 小結
 17.8 打造更永續的軟體
 17.9 問題
 17.10 延伸閱讀


















 
     
     
     
     
     
     
     
     
     
     
     
    
 
     
     
     
     
     
    
 
     
     
     
     
    
 
    
 
     
     
     
     
    