課程來自於陶文,課程PPT知乎專欄:zhuanlan.zhihu.com/p/34982747算法
因公司資源提供有幸可以視頻學習陶大的課程,作筆記便於複習。編程
讀代碼實際是大腦解釋和模擬執行代碼的過程,所以根據大腦擅長和不擅長的原理來提升代碼的可讀性。設計模式
數據和算法模型應和心智模型對應; 語言是心智模型的外在表現。多線程
「有意義」:和心智模型對應異步
業務概念命名一致(理解產品語言)函數式編程
註釋幫助代碼映射到心智模型函數
註釋應該關注 why 而不是 what/how,或是解釋某種映射關係學習
如:提供代碼的時空複雜度/選擇模型的緣由等線程
不要一口氣讓大腦跟蹤過長的流程。設計
知足某些條件時提前結束,避免大if..else統治整個函數
使用參數進行狀態傳遞(函數式編程)
不使用全局變量修改狀態,而使用參數
相關聯的邏輯才放在一塊兒;
流程之間作分割,不一樣時描述多個流程的進度;
「高內聚低耦合」,知易行難。
有時候邏輯必須合併到一個流程中。 有時候適當的複製粘貼,來將混雜的流程拆分以增長可讀性也是合理的。
信噪比是相對概念,會隨場景而變化。 設計模式:裝飾器 / 策略 / 模板 / 適配器 / 狀態
提升一個目標的信噪比,每每會以下降另外一個目標的信噪比爲代價。