Adaptive code : agile coding with design patterns and SOLID principles - Hall, Gary McLean (Microsoft Press, 2017)