Software Design for Flexibility

..

https://mitpress.mit.edu/9780262045490/software-design-for-flexibility/

by Chris Hanson and Gerald Jay Sussman.