« プロジェクトマネジメントは生産管理のIT版 | トップページ | 継続は力なり »

2004/07/22

ポインタを制する者はプログラミングを制する

 「ポインタを制する者はプログラミングを制する」と最近よく思うのだが、どうだろか?

another level of indirection
「もう一段の間接参照」を導入すると、コンピュータのほとんどの問題は解決できる。

 この言葉、元々Edsger Dijkstraが言い出したそうだ。
 「リファクタリング本」にも、「実践UML」にも、上記の一節が載っていて、いつも気になっていた。
 結局は、ポインタそのものではないか!

 例えば、複数アプリがメモリを気にしないでもいいように仮想メモリを導入したり、複雑になりがちなController層をアプリケーション・ファサード層とビジネス・デレゲート層に分けたり、イベントをCommandパターンに当てはめて使い回す等、応用例は多い。
 ポインタの概念を突き詰めていけば、Aspectにも繋がる。
 C言語に限らず、Javaでも、ポインタでつまずく初心者は多い。(うちの新人もそうだった)

 ポインタが難しい原因は、一つは、メモリ上に本当のデータがどこに置かれているのか分かりにくい事と、もう一つは、ポインタの排他制御が面倒である事の二つではないか?
 前者は、Javaのインスタンスは複数作成できる事実を知っていれば、それほど難しくない。「Java謎+落とし穴徹底解明」には、「マルチプルインスタンス」という言葉で説明している。
 後者は、スレッド制御をどこまで理解しているか、が問われる。
 「モニタ」「セマフォ」は又今度まとめよう。

|

« プロジェクトマネジメントは生産管理のIT版 | トップページ | 継続は力なり »

日記・コラム・つぶやき」カテゴリの記事

プログラミング」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック


この記事へのトラックバック一覧です: ポインタを制する者はプログラミングを制する:

» Java謎+落とし穴徹底解明 (標準プログラマーズライブラリ) [もぼなもな書房]
Java謎+落とし穴徹底解明 (標準プログラマーズライブラリ) Javaの入門書の次に読むとわかりやすい本だと思います。 自然な言葉で書... [続きを読む]

受信: 2009/05/06 10:41

« プロジェクトマネジメントは生産管理のIT版 | トップページ | 継続は力なり »