なぜエンジニアはオブジェクト志向でプログラミングするのか
October 10, 2018
技術書典で購入した本(オブジェクト志向とはなんなのかなんとなく伝えたい本)を読んで、なぜエンジニアがオブジェクト指向でプログラミングするのかがわかった気がするので、記したいと思います。
プログラミングでの開発は、まず「解決する課題・問題」を洗い出し、それをもとにソリューションを「設計」し、それを「実装」することですすんでいきます。 そこで、構造化言語(オブジェクト志向が使えない言語)で実装するとどのようなデメリットが生じるでしょうか。 コードの複雑化、それに伴うチーム開発でのメンバーの負担増加、設計の構造が無視される可能性…などさまざまです。
結論から言うと、主に設計~実装間でのプロセスに対して, またチーム開発における重要なメリットがあるためにオブジェクト志向は使われています。
オブジェクト指向とは、オブジェクト(対象, 目的, 振る舞い…これらを持つ同系統の存在/事象を一括りにした概念)をプログラミングに取り入れるための考えです。クラス(概念)とインスタンス(実体), 振る舞い(メソッド)やプロパティ(状態)から構成されるいくつかのオブジェクトが相互に作用しあうことで一つのシステムを成していて、設計における各物体, 状態, 作用などの現実的な関係性を崩すことなく誠実(ここではコードからこれらの設計が想像可能であることを指す)に実現できるというメリットがあり、これがプログラミング開発において生じた上記の問題を解決する手段になりうるです。
また、オブジェクトはいくつかの似たような問題を集約したり、大きい問題を似たような小さい問題に分割することが可能でチーム開発をするうえでの役割分担あるいは各オブジェクトの責任を明確にできます。デバッグも容易になりますね。
この理由がなぜエンジニアはオブジェクト志向でプログラミングするのかに対する答えになると思いました。
本の内容をわかりにくくしただけですが、アウトプットすることで自己を満たすのがこの日記の役割なのでいいでしょう(適当かつ無責任) おわり