In this chapter, we have learned about anti-patterns and how to handle legacy code. We discussed forking, templating, customizing, and exact match—the four types of code cloning.
We talked about boat anchors. We also talked about keeping the application code that is no longer in use, which could potentially harm upgrades and confuse developers. To handle the legacy code, we learned how to refactor tables and code while reducing the risk of introducing errors and maintaining the upgrade paths.
In the next chapter, we will combine the Patterns and methodology that we learned in this book into a functional application.