型の契約

2/2

第2話

型の壁

金曜の夜、佐藤は会社を出る前にもう一度、金額処理の関数群を眺めていた。

提案は却下されたが、諦めきれなかった。なぜなら、その週だけでも新しいバグ報告が三件上がっていたからだ。いずれも金額の扱いに関するものだった。

翌週の月曜、佐藤は小さな実験を始めることにした。マネージャーに許可を求めるのではなく、まず自分の担当モジュールの一部で、型を厳密にしてみるのだ。新しい決済ルートの実装が任されていたから、そこなら自由度がある。

金額を整数で持つのではなく、単位と精度を明示した型として定義する。通貨の種類も型に含める。こうすれば、異なる通貨を誤って加算することすら、コンパイラが許さない。

コードを書き進めると、予想外のことが起きた。既存の関数を呼び出そうとする度に、型エラーが出るのだ。単純に「この関数の戻り値は何を表しているのか、明らかになっていない」ということを、型システムが指摘していた。

佐藤は既存コードの設計者たちに話を聞き始めた。なぜこの関数は整数を返すのか。それは何を意味しているのか。答えは曖昧だった。「たぶん円だと思う」「スケーリング済みのはず」。誰も確実なことを言えなかった。

その時、田中が声をかけてきた。

「何やってんです?」

佐藤は迷わず、自分の試みを説明した。型で曖昧さを排除する試みだと。

田中は黙って佐藤のモニターを覗き込んだ。そして、小さく笑った。

「これ、実装できたら本当に楽になると思う。でもね……」

「でも?」

「既存システムとの整合性。それが地獄ですよ」

その言葉は、佐藤にとって初めての、本当の課題提起だった。技術的な設計ではなく、レガシーと新しい世界をどう橋渡けするか。その問題に、佐藤は直面することになる。

続きはまもなく

目次

コメント