EBOOK

Re-Engineering Legacy Software

Chris Birchall
(0)
Pages
232
Year
2016
Language
English

About

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.

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

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!

Related Subjects

Artists