Jump to ratings and reviews
Rate this book

The Legacy Code Programmer's Toolbox

Rate this book
"This is a warm and reassuring book that will equip you to read, understand, and update legacy code in any language."
--Kate Gregory
"It is easy to forget that outside the world of software development, the word legacy has another meaning. A positive meaning, a gift of wealth from the past to the present for the future. This book will help you reclaim the word."
--Kevlin Henney
If you're like most software developers, you have to deal with legacy code. But working with legacy code is challenging! This book will teach you how to be happy, efficient and successful when working with legacy code.
Here are the skills that The Legacy Code Programmer's Toolbox will teach
- how to deal with legacy code efficiently and with a positive approach,
- 10 techniques how to understand legacy code,
- 5 ways to reduce the size of long functions,
- a technique to turn legacy code to your advantage to improve your programming skills,
- how to be in a motivated mindset,
- the power of knowledge of your codebase, how to acquire it and make every person in your team acquire it too,
- how to find the source of a bug quickly in a large and unfamiliar codebase,
- where to focus your refactoring efforts so that they make your life easier,
- and many more things to be efficient and happy when working with legacy code!

210 pages, ebook

Published January 31, 2019

13 people are currently reading
95 people want to read

About the author

Jonathan Boccara

2 books4 followers

Ratings & Reviews

What do you think?
Rate this book

Friends & Following

Create a free account to discover what your friends think of this book!

Community Reviews

5 stars
7 (16%)
4 stars
14 (33%)
3 stars
18 (42%)
2 stars
3 (7%)
1 star
0 (0%)
Displaying 1 - 7 of 7 reviews
Profile Image for Nikos Koukis.
34 reviews1 follower
April 16, 2019
An excellent book to read. Teaches you a nice set of rules and good practices for working with code you're uncomfortable with. I'm feeling a lot more confident working with legacy code since I read it and I'm also planning to extend the tools of my editor based on the author's suggestions.
114 reviews19 followers
May 25, 2022
Although a fairly quick read, I thought this book had some good tips/guidelines to help developers navigate a legacy code base. I greatly appreciated the author's choice of opening the book with a chapter on getting yourself into the right mindset before you start looking at a legacy codebase. I know I myself am guilty of not having enough empathy for the author from time to time. While some of the editing mistakes were a little jarring, and the code samples a little too complex for my taste, overall I think this book is worth it if you do any kind of software maintenance.
204 reviews
March 18, 2021
Rating depends on audience - this would be a good book for someone just out of college in their first commercial programming job.

Otherwise the standout chapters are 4 and particular 5 on speed reading legacy code.
Profile Image for Michael Hall.
22 reviews
October 21, 2024
I had this book sitting on my desk for a few years, recommended by a coworker. Life got busy. I decided to pick it back up and finish it! Here’s some of the insight I’ve learned from it.

The author begins by defining legacy code as code that is hard to understand, uncomfortable to change, and causes concern. Attitude plays a significant role in how we approach legacy code. There’s the natural mindset, often negative, versus the effective mindset, which is more constructive. We can choose to understand legacy code as a solution to past problems accumulated over time and recognize it as a reason we have jobs.

A few pieces of advice the author shares:

* If you don’t like a piece of code, reflect on why.
* Read good code to learn new problem-solving techniques.

He also outlines three techniques for gaining an overview of unfamiliar code:

1. Choosing a stronghold: Start from a code section you understand.
2. Analyzing inputs and outputs: Focus on how the program receives and returns data.
3. Well-chosen stacks: Set breakpoints to inspect the call stack during execution.

Knowledge is key. Legacy code is challenging primarily due to a lack of understanding. Writing valuable documentation can help spread knowledge within the team, so it’s crucial to keep it aligned with the code. Presentations, pair programming, and external meetups are great ways to share insights.

The author discusses strategies for finding a bug, echoing some methods familiar to our engineering team. The quickest way to find the source of a bug:

* Step 1: Reproduce the issue.
* Step 2: Start with small differences, then move to larger ones.
* Step 3: Formulate and validate a hypothesis.

Lastly, the importance of strategic refactoring is emphasized—knowing what to fix to maximize value while minimizing costs is vital.

If you’re seeking to grow as a developer, I recommend this insightful read!
Displaying 1 - 7 of 7 reviews

Can't find what you're looking for?

Get help and learn more about the design.