2010年1月19日火曜日

疎結と委譲

連載をやるといいつつまだ全然下書きができてない

しかし、最近オブジェクト指向、アプリケーション設計を考えることが多くなってきたため、デザインパターンちょっとだけだけど触れといてよかったと感じています。ちょっとでも知っていることで、解決への糸口が見つかる。そんな感じです。

疎結させること

オブジェクト間の依存をなるべく減らすことは、オブジェクトが集中すべき業務に対してより集中できるようになることが多々あります。例えば、テレビのリモコンの中身まで気にして生活している場合は、それは疎結されていなくて、ただリモコンはボタンがあって電源を入れるのとチャンネルを変えるのがある程度くらいのインターフェースを知っていればOKというのは、リモコンとユーザとか疎結されていると考えます(自分は)

このインターフェースに対して働くというのが疎結させる方法の1つだと最近考えています。

委譲させること

委譲は「あとは任せた!」という表上は信頼というタテマエと、裏では「そんな仕事にゃ興味ねーんだよ!」という臭い物には蓋をする的な意味合いがあります(ぇ。先ほどのリモコンの場合、ボタンを押した後の処理(電気が流れて、赤外線が放射されてなどなど)は、ユーザからは隠蔽されていますし、ユーザはリモコンにそのことを何も気がつかずに委譲しています。そしてリモコンは赤外線を放射した後は、知らん顔で、あとのチャンネル変更などの処理はテレビ本体のチャンネル変更担当機関に任せちゃいます。これが委譲。

疎結と委譲で各機能の役割が明確になってくる

そうなると部品化(モジュールやプラグイン)が簡単にできるようになったり、テストしやすくなったりすると思います。ここ1年半ほど、一人でプログラムを組む事ばかりだったので、とにかく再利用性に気をつけてきましたが、やっとちゃんとした部品が作れるようになりそうな気配がしてきましたw というかそうしなければならない

マッシュアップの時代へ

話は飛躍しますが、これからはAPI(いろいろありますが)やライブラリやフレームワークをごりごり集めて何かを作り出す力が必要になるんじゃないかと思います。今まで個人ではこなせなかった作業がオープンソースやAPIのおかげで、どんどんできるようになってきています。そしてRails3のモジューラビリティ(話が飛び過ぎ)。スクラッチからすべて起こしてやっていくのが古いとは言いませんが、個人でやっていく場合、マッシュアップは要だと思います。生産性や効率という意味では、再利用可能なプログラムが裏切ることはそうないと思います。ただし再利用されないとか、汎用性が必要ない場合は最適化したコーディングも必要だと思います。いつも最終的にはバランス感覚ですね。

0 件のコメント: