About Uncle Bob

通称, アンクルボブ, ボブおじさん.


📐SOLID

ボブおじさんが提唱したソフトウェア開発の原則.


📐単一責任原則(SRP)

Single-responsibility principle.

  • 1つのクラスは1つだけの責任を持たなければならない。すなわち、ソフトウェアの仕様の一部分を変更したときには、それにより影響を受ける仕様は、そのクラスの仕様でなければならない。(Wikipedia)
  • モジュールを変更する理由はたったひとつだけであるべきである(Clean Archtecture)
    • モジュールはたったひとつのアクターに対して責務を負うべきである。
  • モジュールを変更する原因となる源に注目する原則.
    • 源(人々=役割、アクター).
    • システムに同じことを要求するグループ、個人.
  • #デブがキモイ

📐オープンクローズドの原則(OCP)

開放/閉鎖原則, Open-Closed Principle(OCP). 拡張に対しては開いており、修正に対しては閉じているべきである.

ref. 開放/閉鎖原則 - Wikipedia

ソフトウェア要素(クラス、モジュール、関数など)は、拡張に対しては開いており、修正に対しては閉じているべきである。

software entities (classes, modules, functions, etc.) should be open for extension, but closed for modification.

ようは言語において📝ポリモーフィズムとして機能実装されているもの. ポリモーフィズムの原則.

📐リスコフの置換原則(LSP)

Liskov substitution principle.

  • サブタイプとベースタイプは置換可能でなければならない.

📐インターフェイス分離原則(ISP)

Interface segregation principle.

  • 一緒に使用されるものはまとめる。別々に使用されるものは分ける。必要ないものに依存しない(Functional Desing)
    • 静的型づけ言語では変更による再コンパイル/ビルドという問題がある.
    • 動的型づけ言語は依存関係に配慮することは「理解しやすい」.

📐依存性逆転の原則(DIP)

Dependency inversion principle.

  • 抽象が具体に依存してはならない.
  • ソースコードの依存関係を可能なかぎり抽象に向ける.

Books

References

Fitnesse

https://github.com/unclebob/fitnesse