前言 眾所周知記憶體緩存(MemoryCache)數據是從記憶體中獲取,性能表現上是最優的,但是記憶體緩存有一個缺點就是不支持分散式,數據在各個部署節點上各存一份,每份緩存的過期時間不一致,會導致幻讀等各種問題,所以我們實現分散式緩存通常會用上Redis 但如果在高併發的情況下讀取Redis的緩存,會進行 ...
1. 基本信息
C#代碼整潔之道:代碼重構與性能提升 ,英文名為Clean Code in C#。
作者:[英] 詹森·奧爾斯(Jason Alls) 著,劉夏 譯
機械工業出版社,2022年4月出版。
1.1. 讀薄率
書籍總字數489000字,筆記總字數8927字。
讀薄率 8927÷489000≈1.83%
1.2. 讀厚方向
1.2.1. 函數編程
-
Functional C#
-
Functional Programming in C#
-
JavaScript: Functional Programming for JavaScript Developers
-
Learning Java Functional Programming
1.2.2. 設計模式
-
Hands-On Design Patterns with Java
-
Spring 5 Design Patterns
1.2.3. TDD、BDD
- 測試驅動開發 [美]Kent Beck 著
和原文的推薦書籍不一樣,讀厚方向只是我感興趣的,原文每個章節都有推薦書籍,更多、更詳細。
1.3. 筆記--章節對應關係
筆記 | 章節 |
---|---|
讀C#代碼整潔之道筆記01 | 第01章 C#的編碼標準和原則 |
讀C#代碼整潔之道筆記02 | 第03章 類、對象和數據結構 |
第04章 編寫整潔的函數 | |
讀C#代碼整潔之道筆記03 | 第11章 處理切麵關註點 |
第05章 異常處理 | |
第08章 線程與併發 | |
讀C#代碼整潔之道筆記04 | 第13章 重構C#代碼——識別代碼壞味道 |
讀C#代碼整潔之道筆記05 | 第12章 使用工具改善代碼質量 |
第06章 單元測試 | |
讀C#代碼整潔之道筆記06 | 第09章 API的設計與開發 |
第10章 使用API密鑰和Azure Key Vault保護API | |
讀C#代碼整潔之道筆記07 | 第02章 代碼評審——過程及其重要性 |
第14章 重構C#代碼——實現設計模式 | |
第07章 端到端系統測試 |
2. 亮點
2.1. 4~10行方法
方法不宜超過4行,不應超過10行。4行方法,一目瞭然,強制倒逼自己思考這個方法是否承擔了過多的責任,能否選擇更合適的模式實現。
2.2. 參數不多於2個
-
列表中有很多out參數,則重構方法返回元組或對象
-
對於方法的參數,請使用參數對象替換長的參數列表
-
柯里化(英語:Currying),又譯為卡瑞化或加里化,是把接受多個參數的函數變換成接受一個單一參數(最初函數的第一個參數)的函數,並且返回接受餘下的參數而且返回結果的新函數的技術
2.3. 確保所有對象的繼承深度不大於1
-
扁平化
-
不會創建出非常深的類層次
- 一個對象的多個狀態和方法可能來自層次結構中的不同級別,導致代碼更難理解
2.4. 圈複雜度降低到10以內
-
if/switch等條件語句的處理
-
迴圈處理
- 採用Lamdba
以上的量化指標,簡單明瞭,在編碼實踐中,如果能夠貫徹執行,相信對於提升編碼水平一定是大有裨益。
3. 感想
3.1. 語言無關性
儘管這本書是寫C#的,除了一些語法特性外,大部分建議都是語言無關的。
3.2. 筆記的益處
倒逼自己一本書至少要過3遍。1遍通讀+勾畫、2遍導圖+筆記、3遍去粗取精+修訂完善,如果算上這篇的總結和感想,那就是4遍了。
這使得自己查漏補缺,加深了認識和記憶。
3.3. 要不要讀原文
有時間、有精力的情況下,當然是要去讀原文咯。
畢竟各人知識背景不一樣,我覺得重要的地方,你不一定覺得,相反, 我覺得不重要的,也許你覺得就是亮點。
更何況,原文有圖有代碼示例,更能加深印象和認識。