太田と申します。
こんばんは。
すっかり、話題に乗り遅れてますが…
> 濱井さん、こんにちは。
> 赤坂@ty-bayのオージス総研 です。
>
> エンジニアのスキル不足などの理由で、オブジェクト指向を使ってうまく行か
> ないリスク(技術の新奇性リスク)をどうやって軽減するかということも考えない
> といけないのかもしれませんね。
> # ミニプロなどでこのリスクを軽減するわけですが…
>
このスキルには、2つの意味があると思います。
一つはオブジェクト指向言語が使えるかどうかというスキルと、
もう一つはオブジェクト指向設計が行えるかどうかというスキルです。
私の感覚では、オブジェクト指向言語を使うスキルの高いエンジニアは
少なくない思いますが、オブジェクト指向設計を行うスキルの高いエンジ
ニアはそれほど多くないと思います。
そこが、オブジェクト指向の導入がうまく行かないことの大きな原因だと
思っています。
手続き型の記述スタイルは、思考の流れをそのまま記述できるため、
作る側にとっては所謂 手なりでコーディングできます。プログラマに
とってはとっつきやすく楽なスタイルです。
しかし、出来上がった成果物の保守性については、必ずしも高いとは言え
ません。一つの処理をいかようにでも記述できるからです。また、高水準
のレイヤになればなるほど作る人によって、設計に大きなばらつきが発生
します。
一方で、オブジェクト指向設計は、コーディングの前に物事の整理整頓
が要求されます。この整理整頓の段階で、オブジェクト間のインターフェ
ースが定義されますので、コーディングの際には大きな制約がかかります。
つまり、自ずと記述内容が制限されるということです。
(この制約によってデザインパターンが生まれたと思っています)
それが、正しく行われたオブジェクト指向設計の保守性が高いことの一因だ
と思います。
オブジェクト指向の導入がうまくいくかどうかは、オブジェクト指向言語を
使えるスキルでけではなく、極論すれば、設計者が物事を整理整頓して考え
られるか?ということに尽きると私は思っています。だからこそ、オブジェ
クト指向設計の導入は難しいのだと思っています。
#こんなことを言っておきながら、自分のだらしなさが胸に刺さる…うっ!