Refactoring Improving the Design of Existing Code

Refactoring Improving the Design of Existing Code by Martin Fowler, published by Addison-Wesley in 2019, is a comprehensive guide focused on transforming poorly structured code into well-organized code. This second edition spans 418 pages and is presented in English. The book outlines the principles of refactoring, emphasizing its importance for enhancing software maintainability and clarity, regardless of the programming language used.
Readers will find a detailed catalog of refactorings that highlight how to identify code needing improvement and the methods to implement these changes effectively. Key topics include recognizing “code smells,” applying refactorings to improve application design, and the significance of writing good tests. The book also discusses the organization of data structures, the management of conditional logic, and the role of APIs in software development. Examples are primarily provided in JavaScript, making it accessible for adaptation to various programming languages.
Official synopsis Publisher
Martin Fowler’s guide to reworking bad code into well-structured code
Refactoring improves the design of existing code and enhances software maintainability, as well as making existing code easier to understand. Original Agile Manifesto signer and software development thought leader, Martin Fowler, provides a catalog of refactorings that explains why you should refactor; how to recognize code that needs refactoring; and how to actually do it successfully, no matter what language you use.
- Refactoring principles: understand the process and general principles of refactoring
- Code smells: recognize “bad smells” in code that signal opportunities to refactor
- Application improvement: quickly apply useful refactorings to make a program easier to comprehend and change
- Building tests: writing good tests increases a programmer’s effectiveness
- Moving features: an important part of refactoring is moving elements between contexts
- Data structures: a collection of refactorings to organize data, an important role in programs
- Conditional Logic: use refactorings to make conditional sections easier to understand
- APIs: modules and their functions are the building blocks of our software, and APIs are the joints that we use to plug them together
- Inheritance: it is both very useful and easy to misuse, and it’s often hard to see the misuse until it’s in the rear-view mirror—refactorings can fix the misuse
Examples are written in JavaScript, but you shouldn’t find it difficult to adapt the refactorings to whatever language you are currently using as they look mostly the same in different languages.
“Whenever you read [Refactoring], it’s time to read it again. And if you haven’t read it yet, please do before writing another line of code.” -David Heinemeier Hansson, Creator of Ruby on Rails, Founder & CTO at Basecamp
“Any fool can write code that a computer can understand. Good programmers write code that humans can understand.” -M. Fowler (1999)
Author
Publisher
Topics
FAQ
What is “Refactoring Improving the Design of Existing Code” about?
Who is the author of “Refactoring Improving the Design of Existing Code”?
When was “Refactoring Improving the Design of Existing Code” published?
What is the ISBN for “Refactoring Improving the Design of Existing Code”?
What are the book details (language, pages, edition)?
