テクノロジー

なぜ、SOLID原則の単一責務の原則(SRP)は理解しにくいのか?

1: nguyen-oi 2026/03/11 09:03

SRPは「変更理由」で見ろってのが鉄則だけど一番ムズい。長時間露光の例えはかなり腑に落ちる内容

2: wrss 2026/03/11 09:37

"SRPは、コードの外の都合が正解の一部になっています。そのため、教科書で定義だけ覚えても、実務で急に迷いやすいのです。SRPは、コードの中に半分、コードの外に半分ある原則だと言ったほうが近い"

3: youko03 2026/03/11 09:50

“SRPが求めているのは小ささではなく、変更のまとまりの見えやすさ”

4: remonoil 2026/03/11 10:00

"その瞬間だけ見れば一つにまとまって見えるコードが、数年分の変更履歴まで含めて見ると、複数の軌跡が重なった危険な交差点に見えることがあります。" 運用経験が設計スキルに効く理由はこれか

5: yojik 2026/03/11 10:10

変更のインパクトは、Actor(利用者や外部システムといったシステムの外の存在) からくる。システムが責務を果たすべき対象はActor。システムの外を意識しなければシステムは作れない

6: kappa99999 2026/03/11 10:14

納得できた。構造化プログラミングからオブジェクト指向へ移行するときに理解が難しい理由そのものかもしれん。

7: snowcrush 2026/03/11 10:17

よい説明。論点が整理されているので分かりやすい

8: mix-in 2026/03/11 10:23

ここまで丁寧に言語化できるのはすごいなぁ。結局未来がわからんからSOLIDの中でも異質でめちゃくちゃ難しい。

9: nemoba 2026/03/11 10:24

というか責務分解こそがOOPの正体なのに、"単一の責務"なんてそんな一言明解じゃないんだよね。

10: toaruR 2026/03/11 10:30

独特の比喩が多いな

11: w1234567 2026/03/11 10:57

責務って訳語が悪いんだけど、役割ややるべきことの種類は一つに絞って分割したほうが扱いやすいよって言ってるだけなんだよな

12: koroharo 2026/03/11 11:22

“SRPは、見た目を綺麗にする原則ではありません。変更要因の混線を減らす原則です。”

13: temtan 2026/03/11 11:32

中身読んでないんだけど、皆さんはよくこんなきれーに「一見出しに四段落、一段落に四~五行」になってる文章を読めるなあと思いました。

14: PrivateIntMain 2026/03/11 11:42

SRPは原則というより、他4つを実現するための前提であり心構えみたいな印象。目指すところは機械部品と同じで、規格さえ合ってれば可換だし、その部品が担う機能以外は規格の範囲に収まるのが望ましいわけだが。

15: ku__ra__ge 2026/03/11 12:25

どの方向から見るのか(今後システムにどのような変更が起きると想定するか)によって、まったく同一のクラスがSPRを満たしているか満たしていないかが変わる

16: yn3n 2026/03/11 12:26

こんな難しいもんは実務には使えなさそう

17: kakei-akihiko 2026/03/11 12:57

細かく分けすぎる失敗に出会ったことない。

18: otoan52 2026/03/11 14:06

『物語の良いキャラクターの作り方』の逆なんだよな。多面的で複雑な人格を感じさせ、物語の中で複数の役割を果たし、予測を裏切る存在が物語を書く上では良いキャラなのだけど、プログラムでそれをやるとヤバい。

19: caynan 2026/03/11 16:48

すっきりと決められるものではないというのはそうなんだけどUncle Bobがあえて簡単に言い切っているのをわざわざ難しくしちゃってる気がする https://blog.cleancoder.com/uncle-bob/2014/05/08/SingleReponsibilityPrinciple.html

20: hkdn 2026/03/12 00:04

わたしの理解だとOOPの不完全さを補完するロジック。