從另一個角度告訴你單元測試的意義(5)
發表于:2018-02-09來源:袁慎建作者:袁慎建點擊數:
標簽:
提出的 SOLID 原則: SRP(Single Responsibility Principle),單一職責原則 OCP(Open Closed Principle),開放封閉原則 LSP(Liskov Substitution Principle),里氏替換原則 ISP(Interfac
提出的
SOLID
原則:
-
SRP(Single Responsibility Principle),單一職責原則
-
OCP(Open Closed Principle),開放封閉原則
-
LSP(Liskov Substitution Principle),里氏替換原則
-
ISP(Interface Segregation Principle),接口分離原則
-
DIP(Dependency Inversion Principle),依賴倒置原則
同時我們應該盡量避免編寫STUPID
代碼:
-
Sington,單例
-
Tight Coupling,緊耦合
-
Untestability,不可測
-
Premature Optimization,過早優化
-
Indescriptive Naming,胡亂命名
-
Duplication,重復代碼
在做設計和編寫代碼的時候多思考我們是不是在踐行GRASP
原則:
-
Controller,控制器
-
Creator,創造者
-
High cohesion,高內聚
-
Low coupling,低耦合
-
Polymorphism,多態
-
Indirection,中介
-
Information expert,信息專家
-
Protected Variations,受保護變化
-
Pure fabrication,純虛構
以上這些原則需要在編碼中不斷地刻意練習,除了閱讀針對性的書籍,在團隊中積極組織 Code Review、推動 Pair 來互相學習和改進是一個更有效的方式。
良好的代碼設計讓我們的單元測試更加容易編寫,而要編寫有效的單元測試,我們應該對以下幾個維度的測試壞味道保持敏銳的嗅覺: