O Caso Sudoku: Duas Abordagens para o Design de Software

2025-02-05
O Caso Sudoku: Duas Abordagens para o Design de Software

Este artigo relata as experiências de Ron Jeffries e Peter Norvig na construção de solucionadores de Sudoku. Jeffries, empregando uma abordagem de design incremental, começou com uma representação simples List[Option[Int]], refinando-a iterativamente até a conclusão. No entanto, o código resultante foi verboso e carecia de elegância. Norvig, aproveitando sua experiência em algoritmos de busca, usou uma representação Map[Coord, Set[Int]], resultando em um código conciso e eficiente que mostrou a propagação de restrições. O artigo contrasta essas filosofias de design, destacando o impacto do conhecimento de domínio no estilo de codificação e promovendo a reflexão sobre metodologias de design de software.

Desenvolvimento filosofias de programação