kzk0829’s blog

機械学習の学習のアウトプット+技術的な事+ポエム

オブジェクト指向でなぜ作るか 第3章を読みました

はじめに

kzk0829.hatenablog.com

このエントリーの続き。
引き続き思考の整理、アウトプットとして。

第3章 OOPを理解する近道はプログラミング言語の歴史にあり

先人たちがオブジェクト指向という「ソフトウェア開発の総合技術」にたどり着くまでの歴史について。
どのようにプログラミングは発展し、何が問題で、どのように解決してきた結果オブジェクト指向プログラミングにたどり着いたのかということを述べた章。

ざっくりとした歴史の流れは以下

高級言語の発明までは、表現力の向上に重きが置かれ、構造化プログラミングは保守性、再利用性の向上に重きが置かれている

では、構造化プログラミングとはどんなものか?
正しく分かりやすい構造にする必要がある、という考えのもと普及した。これは、当時ソフトウェア需要が増大していたことにも関係してくる。
この構造化プログラミングの基本三構造は以下の通り。

  • 順次進行
    • 処理は呼ばれた順に上から実行
  • 条件分岐
    • 命令によって次の処理を決定
  • 繰り返し
    • ある条件に当てはまるまで一定回数繰り返す

この理論がシンプルだったため当時受け入れられたという。 また、当時の工夫が独立性を高め、保守に強くすること。
例えば、グローバル変数の使用を少なくするという工夫。何か不正があった場合に調べる範囲が広く保守性が低いため。
自分も意識しないうちにグローバル変数をあまり使わないように意識していたので、納得感が高かった。
この保守に強い構造にするということは、プログラムの寿命が伸びたことに起因している。
当時は10年以上後も自分の書いたコードが使われるという考えはなかったという。
それが違うと分かってきて、複雑さを避け、理解しやすさを重視し、使い回しによる生産性の向上が求められるような時代に入っていった。
ただ、グローバル変数の利用制限、大規模な再利用は構造化プログラミングでは限界があったことによって生まれたのがOOPであるという。

次の章からオブジェクト指向プログラミングの話に入っていく。