About Uncle Bob
通称, アンクルボブ, ボブおじさん.
- 引退して暇なのか, 最近は愉快なYoutuber?
- GitHubを覗くと完全にもう🔖Clojureの人になってた. 素晴らしい.
- 私の中では👴🏼ケント・ベックさんと双璧をなして憧れている.
📐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
- 📚関数型デザイン 原則、パターン、実践 - Robert.C.Martin(2024)
- Clean Code(2017)
- Clean Coder(2018)
- Clean Archtecture(2018)
- Clean Craftmanship
References
- https://twitter.com/unclebobmartin
- Clean Coders - YouTube
- https://github.com/unclebob
- プロのプログラマとは? | プログラマが知るべき97のこと
Fitnesse
https://github.com/unclebob/fitnesse
- 受け入れテスト用フレームワーク「Fitnesse」導入手順のまとめ | Futurismo
- C/C++のAPIレベルのテストを直叩きできるFitNesse用フレームワーク ‘CSlim’ | Futurismo
Related
- refs.
- tags.