原创 設計模式之美 - 29 | 理論三:什麼是代碼的可測試性?如何寫出可測試性好的代碼?

這系列相關博客,參考 設計模式之美 設計模式之美 - 29 | 理論三:什麼是代碼的可測試性?如何寫出可測試性好的代碼?編寫可測試代碼案例實戰其他常見的 Anti-Patterns重點回顧課堂討論 在上一節課中,我們對單元測試做了

原创 設計模式之美 - 24 | 實戰一(下):如何實現一個遵從設計原則的積分兌換系統?

這系列相關博客,參考 設計模式之美 設計模式之美 - 24 | 實戰一(下):如何實現一個遵從設計原則的積分兌換系統?業務開發包括哪些工作?爲什麼要分 MVC 三層開發?BO、VO、Entity 存在的意義是什麼?總結用到的設計原

原创 設計模式之美 - 28 | 理論二:爲了保證重構不出錯,有哪些非常能落地的技術手段?

這系列相關博客,參考 設計模式之美 設計模式之美 - 28 | 理論二:爲了保證重構不出錯,有哪些非常能落地的技術手段?什麼是單元測試?爲什麼要寫單元測試?如何編寫單元測試?單元測試爲何難落地執行?重點回顧課堂討論 上一節課中,我

原创 設計模式之美 - 17 | 理論三:裏式替換(LSP)跟多態有何區別?哪些代碼違背了LSP?

這系列相關博客,參考 設計模式之美 設計模式之美 - 17 | 理論三:裏式替換(LSP)跟多態有何區別?哪些代碼違背了LSP?如何理解“裏式替換原則”?哪些代碼明顯違背了 LSP?重點回顧課堂討論 在上兩節課中,我們學習了 SO

原创 設計模式之美 - 32 | 理論五:讓你最快速地改善代碼質量的20條編程規範(中)

這系列相關博客,參考 設計模式之美 設計模式之美 - 32 | 理論五:讓你最快速地改善代碼質量的20條編程規範(中)1. 類、函數多大才合適?2. 一行代碼多長最合適?3. 善用空行分割單元塊4. 四格縮進還是兩格縮進?5. 大

原创 設計模式之美 - 30 | 理論四:如何通過封裝、抽象、模塊化、中間層等解耦代碼?

這系列相關博客,參考 設計模式之美 設計模式之美 - 30 | 理論四:如何通過封裝、抽象、模塊化、中間層等解耦代碼?“解耦”爲何如此重要?代碼是否需要“解耦”?如何給代碼“解耦”?重點回顧課堂討論 前面我們講到,重構可以分爲大規

原创 設計模式之美 - 31 | 理論五:讓你最快速地改善代碼質量的20條編程規範(上)

這系列相關博客,參考 設計模式之美 設計模式之美 - 31 | 理論五:讓你最快速地改善代碼質量的20條編程規範(上)命名註釋重點總結課堂討論 前面我們講了很多設計原則,後面還會講到很多設計模式,利用好它們可以有效地改善代碼質量。

原创 設計模式之美 - 34 | 實戰一(上):通過一段ID生成器代碼,學習如何發現代碼質量問題

這系列相關博客,參考 設計模式之美 設計模式之美 - 34 | 實戰一(上):通過一段ID生成器代碼,學習如何發現代碼質量問題ID 生成器需求背景介紹一份“能用”的代碼實現如何發現代碼質量問題?重點回顧課堂討論 在前面幾節課中,我

原创 設計模式之美 - 20 | 理論六:爲何說KISS、YAGNI原則看似簡單,卻經常被用錯?

這系列相關博客,參考 設計模式之美 設計模式之美 - 20 | 理論六:爲何說KISS、YAGNI原則看似簡單,卻經常被用錯?如何理解“KISS 原則”?代碼行數越少就越“簡單”嗎?代碼邏輯複雜就違背 KISS 原則嗎?如何寫出滿

原创 設計模式之美 - 27 | 理論一:什麼情況下要重構?到底重構什麼?又該如何重構?

這系列相關博客,參考 設計模式之美 設計模式之美 - 27 | 理論一:什麼情況下要重構?到底重構什麼?又該如何重構?重構的目的:爲什麼要重構(why)?重構的對象:到底重構什麼(what)?重構的時機:什麼時候重構(when)?

原创 設計模式之美 - 23 | 實戰一(上):針對業務系統的開發,如何做需求分析和設計?

這系列相關博客,參考 設計模式之美 設計模式之美 - 23 | 實戰一(上):針對業務系統的開發,如何做需求分析和設計?需求分析系統設計重點回顧課堂討論 對於一個工程師來說,如果要追求長遠發展,你就不能一直只把自己放在執行者的角色

原创 設計模式之美 - 10 | 理論七:爲何說要多用組合少用繼承?如何決定該用組合還是繼承?

這系列相關博客,參考 設計模式之美 設計模式之美 - 10 | 理論七:爲何說要多用組合少用繼承?如何決定該用組合還是繼承?爲什麼不推薦使用繼承?組合相比繼承有哪些優勢?如何判斷該用組合還是繼承?重點回顧課堂討論 在面向對象編程中

原创 設計模式之美 - 11 | 實戰一(上):業務開發常用的基於貧血模型的MVC架構違背OOP嗎?

這系列相關博客,參考 設計模式之美 設計模式之美 - 11 | 實戰一(上):業務開發常用的基於貧血模型的MVC架構違背OOP嗎?什麼是基於貧血模型的傳統開發模式?什麼是基於充血模型的 DDD 開發模式?爲什麼基於貧血模型的傳統開

原创 設計模式之美 - 13 | 實戰二(上):如何對接口鑑權這樣一個功能開發做面向對象分析?

這系列相關博客,參考 設計模式之美 設計模式之美 - 13 | 實戰二(上):如何對接口鑑權這樣一個功能開發做面向對象分析?案例介紹和難點剖析對案例進行需求分析重點回顧課堂討論 面向對象分析(OOA)、面向對象設計(OOD)、面向

原创 設計模式之美 - 16 | 理論二:如何做到“對擴展開放、修改關閉”?擴展和修改各指什麼?

這系列相關博客,參考 設計模式之美 設計模式之美 - 16 | 理論二:如何做到“對擴展開放、修改關閉”?擴展和修改各指什麼?如何理解“對擴展開放、修改關閉”?修改代碼就意味着違背開閉原則嗎?如何做到“對擴展開放、修改關閉”?如何