1. 程式人生 > >程式碼整潔之道(Clean Code)- 讀書筆記

程式碼整潔之道(Clean Code)- 讀書筆記

一、關於Bob大叔的Clean Code

  《程式碼整潔之道》主要講述了一系列行之有效的整潔程式碼操作實踐。軟體質量,不但依賴於架構及專案管理,而且與程式碼質量緊密相關。這一點,無論是敏捷開發流派還是傳統開發流派,都不得不承認。這本書的閱讀物件為一切有志於改善程式碼質量的程式設計師,書中介紹的規則均來自作者Bob大叔多年的實踐經驗,涵蓋從命名到重構的多個程式設計方面,雖為一“家”之言,然誠有可資借鑑的價值。

  最讓我感受深刻的是封面圖片和副標題,首先是封面圖片:

  

  上面這張圖是M104:草帽星系,其核心是一個質量超大的黑洞,有100萬個太陽那麼重,環繞著M104的光環就像一頂墨西哥草帽,彷彿經歷了大爆炸之後碎片四濺的產物。聯絡到我們所經歷過的沒由整潔程式碼風格各異不可維護的軟體專案,其實當你接手時之前的程式碼都是一個個的黑洞,存在著某天會定時爆發的風險,而當它真正爆發時,接手這個專案的所有人都會因此遭殃。

  其次,再說說副標題:“細節之中自有天地,整潔成就卓越程式碼”。本書講述的就是一個又一個的細節之處,不好的處理和好的處理都一一道來,讓我們形成整潔的規範。

Robert C. Martin,(Bob大叔)自1970年進入軟體行業,從1990年起成為國際軟體諮詢師。是軟體工程領域的大師級人物,是《敏捷軟體開發:原則、模式與實踐》、《敏捷軟體開發:原則、模式與實踐(C#版)》(郵電)、《極限程式設計實踐》(郵電)等國內引進的暢銷書的作者,其中第一本原著榮獲美國《軟體開發》第13屆震撼(Jolt)大獎,Martin的敏捷系列書是軟體工程界的權威書籍。

二、Clean Code精華筆記

文不如表,表不如圖,奉上一張思維導圖:

三、.NET平臺的程式碼規範外掛使用

3.1 StyleCop.Analyzers介紹

  StyleCop.Analyzers是一個開源的程式碼風格規則的審查專案,其github地址為:https://github.com/DotNetAnalyzers/StyleCopAnalyzers,用於.NET編譯器平臺的StyleCop分析器,該儲存庫包含使用.NET編譯器平臺的StyleCop規則的實現。 在可能的情況下,還會提供程式碼修復以簡化糾正違規的過程。

  它具有以下幾個好處:

  • 可以支援 C# 6
  • 使用 Roslyn 解析器,減少了自定義解析器的效能消耗
  • 當你寫程式碼的時候解析器就會執行
    ,當你編譯的時候也會執行(不需要再設定 msbuild 任務或者安裝任何 vs 外掛)

  最近我們團隊就採用了StyleCop.Analyzers作為程式碼審查外掛,並將重要的規則設定為了Error級別,即如果你不改正編譯不會通過。其實,Resharper也是一款不錯的工具,但是因為其收費和重量級的特性,被我放棄了。

3.2 StyleCop.Analyzers安裝

  為需要進行程式碼風格審查的.NET專案Nuget上直接搜尋:StyleCop.Analyzers即可,目前最新版本為1.0.2.

  

3.3 設定規則列表

  這裡我分享一個我們團隊篩選過後的Ruleset檔案,它將作為StyleCop.Analyzers的分析基準,我一般將其放在解決方案的Solution Items中,即解決方案層級中(和Dockerfile類似放在專案層級中)

  

3.4 編輯具體專案的專案檔案(csproj)

  為每個需要進行程式碼風格/規則審查的專案指定需要基準的Ruleset檔案:(通過編輯專案檔案)

  

3.5 測試程式碼風格檢查

  寫了一些程式碼之後,編譯,檢視錯誤資訊視窗:

  

  可以看到未滿足程式碼規則的點都被檢查出來,只有改正之後才可以編譯通過。

  最後,再次回顧一下《程式碼整潔之道》的副標題:

“細節之中自有天地,整潔成就卓越程式碼”  

參考資料

  Robert C.Martin著,《程式碼整潔之道》

  

作者:周旭龍

本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連結。