2010.08.16 18:20

処理を細切れにしたことで、キーはさくさく入力できるようになった。その引き換えに、アプリがすぐにエラー終了するようになった。処理を分割した隙間にキー操作が入ることで、想定外の動きをしてしまうのだ。例えば、まだ情報が生成されていない場所にユーザがキーで移動していくと、存在しない情報にアクセスしようとしてエラーになった。携帯はマルチタスクだったから、描画してる間にもユーザは気が変わってメニュー画面を開いて別のアプリを起動するかもしれない。そういうとき自分のアプリは裏に回る。裏に回るときは自分が持つ情報は最低限にして多くのメモリを解放しなければならない。そうしないと、新しいアプリが動作する充分なメモリが確保できなくなる。しかしそのあと自分のアプリがまた前に戻ってくると、必要な情報まで解放してしまっており処理継続できずにエラーになったりした。バグを見つけてはつぶしていった。しばらくするとエラー終了しなくなったが、コードのあちこちにエラーを回避するためのフラグが作られ、可読性もメンテナンス性もかけらもないようなゴミになっていた。荒川智則は数週間後にチームメンバーによるコードレビューを控えており、とても評価してもらえるようなコードではなかった。リーダーがいつの間にか後ろに来ていて、「やあちゃんと動いているねえ」と安心した様子だった。確かに見た目は動いているのだが、どうして動いているのかよくわからない部分がずいぶんあった。コードレビューではそれも説明しなければならない。理解していない箇所が残っていたら致命的だ。コードを整理しながら、どうしてこの画面はちゃんと動いているのか理解しようとした。そのためには、リストボックスやフレームワークやロジック部分のソースコードを自分で読むしかなかった。救いだったのは、全てのソースコードデバッグ用情報つきビルドされており、デバッガでいくらでも他のコンポーネントソースコードにもぐっていけたことだった。来る日も来る日も、デバッガでソースコードを追いかけ、どういう風に動いているのか理解しようとした。そしてその砂漠の上を歩くような永遠とも思える作業が、少しずつ荒川智則の世界を広げていった。