第2話
型の壁
金曜の夜、佐藤は会社を出る前にもう一度、金額処理の関数群を眺めていた。
提案は却下されたが、諦めきれなかった。なぜなら、その週だけでも新しいバグ報告が三件上がっていたからだ。いずれも金額の扱いに関するものだった。
翌週の月曜、佐藤は小さな実験を始めることにした。マネージャーに許可を求めるのではなく、まず自分の担当モジュールの一部で、型を厳密にしてみるのだ。新しい決済ルートの実装が任されていたから、そこなら自由度がある。
金額を整数で持つのではなく、単位と精度を明示した型として定義する。通貨の種類も型に含める。こうすれば、異なる通貨を誤って加算することすら、コンパイラが許さない。
コードを書き進めると、予想外のことが起きた。既存の関数を呼び出そうとする度に、型エラーが出るのだ。単純に「この関数の戻り値は何を表しているのか、明らかになっていない」ということを、型システムが指摘していた。
佐藤は既存コードの設計者たちに話を聞き始めた。なぜこの関数は整数を返すのか。それは何を意味しているのか。答えは曖昧だった。「たぶん円だと思う」「スケーリング済みのはず」。誰も確実なことを言えなかった。
その時、田中が声をかけてきた。
「何やってんです?」
佐藤は迷わず、自分の試みを説明した。型で曖昧さを排除する試みだと。
田中は黙って佐藤のモニターを覗き込んだ。そして、小さく笑った。
「これ、実装できたら本当に楽になると思う。でもね……」
「でも?」
「既存システムとの整合性。それが地獄ですよ」
その言葉は、佐藤にとって初めての、本当の課題提起だった。技術的な設計ではなく、レガシーと新しい世界をどう橋渡けするか。その問題に、佐藤は直面することになる。
続きはまもなく
目次