flâneur — a map of the web's best reading

the sudoku affair • Buttondown

explaining.software · 3,717 words · saved by 1 readers

In 2006, Ron Jeffries wrote a series of posts describing his attempts to build a Sudoku solver. He began by wrapping a class around a simple datatype for the board — essentially a List[Option[Int]] — and after that, there isn't much to tell. As Peter Seibel puts it: [H]e basically wandered around for the rest of his five blog postings fiddling with the representation, making it more “object oriented” and then fixing up the tests to work with the new representation and so on until eventually, it seems, he just got bored and gave up, having made only one minor stab at the problem of actually solving puzzles. This story has, in some circles, become notorious. There are two reasons for this. The first is that Ron Jeffries is a leading proponent of a post-design approach to software development. Good design, he asserts, is simply the result of keeping your code "properly-factored:" [Kent] Beck has those rules for properly-factored code: 1) runs all the tests, 2) contains no duplication, 3)

February 5, 2025 the sudoku affair Software design is a deliberate process, and requires deliberate effort. In 2006, Ron Jeffries wrote a series of posts describing his attempts to build a Sudoku solver. He began by wrapping a class around a simple datatype for the board — essentially a List[Option[Int]] — and after that, there isn't much to tell. As Peter Seibel puts it: [H]e basically wandered around for the rest of his five blog postings fiddling with the representation, making it more “object oriented” and then fixing up the tests to work with the new representation and so on until eventua

Explore this link on the map →

related reading