[Day 29] Functional Programming 還有沒有 SOLID 原則?

有的工程師在工作時,有聽過物件導向的 SOLID 原則。

今天我們來談談,Functional Programming 還要不要遵守 SOLID 原則?

什麼是 SOLID 原則

如上面所說,SOLID 原則是物件導向開發的一系列原則,分別是:

  • 單一功能
  • 開閉原則
  • 里氏替換
  • 介面隔離
  • 依賴反轉

我們來看看這些原則在 Functional Programming 的世界裡面怎麼出現

單一功能

物件導向的世界裡面,我們希望一個系統,比方說類別,最好只有一個改變的理由。也就是說,要是有某個功能要調整,我們總是知道要改哪個系統,而且不會影響其他功能。

Functional Programming 的世界裡面,我們也要這麼做:每個函式的功能只有一個,修改單一函式不會把其他功能改壞。

開閉原則

透過函式的合成,我們可以以替換函式的方式調整功能,讓系統對擴充開放,但是對修改封閉。

里氏替換

里氏替換是針對類別繼承的規則。這裡我們沒有繼承,所以不考慮里氏替換。

介面隔離

這裡我們沒有介面,函式本身就是我們的介面。

依賴反轉

透過將函式以參數傳入的方式,我們可以達成另一種方式的依賴反轉:依賴參數函式而不依賴內部實作。