0
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?

コードの可読性は何によって決まるのか?

Last updated at Posted at 2025-05-31

🧩 導入:オブジェクト指向が読みにくいとされる背景

オブジェクト指向(OOP)は、大規模開発やドメインモデリングに適している一方で、可読性が低くなると感じられる場面も多くあります
その主な理由には以下が挙げられます:

  • 処理の流れが複数のクラスやメソッドに分散し、追いにくくなる(間接参照が多い)
  • 設計原則や再利用性を重視するあまり、抽象クラスやインターフェースが乱立し、全体構造が見えにくくなる
  • 特にJavaやC++では、ボイラープレートコード(定型コード)が大量に発生し、意味のあるロジックが埋もれてしまう

こうした理由から、「オブジェクト指向は可読性が低い」と主張されることがありますが、それは言語の問題というより、設計や表現の仕方の問題でもあります。

1. オブジェクト指向言語は本当に可読性が低いのか?

● 可読性が低く感じられる理由:

  • 処理が分散して追いにくい(クラス、メソッド、インターフェースの多用)
  • 抽象化過剰(小さなクラスやインターフェースが乱立)
  • ボイラープレートコードが多い(特にJavaなど)

● 反論(OOPの可読性メリット):

  • 責任分離により局所的な理解はしやすい
  • ドメインモデルに沿った構造で現実世界の概念と対応
  • 再利用性・保守性に優れ、長期的には読みやすく保てる

2. 関数型言語は読みやすいのか?

● 状態を排除した純粋性により、理論上は読みやすい

  • 明示的な入力→出力が分かりやすい
  • 副作用が制御されることで予測可能

● しかし現実のプログラムは状態に満ちている

  • IOや状態管理は結局モナドや複雑な抽象で実装され、逆に読みにくくなる
  • 副作用の流れが暗黙的で、学習コストも高い

3. 真の可読性を決めるのは「コメント」や「意図の明示」

● 言語そのものよりも重要な要素:

  • 適切なコメント(特に「なぜ」)
  • 明確な命名(変数・関数・クラス)
  • 設計レベルでの構造化(責務の分離、レイヤー設計)
  • 一貫したコーディングスタイル

● コメントの有無で可読性は劇的に変わる:

  • コメントがなければ、どんな優れた言語でも**「何をしているか」は分かっても「なぜそうしているか」は分からない**
  • 「コメント不要論」は一部の理想に過ぎず、現実の開発では補助的メタ情報として不可欠

✅ 最終結論

  • コードの可読性は、言語の設計だけでは決まらない
  • 本質は「意図の伝達」がどれだけできているか
  • その鍵となるのが、コメント・命名・設計の3点である
0
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
0
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?