業務システムでオブジェクト指向をどこに使うか。

しかし、煽りでもなんでもなく、実のところ現場ではあまり使わない、というのも事実だったりします。

そりゃ、ライブラリやフレームワークでは使いますよ。しかし、多くのプロのプログラマが会社で作るような「業務アプリ」の世界において、プログラム全体の中でライブラリやフレームワークの占める割合は大きくはない。

業務アプリというのはいわゆる、

条件判定 → データ書き換え → 状態遷移

の繰り返しだよね、ってことなら、そりゃフレームワークくらいしか使うとこないですよね。
この部分を「1000行のベタメソッドをどっかからコピペしてきて作る」か、「オブジェクト指向で作る」かは実装レベルの取り決めの問題*1で、現場にOOな人がいればそれはとってもいいよね現実にはいないけど、程度に思ってる偉い人が多いかなと。


だから業務システムでオブジェクト指向を必ず使うところって「システムの骨格」くらいですか? 大きな意味でのシステムのフレームワーク

実現する機能の種類・システムレイヤーの分け方・実装部隊の組織体制、その他もろもろを考慮して、たくさんの人で分業をしても全体としておかしくならないように、おかしくなってもその場所がわかるように、開発作業に使うあらゆる道具立てを標準化・カプセル化するために使う。


業務システムは「鶴の一声の理不尽な変更」に耐えうることが前提だから。
「きれいなシステム世界」を作るためにオブジェクト指向を使ってもあんまり効果がなくて、開発担当範囲とかモジュール同士の切れ目とか、まず仕事環境をきれいにしておくために使うのが現場の機知じゃないかと思いますです。

*1:あるいは趣味の世界かも。個人的にはコピペしてる奴を見つけたら後ろからドロップキックなわけですけど。