Appendix D
Suggested Reading
This book covered structural design smells and their corresponding refactoring suggestions. Software design is a vast topic, and you may be interested in learning more about some of the relevant topics discussed in this book. In this appendix, we list some of the essential books to read on the related topics.
D.1. Essentials
• Object-Oriented Analysis and Design with Applications, Grady Booch, Robert A. Maksimchuk, Michael W. Engle, Bobbi J. Young, Jim Conallen, Kelli A. Houston, 3rd Edition, Addison-Wesley Professional, 2007
• Object-Oriented Software Construction, Bertrand Meyer, 2nd Edition, Prentice Hall, 1997
• Fundamentals of Object-Oriented Design in UML, Meilir Page-Jones, Addison-Wesley Professional, 1999
• Designing Object-Oriented Software, Rebecca Wirfs-Brock, Brian Wilkerson, and Lauren Wiener, Prentice Hall, 1990
• Agile Software Development, Principles, Patterns, and Practices, Robert C. Martin, Prentice Hall, 2002
D.2. Refactoring and Reengineering
• Refactoring: Improving the Design of Existing Code, Martin Fowler, Kent Beck, John Brant, William Opdyke, Don Roberts, Addison-Wesley Professional, 1999
• Object-Oriented Reengineering Patterns, Serge Demeyer, Stéphane Ducasse, Oscar Nierstrasz, Morgan-Kaufmann, 2002
• Working Effectively with Legacy Code, Michael Feathers, Prentice Hall, 2004
• Refactoring to Patterns, Joshua Kerievsky, Addison-Wesley Professional, 2004
• Object-oriented Metrics in Practice: Using Software Metrics to Characterize, Evaluate, and Improve the Design of Object-Oriented Systems, Michele Lanza, Radu Marinescu, Springer, 2006
• Refactoring in Large Software Projects: Performing Complex Restructurings Successfully, Martin Lippert, Stephen Roock, John Wiley & Sons, 2006
D.3. Patterns and Anti-patterns
• Design Patterns: Elements of Reusable Object-Oriented Software, Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, Addison-Wesley Professional, 1994
• Pattern-Oriented Software Architecture Volume 1: A System of Patterns, Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, Michael Stal, John Wiley & Sons, 1996
• AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis, William J. Brown, Raphael C. Malveau, Hays W. McCormick, Thomas J. Mowbray, John Wiley & Sons, 1998
D.4. Technical Debt
• Managing Software Debt: Building for Inevitable Change, Chris Sterling, Addison-Wesley Professional, 2010