Most of our daily work is dealing with legacy code. Making changes to it, improving its design and writing automated tests is difficult and generates a lot of pain due to its poor design revealed in bad names, long methods, high coupling (usually with the database), poor distribution of responsibilities, etc. In this workshop you will learn how to improve the design of a system through some design patterns and heuristics that we will apply using refactorings, and most importantly, “chaining” them to make important design changes. These changes will allow you to write automated tests, decouple the system from external resources and greatly improve the cohesion, readability and reusability of the system. We will use the automatic refactorings provided by the IDEs to boost productivity. This workshop will change the way you understand the design of a system because learning how to chain refactorings to generate big design changes provides you with a different understanding of the code and its dependencies.
The programming languages and IDEs supported for the workshop are: Java (IntelliJ, Eclipse), Kotlin (IntelliJ), C# (VisualStudio with ReSharper), Smalltalk (Cuis Smalltalk).
Piet Heinkade 179
Amsterdam 1019 HC
Netherlands
Automatic Refactoring
Software Design
TDD
Automated Testing