..
https://mitpress.mit.edu/9780262045490/software-design-for-flexibility/
by Chris Hanson and Gerald Jay Sussman.