Learn from lecture supported by slides
Solve coding challenges
Complete practical exercises
Participants will experience how design patterns simplify design but also how the design is complicated when patterns are used incorrectly. They will adventure how the design need to be adjusted due to changing requirements.
Design Patterns are common solutions to similar groups of issues. They’ve proved to be useful and helpful due to their reusability and effectiveness. Software Design Patterns were described for the first time in 1994 in book “Design Patterns : Elements of Reusable Software Architecture”. After many years one of the book’s authors - Ralph Johnson - during his talk “21 years of Design Patterns” said “We could have done better, but I think we’ve done pretty well”. Fortunately the need to make use of design patterns is not visible at the beginning of software development. This way we can avoid over engineering and clean the design by applying design patterns when it is really required. Design patterns pays of only behind certain level of complexity. When the codebase grows we begin to miss some design pattern and think “if I only had a strategy / state / chain here instead of nested if-else statements...”. These thoughts motivate us to perform refactoring into design patterns at the correct time - not too early and not too late. This workshop this is a continuation of “Refactoring to Clean Code” training and is based on an assumption that attendees can perform some initial clean-up of codebase. Such a clean-up is allows us to notice emerging design patterns out of the mess of legacy code.
Keynote : 5 Dysfunctions of a Team that impede refactoring Live refactorings that end up with below design patterns
This is a very extensive training and usually it is conducted as one (very extensive) single day. On demand it might be delivered is as 2 days of 4 hours or extended into more content. This lets the developers focus on other daily activities in the remaining part of the day.
Experienced developer, trainer and a speaker on international conferences. Specialised in handling and refactoring legacy code.