By the way, "Uncle Bob"s prime number generator example discussed there (which Bob Martin, as he admits himself, does not understands any more in spite of that he himself published it in “Clean Code”) was originally designed and published by nobody less than Edsger Dijkstra and was used as an Example of Literate Programming by Don Knuth.
They are giants on whose shoulders we are standing. It is totally worth it reading first Dijkstra’s Chapter, then Don Knuth’s text, and then John Ousterhout’s discussion of Martin’s rewrite (linked above).
Or perhaps starting with Martins code and see if you understand it…
https://pure.tue.nl/ws/files/2408738/252825.pdf (Dijkstra’s original code and explanation, a gem of computer science history, where among other things he introduces the concept of invariants)
See
https://github.com/johnousterhout/aposd-vs-clean-code
By the way, "Uncle Bob"s prime number generator example discussed there (which Bob Martin, as he admits himself, does not understands any more in spite of that he himself published it in “Clean Code”) was originally designed and published by nobody less than Edsger Dijkstra and was used as an Example of Literate Programming by Don Knuth.
They are giants on whose shoulders we are standing. It is totally worth it reading first Dijkstra’s Chapter, then Don Knuth’s text, and then John Ousterhout’s discussion of Martin’s rewrite (linked above).
Or perhaps starting with Martins code and see if you understand it…
https://gist.github.com/pooya-raz/59aa46460f72f994f204a861c7342b4b (Bob Martins Code, which he can’t explain when interviewed by Ousterhout)
https://www.cs.tufts.edu/~nr/cs257/archive/literate-programming/01-knuth-lp.pdf (Knuths beautiful explanation of the algorithm invented by Dijkstra, using and demonstrating Knuth’s fantastic “Literate Programming” method)
https://pure.tue.nl/ws/files/2408738/252825.pdf (Dijkstra’s original code and explanation, a gem of computer science history, where among other things he introduces the concept of invariants)
https://github.com/johnousterhout/aposd-vs-clean-code (Ousterhouts interview with Martin, after publishing A Philosophy of Software Design)
Fascinating