Compartir
LEGACY C++ REFACTORING AND TESTING IN PRACTICE: Safely Transform Large C++ Codebases with Characterization Tests, Modern C++, CMake, and Continuous Integration (en Inglés)
Smith, Joseph (Autor)
·
Independently published
· Tapa Blanda
LEGACY C++ REFACTORING AND TESTING IN PRACTICE: Safely Transform Large C++ Codebases with Characterization Tests, Modern C++, CMake, and Continuous Integration (en Inglés) - Smith, Joseph
Libro Nuevo
Importado
Envío: 10 a 14 días háb.
47,01 €42,30 €
Reseña del libro "LEGACY C++ REFACTORING AND TESTING IN PRACTICE: Safely Transform Large C++ Codebases with Characterization Tests, Modern C++, CMake, and Continuous Integration (en Inglés)"
Every engineering team has a codebase like this one: old enough to carry real institutional knowledge, tangled enough that nobody fully trusts it, and critical enough that nobody is willing to rewrite it from scratch. Legacy C++ Refactoring and Testing in Practice is a hands-on, technically rigorous guide to safely transforming exactly that kind of system — without breaking what already works. Built around a single recurring, realistic C++ codebase, this book walks through the complete discipline of legacy modernization: exploring unfamiliar code with confidence, building characterization tests that pin down real behavior before you touch it, introducing seams to make untestable code testable, and refactoring safely with modern C++ — move semantics, smart pointers, enum class, RAII, and more. From there it goes deeper: untangling raw memory management with unique_ptr, shared_ptr, and weak_ptr; breaking apart oversized "God classes"; modernizing a legacy CMake build into a clean, target-based one; fixing real concurrency bugs with ThreadSanitizer; redesigning error handling with explicit result types; and wiring the whole safety net into continuous integration. The book closes with a full capstone project that applies every technique, in sequence, to a complete production-style system — and a chapter on planning and sequencing a modernization effort across an entire team, not just a single file. This is not a beginner's C++ tutorial, a design-pattern catalog, or a call to rewrite everything from scratch. It's a practical playbook for engineers who inherit large, aging C++ systems and need to make them safer to change — one verified step at a time. What you'll learn: How to investigate and map an unfamiliar, undocumented C++ codebase How to write characterization tests that capture real behavior before refactoring How to introduce testing seams without changing production behavior How to modernize memory management, build systems, and error handling safely How to find and fix real concurrency bugs with sanitizers How to build CI pipelines that enforce the safety net automatically How to plan and sequence a legacy modernization effort across a team Written for working C++ engineers — not a textbook author's blank-page example, but a guide grounded in the fact that your production system already has users, assumptions, and behavior that can't simply be thrown away.