
○○指向プログラミング
オブジェクト指向、データ中心型とか、いろいろプログラミングの手法があるけど、システム開発技法の歴史を紐解くと要は再利用性と保守性をどう高めるかだけだと思っている。
1970年代:構造化プログラミング
プログラムを関数化(モジュール化)して再利用性と保守性を高めようとした試み。
欠点が、データの管理。
データが散在してしまって、どこにどういうデータがあるのか、システムの規模が大きくなればなるほど分からなくなった。

1980年代:データ中心アプローチ
だったら、データを中心に考えて、データを一元的に管理しようというのが、データ中心型アプローチ。
ER型のデータベースが出てきた事もあって、データを中心に設計、管理する。そして、その周辺にプログラムを配置しよう、というのがデータ中心型。
欠点は、データを修正した場合に、プログラムに対する影響がどの程度になるのか把握しずらかった。
つまり、システムの変更に弱かった。

1990年代以降:オブジェクト指向
だったら、プログラムもデータも一緒に管理すれば良いじゃん。って言うのが、オブジェクト指向型のプログラミング。
クラスという管理体の中に、データとロジックを持たせた作り。
これであれば、データを変更した場合、影響を受けるのはクラス内のロジックに限定される為、変更に強いでしょって感じで。

今はこの辺がまだ主流だと思う。
ただ、AIや統計分析の分野ではPythonが良く使われているけど、Pythonはあまりオブジェクト指向してない。
どちらかというと、構造化に近いと思う。
まぁこれも時の流れで、変わってくると思うけど、○○指向の本質は、再利用性と保守性。
これを担保したいという事が目的であって、○○指向でシステムを作る事が目的ではない。手法にすぎない。
ここだけは、間違えてはいけない。
新人の頃はオブジェクト指向が流行っていて、どうやったらオブジェクト指向のプログラムが組めるのか四苦八苦していたけど、方法にフォーカスして目的はおざなりだった。
再利用性と保守性って、つまりはプログラム開発を楽する事だから、楽する事ににフォーカスしないで作っていた時点で、当然結果は楽にならなかったね。
もうね、ただただ面倒くせー感じのシステムになった。( ´艸`)
■参考文献