パスワードを忘れた? アカウント作成
594503 journal

kamogawaの日記: ルークよ、関数を使うのだ(2)

日記 by kamogawa

(つづき)
ここで女子からコメント。「main()からは
printLineFeed()の1行しか実行してないのに、それだけで多数の
条件判断や出力をしてるのは、なんか不思議ですね」

こんな感じのことを言われて、かつて俺も同じことで困惑してたことを
思い出したのだ。関数は、そのインタフェイスからは中で何をしているか
判断できない。思いもかけない大きな処理をしているかもしれない。
この、4次元ポケットのような不思議な感覚を、俺は今ではあたりまえのことと
考えているけど、そう言えば昔はそうじゃなかった。ソースコードを読みながら、
あるいは書きながら、このなじみにくい感覚を必死に飲み下していた。

この感覚を脳みそになじませるには、どうすれば良いだろうか。
現在の俺の答えは、「慣れるしかない」だ。新人女子には悪いが、
不甲斐ない先輩を持った以上、この仕事を続けるなら慣れてもらう
他ない。ごめんね。メンゴ!(なんか良いアドバイスとかあったら
教えてください)

でもこの、「外からでは中に何があるかわからない」という感覚は、
コンピュータ技術全般において、理解するための鍵だと思う。例えば
フォルダだってそうだし、シンボリックリンクだってそうだし、
テンプレートメソッドなどのデザインパターンの多くも、RCPも、
プロキシサーバも、dns乗っ取りも、仮想端末も、sshも、vmも、テレビ
キャプチャもみんな、間に「何か」をかませて機能を実現している。
「コンピュータサイエンスとは、『全ての問題は中間層を取り入れる
ことにより解決できる』と考える信仰である」というフレーズは、
俺のお気に入りだ。(これ誰が言ったんだっけ?)

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

開いた括弧は必ず閉じる -- あるプログラマー

読み込み中...