1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

非SOLID特性

Posted at

はじめに

SOLIDの逆をChatGPTに考えてもらった

SOLID
https://ja.wikipedia.org/wiki/SOLID

単一責任の原則 (Single Responsibility Principle) の逆

あるクラスやモジュールが複数の責任を持ち、複数の異なる目的や機能を担当するような設計になっている場合、単一責任の原則に反しています。

オープン/クローズドの原則 (Open/Closed Principle) の逆

システムの変更や拡張に対して閉じておらず、変更が必要な場合に既存のコードを変更する必要がある設計になっている場合、オープン/クローズドの原則に反しています。

リスコフの置換原則 (Liskov Substitution Principle) の逆

サブクラスが親クラスの代わりに正しく動作しない、あるいはサブクラスで追加された振る舞いが親クラスの予想外の動作を引き起こす場合、リスコフの置換原則に反しています。

インターフェース分離の原則 (Interface Segregation Principle) の逆

インターフェースが大きくて太い、あるいはクライアントが不必要なメソッドやプロパティに依存している場合、インターフェース分離の原則に反しています。

依存性逆転の原則 (Dependency Inversion Principle) の逆

高レベルのモジュールが低レベルのモジュールに直接依存し、具象クラスに依存している場合、依存性逆転の原則に反しています。

感想

まとめると、機能と責任があらゆるところに散らばっていて、拡張や変更や分離が難しく、コードからは予想外のふるまいをして、無駄が多くて中止するべき箇所が不明で、些細な変更でも影響範囲が不明なためすべてを再ビルドと再テストを行う必要がある。
頭の中がごちゃごちゃするね。くそコードとはこういうことさ。

筆者はリスコフの置換原則の逆はあんまり実感わかない。そもそもサブクラスをあまり使わない方針にしているから。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?