首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C++ 程序員閱讀筆記:經典名著中的金句與感悟(一)

     編輯:關於C語言

前言:為什麼要寫讀書筆記?

頻繁搬家導致實體筆記遺失,轉而以博客記錄。發現技術書分兩類:

  • 應用類:通俗易懂,現學現用,用完即棄。
  • 內功類:初讀如天書,二讀三讀漸入佳境,隨閱歷增長頓悟,如《設計模式》《Effective C++》《重構》等。這類書需耐心精讀、反覆咀嚼。

養成習慣:摘錄「金句良言」、未懂之處、關鍵洞見、精辟小例,隨成長標準動態調整。

精選金句與解讀

1. 重構的本質

「在不改變代碼外在行為的前提下,對代碼做出修改以改進程序的內部結構。本質上說:重構就是在代碼寫好之後改進它的設計。」

—— 出自《重構》Martin Fowler。強調行為保持與設計改進雙重目標,重構非重寫,而是微小步驟累積。

2. 代碼可讀性是優秀程序員的分水嶺

「任何一個傻瓜都能寫出計算機可以理解的代碼,唯有寫出人類容易理解的代碼,才是優秀的程序員。」

—— 出自《重構》/《代碼整潔之道》。代碼給人讀,順便給機器執行;命名、結構、註釋服務於認知負荷降低。

3. 面向對象設計最難處:分解

「面向對象設計最困難的部分是將系統分解成對象集合,因為要考慮許多因素:封裝、粒度、依賴關系、靈活性、性能、演化、復用。」

—— 出自《設計模式》GoF。無銀彈,唯有權衡;單一職責、開閉原則、依賴倒置是指導燈塔。

4. 抽象類的核心使命

「抽象類主要目的是為它的子類定義公共接口,一個抽象類將它的部分或全部操作的實現延遲到子類中。」

介面隔離、模板方法模式的基石;介面與實現分離,支撐多態替換。

5. 類繼承:復用的雙刃劍

「類繼承是一個通過復用父類功能而擴展應用功能的基本機制。它允許根據舊對象快速定義新的對象。」

優點:快速復用;缺點:破壞封裝、強耦合、父類變更波及子類。優先考慮組合/委托。

6. 委托的適用邊界

「只有當委托使設計比較簡單而不是更加復雜時,它才是好的選擇。」

委托轉發調用,增加間接層;若導致「類爆炸」或調用鏈過長,反而損害可維護性。

7. 復用的關鍵:預見變化

「獲得最大限度復用的關鍵在於對新需求和已有需求發生變化時的預見性,要求你的系統設計要能夠相應的改進。」

設計模式本質是「變化點封裝」;識別「什麼會變」,封裝之。

8. 不變化的設計終將重寫

「一個不考慮系統變化的設計在將來就要可能需要重新設計。」

軟體實體生命週期中唯一常數是變化;架構須預留擴展點。

9. 策略模式精髓:通用介面

「Strategy 模式應用的關鍵點在於為 Strategy 和它的環境設計足夠通用的接口。」

介面設計決定模式成敗;過窄無法擴展,過寬導致實現類膨脹。

讀書方法論小結

  1. 不求快:內功類書必讀 3 遍以上(掃描→精讀→頓悟)。
  2. 動手寫:把書中例子敲一遍,嘗試重構、改壞、加測試。
  3. 建立索引:用筆記軟體/博客建立個人知識圖譜,標註出處、頁碼、當下感悟。
  4. 定期回顧:每季度重讀高亮段落,驚喜發現新理解。

下一期將分享《Effective C++》條款精讀筆記,敬請期待。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved