第2話
設計者の意図
翌朝、佐藤は田中の席に向かった。オフィスはまだ静かで、プログラマーたちが徐々に席に着き始める時間帯だ。
「このコード、読んでみました」佐藤はノートパソコンを持ってきた。「ただ、なぜこんな複雑な型システムを設計したのか、理由が知りたくて」
田中は一瞬、画面を見つめた。その表情に、何かを思い出すような迷いが走った。
「あー...ね。あれは」田中は深く息をついた。「前のプロジェクトで、バグが多発したんだ。表面上は動いている。型チェックも通る。でも本来あり得ない状態でクラッシュする。そんなことが何度も繰り返された」
佐藤は聞き手に徹した。
「既存の型では、『この変数は文字列です』としか言えない。だから、ログイン前のユーザーなのに、ユーザーデータにアクセスできるコードを書いてしまうわけだ。型チェッカーは何も言わない。実行時まで気付かない」
モニターに映るコードを指差す。
「その問題を、型レベルで表現しようとした。ログイン状態という『概念』を型に組み込む。そうすれば、コンパイル時に矛盾を検出できる」
「でも、その後どうなったんです?このシステムは...」
田中の表情が曇った。
「それが...。設計まではうまくいったんだ。でも実装の途中で、プロジェクトが中止になってな。メンバーの異動もあって、記録も整理されないまま。今のチームはほぼ新顔だから、背景を知る人間がほとんどいない」
佐藤の心に疑問が残った。二年も前のコードが、なぜ今になって復活したのか。そして、なぜ田中自身がその経緯を曖昧に話すのか。
「ところで」田中は唐突に話題を変えた。「このコード、全部理解した?」
「いえ。まだ全体像が見えていません」
「そっか。実は...」田中はキーボードを操作した。画面上に、佐藤がまだ見たことのないファイルが表示される。「もう一つ層がある。表面のコードの下に、隠されたロジックがあるんだ。これを知っているのは、ごく限られた人間だけ」
佐藤は息を呑んだ。プロジェクトに隠された層があるという話。それは、単なる設計の複雑さではなく、何か意図的な秘匿を示唆していた。
「なぜ、それを教えてくれるんですか?」
田中は微かに笑った。「君だから。このコードを読み解こうとする姿勢を見て、思った。そろそろ誰かに任せるべき時が来たんだろう」
続きはまもなく
目次