000 02496nam a22002177a 4500
005 20260914113118.0
008 260914s2016 |||||||| |||| 00| 0 eng d
020 _a9781617292507
040 _cPK-LaUMT
082 _a005.1
_bBIR-R
100 1 _aBirchall, Chris
_915495
245 1 0 _aRe-engineering legacy software /
_cChris Birchall
260 _aNew York :
_bManning Publications,
_c2016
300 _axvii, 214 p.
500 _aIndex present
520 _a"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. KEY SELLING POINTS Practical step-by-step guide Concrete examples Provides techniques needed to tackle legacy projects Leads to more productive development and reduces bugs AUDIENCE This book is written for developers and team leads comfortable with an OO language like Java or C#. ABOUT THE TECHNOLOGY Ansible is an open-source software platform for configuring and managing computers that has recently been gaining a lot of traction. Vagrant is computer software for building complete development environments."--Provided by publisher
546 _aEng
650 _aComputer Science
650 _aSoftware Re-engineering
_915496
942 _cBK
999 _c142506
_d142506