{"product_id":"refactoring-improving-the-design-of-existing-code-9780134757599","title":"Refactoring: Improving the Design of Existing Code","description":"\u003cp\u003e • Author(s): Martin Fowler\u003cbr\u003e • Publisher: Addison-Wesley Professional\u003cbr\u003e • Publisher Imprint: Addison-Wesley Professional\u003cbr\u003e • BISAC: Programming - Object Oriented\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003cstrong\u003eMartin Fowler's guide to reworking bad code into well-structured code\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003eRefactoring 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.\u003c\/p\u003e \u003cul\u003e \u003cli\u003e\n\u003cstrong\u003eRefactoring principles: \u003c\/strong\u003e understand the process and general principles of refactoring\u003c\/li\u003e \u003cli\u003e\n\u003cstrong\u003eCode smells: \u003c\/strong\u003e recognize \"bad smells\" in code that signal opportunities to refactor\u003c\/li\u003e \u003cli\u003e\n\u003cstrong\u003eApplication improvement: \u003c\/strong\u003e quickly apply useful refactorings to make a program easier to comprehend and change\u003c\/li\u003e \u003cli\u003e\n\u003cstrong\u003eBuilding tests: \u003c\/strong\u003e writing good tests increases a programmer's effectiveness\u003c\/li\u003e \u003cli\u003e\n\u003cstrong\u003eMoving features: \u003c\/strong\u003ean important part of refactoring is moving elements between contexts\u003c\/li\u003e \u003cli\u003e\n\u003cstrong\u003eData structures: \u003c\/strong\u003e a collection of refactorings to organize data, an important role in programs\u003c\/li\u003e \u003cli\u003e\n\u003cstrong\u003eConditional Logic: \u003c\/strong\u003e use refactorings to make conditional sections easier to understand\u003c\/li\u003e \u003cli\u003e\n\u003cstrong\u003eAPIs: \u003c\/strong\u003e modules and their functions are the building blocks of our software, and APIs are the joints that we use to plug them together\u003c\/li\u003e \u003cli\u003e\n\u003cstrong\u003eInheritance: \u003c\/strong\u003e 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\u003c\/li\u003e \u003c\/ul\u003e \u003cp\u003eExamples 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.\u003c\/p\u003e \u003cp\u003e\u003cem\u003e\"Whenever you read [\u003c\/em\u003eRefactoring\u003cem\u003e], it's time to read it again. And if you haven't read it yet, please do before writing another line of code.\" \u003c\/em\u003e-David Heinemeier Hansson, Creator of Ruby on Rails, Founder \u0026amp; CTO at Basecamp\u003c\/p\u003e \u003cp\u003e\u003cem\u003e\"Any fool can write code that a computer can understand. Good programmers write code that humans can understand.\" \u003c\/em\u003e-M. Fowler (1999)\u003c\/p\u003e","brand":"Addison-Wesley Professional","offers":[{"title":"Hardcover","offer_id":45034051534999,"sku":"9780134757599","price":5157.0,"currency_code":"INR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0666\/3471\/1191\/files\/9780134757599.webp?v=1767098392","url":"https:\/\/atlanticbooks.com\/products\/refactoring-improving-the-design-of-existing-code-9780134757599","provider":"Atlantic Books","version":"1.0","type":"link"}