ルール16コードから先に進むのではなく、結果から後ろ向きにたどれ
以下、しばしの間だが隠喩を使う例え話に入り込んでいくので、お許しを。
プログラミングとは、隔たりの間の橋渡しをすることだ。一方には、解決したい何かの問題があり、他方には、使えるコードと技術が山のように手元に揃っている。問題と、コードや技術の間には、隔たりがある。手持ちのコードを拡張し、そのコード部品を新しい形に結合し直すことで、隔たりを渡る橋を建設してゆき、一度に少しずつ問題を解決するというのを、全部の問題解決が済むまで繰り返す。
渡るべき隔たりが、小さいものしかない場合もある。手持ちのコードで問題をほぼ解決できるとか、あるいはそういうコードを正しい方法で呼び出すだけでいいとか。そんな場合は、橋を架けるのに、プログラミングはほとんど必要ですらない。つまり、正しいパラメーターを設定してコードを呼び出すだけになる。
隔たりが非常に大きいこともある。どうやればコードで問題を解決できるのか、全然明らかになっていないのだ。どんな問題を解決すべきなのかについて、詳細な全貌が明らかになってるわけじゃないことだってある! ビデオゲームに携わっていると、特にそういう傾向が強い。ゲーム開発では、ゲームを遊んだ際に面白くなる何かの機能を、その機能がまともに動作するところまで作り込まないうちから予測するのは難しい。Sucker Punchでは、入り組んだ問題を解決したのに、結果としてできたものを遊んでみたら面白くなくて、解決の意味がなかったってことが、鬱になるくらいよくある。
どんな隔たりにも、2つの側がある。片側に立って、隔たりの向こう側を眺めているとしよう。その時に立ってる側は、既存のコードの山を抱えている側なのか、それとも問題を抱える反対側なのか、ってのがここでの問いだ。 ...
Get ルールズ・オブ・プログラミング ―より良いコードを書くための21のルール now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.