Pragmatic Design Patterns with Spring EN

Дата: 4 апреля 2019, начало в 10:00

Место: Москва, ул. Волочаевская, д. 5, корп. 1, офис КРОК Москва (ст. м. Площадь Ильича/Римская)

Назад к тренингам
Victor Rentea — Independent Trainer

Victor Rentea
Independent Trainer


Sr. Architect, Developer and Technical Lead at IBM, for major client. Independent Trainer and Coach. Faculty Lecturer ("Design Patterns"). PhD(CS).

A passionate Clean Coder with a very dynamic and interactive presentation style, spiced with jokes, metaphors and easy-to-remember visual representations. Having delivered hundreds of hours of training and coaching for major players in enterprise Java development, Victor got to introspect a huge variety of enterprise projects. His quest is to make you think deeply, learn to introspect your design.

Описание тренинга

Design Patterns are a powerful weapon. So powerful that in the wrong hands it can get you to horrible overengineered code. Mastering the underlying principles and knowing why, how, the cost and nuances of applying a pattern can have a huge impact on code quality on the long run.

Since the classic GoF book, design patterns have evolved dramatically: many have died, a few amazing ones were born while others became incredibly simple to implement with Spring and Java 8. However, the underlying principles never changed. We will take a Software Craftsmanship approach to those principles, always aiming for clean, maintainable and testable design.

Designing simple code is hard! Redesigning existing code is even harder but often imperative when facing legacy, or when you aim for a minimalistic emerging architecture. You should attend to this workshop if you want to:

  • Design clean code that is simple, expressive, unit testable yet flexible
  • Become more proficient in the fundamental design concepts and principles
  • Grow your skills to refactor existing/legacy code
  • Learn more about Spring's magic

By solving a series of exercises, you will learn how to:

  • Break down complex problems in simple patterns
  • Avoid over-engineering and rigid code by keeping your design to a minimum
  • Recognize patterns in existing code to understand its intention
  • You will also discover many things you didn't know about Spring, even if this is not the main goal of the course


  • Design Principles and Concepts: SRP, DRY, KISS, YAGNI, SOLID, Beck's
  • Singleton, a stateful, burdened life, vs other lifestyles
  • Adapter, the anti-corruption Layer of DIP
  • Decorator and Proxy, the "magic" of Spring
  • Facade, and an approach to evolutionary architecture
  • Observer, and event-driven Spring components
  • Iterator and Stream, as a concept
  • Strategy and Chain of Responsibility, an application of SRP
  • Command, and asynchronism
  • Template Method, and its death by…
  • Passing a Block, the best of functional programming
  • Anti-Patterns, and some workarounds
  • Final Test + awards.

The course is a mix of slides, brainstorms and a lot of exercises distilled from real problems, implemented with Spring Boot.

Парковка для участников

Для тех, кто хочет приехать на машине, есть бесплатная парковка. Чтобы ей воспользоваться, нужно предварительно подать заявку.

Укажите марку, цвет и госномер автомобиля в поле комментариев при заказе билета.

Если вы уже купили билет и хотите воспользоваться парковкой — пишите на почту