什麼是SOLID
簡單來說就是在物件導向設計上為了讓軟體維護、開發變得更容易的五個準則Principle的開頭縮寫
為什麼要SOLID
Agile敏捷開發的主要重點為"改變"
在書中提到,歡迎客戶端改變需求,第一次聽到覺得瘋了,但這也就是Agile的優勢
所以在開發期間會不斷地改變需求,也意味著你的程式碼不斷的改變而可能產生出Bug
SOLID目的也就是讓你程式碼 低耦合 高內聚 降低程式碼壞味道
透過分離與clean code來提高可讀性會讓你的程式碼等同於設計文件
所以在修改或新增過程中降低產生Bug的機率,也可以較快的找到與解決出問題的地方,可以有效的減少技術債
SOLID很複雜?
剛開始學的時候覺得很不習慣,因為跟直覺寫Code的方式不一樣
不過當瞭解背後用意的話,寫起來會比較有信心感
尤其當技術債逐漸減少時,會不怕需求變更
我認為程式碼有一定規模的話體驗會滿深的((義大利麵....
總結
SOLID算是寫軟體需要學會的內功,只要是物件導向語言都可以使用,CP值非常高
學會之後好處,像是容易擴充、即使修改也不會連動、很好寫測試…等等,目前學到的design pattern 幾乎都是建立在SOLID上面,只是因應狀況不同而改變,一開始難免有陣痛期與掙扎,但這些都比不上即使只進行簡單修改卻要消耗巨大人力的無力感
所以如果團隊開發是導入Agile,那你該問問自己,是否自己的程式碼是否也符合SOLID呢?