2012-01-10

オブジェクト指向の楽しさ(センス、感覚、快感)

オブジェクト指向設計、プログラミングを苦しさだけとしか感じられない人も多いかもしれません。
オブジェクト指向ディバイド(過去の記事をご参照ください)の大きな要素の一つに、この楽しさの有無があります。

つまり、オブジェクト指向開発に楽しさを見出せるか否か。もちろん見出せた人の勝ちです。

今日はオブジェクト指向開発に全く楽しさを感じられない人へのヒントを書いてみたいと思います。
特に、クラス設計について。クラス設計にはオブジェクト指向の醍醐味があるのです。


★1つの楽しさ、それは本棚の整理と似ている

もし、あなたの部屋に本棚がなかったら、本は散乱して散らかってしまい、精神衛生上も良くないし、必要な書籍を探し出すのも大変です。持てる本の数も限られたものになりますね。

本棚を購入したらジャンルごとに分類するなどしてそれらの本をしまうことができます。すると、見た目もすっきりするし、部屋も広くなるし、必要な書籍の検索もあっという間。仕事の能率も上がります。

オブジェクト指向のクラスは、おおざっぱにいうとこの本棚の役目を果たします。クラスを設計することは本棚の整理と似ています。整理整頓することの気持ちよさ、それが快感であり、楽しさでもあります。本棚の整理が理にかなったものであれば、本の取り出しや収納も効率的であるのと同じで、良いクラスを設計できれば扱いやすくなり、結果的に制作するソフトウエアの品質も向上します。


★そして、本命はマジックボックスをアピールする楽しさ

クラス設計の重要なポイントの1つは、それ自体の独立性が高く、場合によっては1つのクラスだけで商品価値があり、設計者の表現を強く盛り込むことができるという点です。それは、構造化設計の単なる関数や関数群とは比べものになりません。クラスにはクラスインタフェースというものがあり、そこに主観と客観の明確な境目があるからです。

たとえばファイルを扱うクラスではオープンやクローズの手続きが不要なものがあります。コンストラクタやデストラクタを使って煩雑な手順を省くことが可能なのです。クラスユーザは単純にリードやライトをするだけでよいのです。複雑なことをシンプルに表現できるマジックボックスを作り、クラスユーザにアピールできる楽しさがあります。
つまりクラス設計には、そのユーザが仮に自分自身であったとしても、設計時はそのユーザという客観的な存在を常に意識することが可能で、そこに楽しさが伴うのです。それは、相手をびっくりさせる、感心させる、喜ばせるといった人の根本的な欲求が含まれます。

構造化設計では、関数というあまり独立性の高くないまとまりしかないので、主観と客観の境目がはっきりせず、常に自分のためだからという甘えにも繋がってしまいがちでした。



きっと他にも楽しさはあるはずですが、結局、オブジェクト指向設計をうまくこなすことで完成したソフトウエアの品質(性能、保守性、低コスト)が向上する、ということが究極的な楽しさに繋がることは間違いありません。

0 件のコメント:

コメントを投稿