Refactoring to Patterns

Make code architecture more extendable, readable, testable by applying design patterns.

On the workshop you will

Learn from lecture supported by slides

Solve coding challenges

Complete practical exercises

In the workshop we cover:

Attendees will

  • practice live refactoring towards design patterns
  • learn about chosen design patterns
  • understand how their software development process influences on code quality
  • come up with ideas about adjustments to work organization to achieve cleaner code design

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.

Core ideas:

  • practice of refactoring into selected design patterns
  • understand relation between outcome quality and setup of development process
  • inspire to experiment with quality by adjusting development process

Keynote : 5 Dysfunctions of a Team that impede refactoring Live refactorings that end up with below design patterns

  • Interpreter
  • Chain of Responsibility
  • Template
  • Bridge
  • State
  • Factory Method
  • Abstract Factory
  • Composite / Proxy - if the time allows

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.


Włodek Krakowski

Learn from the best

Włodek Krakowski

Experienced developer, trainer and a speaker on international conferences. Specialised in handling and refactoring legacy code.

Professional training materials

Book with all the slides to make it easier to start using new knowledge at work just after the workshop - everything in one place to recall new functionalities.

Kotlin cheatsheet in a printed, laminated form. Now, you can have the most important elements close at hand — it is the best everyday support for Kotlin developer.

A lot of tasks and questions to practice during workshop. We do our best to make the training as practical as possible.

Kt. Academy materials

Let's talk!

Tell us more about your needs and the level of your team, so we can adjust course material for you and send the right pricing.

Ask for pricing