数独事件:ソフトウェア設計への2つのアプローチ
2025-02-05

この記事は、Ron JeffriesとPeter Norvigによる数独ソルバー作成の経験について述べています。Jeffriesは増分的な設計アプローチを採用し、単純なList[Option[Int]]表現から始め、繰り返し改良することで最終的にソルバーを完成させました。しかし、結果として得られたコードは冗長でエレガントさに欠けていました。一方、Norvigは探索アルゴリズムの専門知識を生かし、Map[Coord, Set[Int]]表現を用いることで、簡潔で効率的なコードを作成し、制約伝播を示しました。この記事では、これらの設計哲学を対比し、ドメイン知識がコーディングスタイルに与える影響を強調し、ソフトウェア設計方法論について熟考することを促しています。
開発
プログラミング哲学