SOLID is not solid
https://solid-is-not-solid.com/
有名な設計原則であるUncle BobのSOLIDに対する批判
https://gist.github.com/matarillo/800c7f827602173eba6753f7e4039186 に元となったブログの日本語訳がある
S
単一責任について話すのをやめて、凝集性の話を始めよう。
O
オープン/クローズドの原則は完全に無視すること。目の前の問題を解決するためのコードを書くこと。
L
これは設計の指針ではないので、無視して、サブタイプについて話すのをやめ、抱えている問題を解決するソフトウェアを構築することに集中するべきだ。
I
インターフェースを分離することは、結合度を下げ、凝集度を高めるための技術だが、極端に行うと凝集性を下げてしまうこともある。常にそうするべきではない。システムの凝集性と結合性のバランスを取ることに集中すべきだ。
D
必要であれば依存関係を注入し、なぜそうするのかについて正直であること。そうでなければ、必要のない柔軟性を追加しないこと。