Book Review: Delphi Legacy Projects
We are only few a years away from celebrating Delphi's thirtieth birthday. Because it has been here for quite some time, many Delphi projects are far from being brand-new, and almost every Delphi developer is or has previously worked on a project that can be considered a legacy project.
Maintaining legacy projects is painful. Moving them to a newer Delphi version is even more so.
A recently published book, written by Delphi expert William Meyer, "Delphi Legacy Projects", can help you ease some of that pain. It will guide the transformation of your legacy projects, help you bring them up to date, and make them more maintainable. Removing cruft, better organization, and less unit cycles can also significantly improve compile speed and IDE memory consumption.
The book starts with an analysis of general problems in legacy projects and then presents strategies, one by one, that will help you tackle each individual problem. From project management issues, through dealing with 3rd-party components, and inevitable unit cycles, to excessive coupling of code.
But legacy code does not suffer only from big problems. It can also experience a death of a thousand paper cuts. Following good coding practices and cleaning code on a small scale will eventually have a positive impact on a larger scale, and starting by solving small problems makes it easier to deal with larger ones.
The book covers good coding practices in all areas and stages of development: From avoiding small mistakes in day-to-day code, to handling larger-scale refactoring, general design practices, SOLID and other design patterns, as well as introducing testing to projects that have none or very little automatic testing implemented.
The last chapters offer an overview of many useful tools and IDE plugins that will help you not only in your legacy project transformation journey, but also in everyday coding.
Legacy projects are not just the ones started ten, or twenty years ago. Your brand new shiny project can and will become a legacy one if you don't pay attention. The same bad coding practices and mistakes that made old legacy projects into unmaintainable jungles will slowly creep in and turn any new project into the same. This book also provides valuable advice that will prevent you from repeating the same mistakes, and allow your new projects to age more gracefully.
No matter what your level of experience is, whether or not you have to deal with legacy projects, this book is a valuable source of information and insights for every Delphi developer.