Clean Code 學派的風格實踐:重構遺留 Codebase,突破 C# 效能瓶頸 (Clean Code in C#: Refactor your legacy C# code base and improve application performance by applying best practices)
內容描述
Clean Code學派的風格實踐:重構遺留Codebase,突破C#效能瓶頸
Clean Code in C#
傳統上,C#與Windows桌面應用程式和遊戲的開發息息相關,如今C#被用於各種領域(如Web和雲端App),在行動裝置開發中亦越來越流行。雖然C#具有廣泛的程式功能,不良程式碼仍會讓專業人員面臨效率、可擴充性和可維護性等問題。本書將協助你識別這些問題,並編寫最佳實踐來解決它們。
本書首先比較好程式碼和壞程式碼,並描述程式碼撰寫標準、原理和方法的重要性。然後,你將掌握程式碼審查及其在改善程式碼中的作用,同時確保你遵守業界所認可的程式碼撰寫標準。本書將探索單元測試、深入研究TDD,並處理橫切關注點。你將了解C#程式設計中有關物件、資料結構、例外處理及其他方面的良好程式設計實作。在學習API設計並研究用於提升程式碼品質的工具之後,我們將一起看看壞程式碼的範例,並說明應該避免哪些程式碼撰寫方式。
讀完這本書,你將擁有所需的開發技能、應用業界認可的程式碼撰寫技巧,並編寫整潔、可讀、可擴展和可維護的C#程式碼!
在這本書中,你將學到:
・編寫與其它系統乾淨整合的程式碼,保持明確定義的軟體邊界
・使用C#控制台應用程式範例,實作「失敗-通過-重構」方法
・借助軟體設計模式來處理橫切關注點
・編寫有意義的自訂C#例外
・識別需要重構的劣質C#程式碼
・使用API金鑰保護API,並使用Azure Key Vault保護資料
・使用分析和重構工具來提升程式碼效能
讀者可以到博碩文化官網輸入書號或書名,下載「練習題參考解答」。
【下載範例程式檔案】
本書的程式碼是由GitHub託管,可點選下面圖案前往下載:
【下載本書的彩色圖片】
提供您一個包含本書使用的彩色圖表的PDF檔案,可以在此下載:
目錄大綱
前言
Chapter 1 C#中的程式碼撰寫標準和原則
技術要求
好程式碼與壞程式碼
對程式碼撰寫標準、原則、方法的需求
小結
練習題
延伸閱讀
Chapter 2 程式碼審查:過程和重要性
程式碼審查過程
準備程式碼以供審查
主導程式碼審查
知道要審查什麼
知道何時發送程式碼以供審查
提供及回應審查回饋
小結
練習題
延伸閱讀
Chapter 3 類別、物件和資料結構
技術要求
組織類別
一個類別應該僅具單一職責
註解以生成文件
內聚和耦合
為變更做設計
Demeter定律
不可變的物件和資料結構
物件應該隱藏資料並公開方法
資料結構應該公開資料而且沒有方法
小結
練習題
延伸閱讀
Chapter 4 編寫整潔的函數
了解函數式程式設計
保持方法的輕巧
避免重複
避免多個參數
小結
練習題
延伸閱讀
Chapter 5 例外處理
已檢查和未檢查的例外
避免NullPointerException
業務規則例外
例外應提供有意義的資訊
建立你的自訂例外
小結
練習題
延伸閱讀
Chapter 6 單元測試
技術要求
了解進行良好測試的原因
了解測試工具
TDD方法論實務:失敗、通過和重構
刪除冗餘測試、註解和無效程式碼
小結
練習題
延伸閱讀
Chapter 7 端點到端點系統測試
E2E測試
工廠
依賴注入
模組化
小結
練習題
延伸閱讀
Chapter 8 執行緒與同步
了解執行緒生命週期
新增執行緒參數
使用執行緒池
使用mutex及同步執行緒
使用semaphore處理平行執行緒
限制執行緒池中的處理器和執行緒數量
預防死結
預防競爭條件
了解靜態建構函式和方法
可變性、不可變和執行緒安全性
同步方法的依賴性
使用Interlocked類別
一般性建議
小結
練習題
延伸閱讀
Chapter 9 設計及開發API
技術要求
API是什麼?
API proxy
API設計準則
使用RAML進行API設計
小結
練習題
延伸閱讀
Chapter 10 使用API金鑰和Azure Key Vault保護API
技術要求
動手做API專案:股息日曆
存取Morningstar API
在Azure中建立股息日曆ASP.NET Core Web應用程式
使用API 金鑰保護我們的股息日曆API
測試我們API金鑰的安全性
新增股息日曆程式碼
限制我們的API
小結
練習題
延伸閱讀
Chapter 11 處理橫切關注點
技術要求
裝飾器模式
代理模式
使用PostSharp的AOP
專案:橫切關注點的可重用函式庫
小結
練習題
延伸閱讀
Chapter 12 使用工具以提升程式碼品質
技術要求
定義高品質的程式碼
執行程式碼清理及計算程式碼指標
執行程式碼分析
使用快速操作
使用JetBrains dotTrace分析器
使用JetBrains ReSharper
使用Telerik JustDecompile
小結
練習題
延伸閱讀
Chapter 13 重構C#程式碼:識別程式碼臭味
技術要求
應用程式等級的程式碼臭味
類別等級的程式碼臭味
方法等級的臭味
小結
練習題
延伸閱讀
Chapter 14 重構C#程式碼:實作設計模式
技術要求
實作建立式設計模式
實作結構式設計模式
行為式設計模式的概觀
最後想法
小結
練習題
延伸閱讀
作者介紹
Jason Alls在使用Microsoft技術寫程式這方面有超過21年的經驗。他的職業生涯始於一家澳大利亞公司,從開發「客服中心管理報告軟體」開始,這個軟體被全球客戶使用,包括電信業者、銀行、航空公司和警察單位。然後,他繼續開發「GIS市場應用程式」,並在銀行產業從事Oracle與SQL Server之間的資料移轉工作。自2005年起,他獲得了MCAD in C#的微軟專業認證,並參與了各種桌面、Web和行動裝置的應用程式開發。
Jason目前任職的企業被公認為是教育軟體領域的全球領導者,他開發並且支援以ASP.NET、Angular和C#所編寫的「閱讀障礙測驗和評估軟體」。