Re-Engineering Legacy Software by Chris Birchall DOC read online book
9781617292507 English 1617292508 Most developers inherit projects built on an existing codebase that reflect design patterns, usage assumptions, infrastructure, and tooling from another time and another team. (And the docs are complete rubbish.) Fortunately, there are techniques that can breathe new life into legacy projects, allowing them to be maintained, improved, and scaled without having to constantly fight their current limitations. Stronger applications can be developed by injecting new architectural patterns, modern techniques for performance analysis, updated tests and build tools, and a healthy dose of cultural wisdom creating a better work experience for all involved. "Re-Engineering Legacy Software" is an experience-driven guide to revitalizing inherited projects. It covers refactoring, quality metrics, toolchain and workflow, continuous integration, infrastructure automation, and organizational culture. On the technical side, readers will learn techniques for introducing dependency injection for code modularity, quantitatively measuring quality, and automating infrastructure. On the strategic side, they'll develop practical processes for solid decision making. Core topics include deciphering and modularizing awkward code structures, effectively integrating and automating tests, replacing an outdated build system, and infrastructure automation using tools like Vagrant and Ansible. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.", Summary As a developer, you may inherit projects built on existing codebases with design patterns, usage assumptions, infrastructure, and tooling from another time and another team. Fortunately, there are ways to breathe new life into legacy projects so you can maintain, improve, and scale them without fighting their limitations. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. About the Book Re-Engineering Legacy Software is an experience-driven guide to revitalizing inherited projects. It covers refactoring, quality metrics, toolchain and workflow, continuous integration, infrastructure automation, and organizational culture. You'll learn techniques for introducing dependency injection for code modularity, quantitatively measuring quality, and automating infrastructure. You'll also develop practical processes for deciding whether to rewrite or refactor, organizing teams, and convincing management that quality matters. Core topics include deciphering and modularizing awkward code structures, integrating and automating tests, replacing outdated build systems, and using tools like Vagrant and Ansible for infrastructure automation. What's Inside Refactoring legacy codebases Continuous inspection and integration Automating legacy infrastructure New tests for old code Modularizing monolithic projects About the Reader This book is written for developers and team leads comfortable with an OO language like Java or C#. About the Author Chris Birchall is a senior developer at the Guardian in London, working on the back-end services that power the website. Table of Contents PART 1 GETTING STARTED Understanding the challenges of legacy projects Finding your starting point PART 2 REFACTORING TO IMPROVE THE CODEBASE Preparing to refactor Refactoring Re-architecting The Big Rewrite PART 3 BEYOND REFACTORING-IMPROVING PROJECT WORKFLOWAND INFRASTRUCTURE Automating the development environment Extending automation to test, staging, and production environments Modernizing the development, building, and deployment of legacy software Stop writing legacy code!
9781617292507 English 1617292508 Most developers inherit projects built on an existing codebase that reflect design patterns, usage assumptions, infrastructure, and tooling from another time and another team. (And the docs are complete rubbish.) Fortunately, there are techniques that can breathe new life into legacy projects, allowing them to be maintained, improved, and scaled without having to constantly fight their current limitations. Stronger applications can be developed by injecting new architectural patterns, modern techniques for performance analysis, updated tests and build tools, and a healthy dose of cultural wisdom creating a better work experience for all involved. "Re-Engineering Legacy Software" is an experience-driven guide to revitalizing inherited projects. It covers refactoring, quality metrics, toolchain and workflow, continuous integration, infrastructure automation, and organizational culture. On the technical side, readers will learn techniques for introducing dependency injection for code modularity, quantitatively measuring quality, and automating infrastructure. On the strategic side, they'll develop practical processes for solid decision making. Core topics include deciphering and modularizing awkward code structures, effectively integrating and automating tests, replacing an outdated build system, and infrastructure automation using tools like Vagrant and Ansible. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.", Summary As a developer, you may inherit projects built on existing codebases with design patterns, usage assumptions, infrastructure, and tooling from another time and another team. Fortunately, there are ways to breathe new life into legacy projects so you can maintain, improve, and scale them without fighting their limitations. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. About the Book Re-Engineering Legacy Software is an experience-driven guide to revitalizing inherited projects. It covers refactoring, quality metrics, toolchain and workflow, continuous integration, infrastructure automation, and organizational culture. You'll learn techniques for introducing dependency injection for code modularity, quantitatively measuring quality, and automating infrastructure. You'll also develop practical processes for deciding whether to rewrite or refactor, organizing teams, and convincing management that quality matters. Core topics include deciphering and modularizing awkward code structures, integrating and automating tests, replacing outdated build systems, and using tools like Vagrant and Ansible for infrastructure automation. What's Inside Refactoring legacy codebases Continuous inspection and integration Automating legacy infrastructure New tests for old code Modularizing monolithic projects About the Reader This book is written for developers and team leads comfortable with an OO language like Java or C#. About the Author Chris Birchall is a senior developer at the Guardian in London, working on the back-end services that power the website. Table of Contents PART 1 GETTING STARTED Understanding the challenges of legacy projects Finding your starting point PART 2 REFACTORING TO IMPROVE THE CODEBASE Preparing to refactor Refactoring Re-architecting The Big Rewrite PART 3 BEYOND REFACTORING-IMPROVING PROJECT WORKFLOWAND INFRASTRUCTURE Automating the development environment Extending automation to test, staging, and production environments Modernizing the development, building, and deployment of legacy software Stop writing legacy code!