Adaptive Code. / : agile coding with design patterns and SOLID principles - McLean Hall, Gary (Microsoft., 2017)