ポインタを制する者はプログラミングを制する
「ポインタを制する者はプログラミングを制する」と最近よく思うのだが、どうだろか?
another level of indirection
「もう一段の間接参照」を導入すると、コンピュータのほとんどの問題は解決できる。
この言葉、元々Edsger Dijkstraが言い出したそうだ。
「リファクタリング本」にも、「実践UML」
にも、上記の一節が載っていて、いつも気になっていた。
結局は、ポインタそのものではないか!
例えば、複数アプリがメモリを気にしないでもいいように仮想メモリを導入したり、複雑になりがちなController層をアプリケーション・ファサード層とビジネス・デレゲート層に分けたり、イベントをCommandパターンに当てはめて使い回す等、応用例は多い。
ポインタの概念を突き詰めていけば、Aspectにも繋がる。
C言語に限らず、Javaでも、ポインタでつまずく初心者は多い。(うちの新人もそうだった)
ポインタが難しい原因は、一つは、メモリ上に本当のデータがどこに置かれているのか分かりにくい事と、もう一つは、ポインタの排他制御が面倒である事の二つではないか?
前者は、Javaのインスタンスは複数作成できる事実を知っていれば、それほど難しくない。「Java謎+落とし穴徹底解明」には、「マルチプルインスタンス」という言葉で説明している。
後者は、スレッド制御をどこまで理解しているか、が問われる。
「モニタ」「セマフォ」は又今度まとめよう。
| 固定リンク
「プログラミング」カテゴリの記事
- クラウドではソフトウェアの品質が課金の差として出てくる(2009.11.30)
- クラウド時代のSW開発スタイル(2009.11.29)
- Web 2.0メモ(2005.11.15)
- Ruby関西とiPod(2006.01.29)
- WebブラウザのJavaScriptエンジン高速化がもたらすもの(2008.04.22)
「日記・コラム・つぶやき」カテゴリの記事
- インターネットが既成メディアを脅かす(2005.11.04)
- Web 2.0メモ(2005.11.15)
- Ruby関西とiPod(2006.01.29)
- Web 2.0で一番重要なのは価値あるデータベース(2006.02.20)
- 最近のお気に入り(2007.10.31)


コメント