Design Patterns 2.0

TRAINING DESCRIPTION

Design patterns have been a classic topic for almost twenty years. However, only a few developers can apply them in practice. One reason is the complexity and subtle nuances of design patterns. This training is unique. We start with existing code and, by applying key principles of object-oriented programming, discover patterns. This way, you don’t have to memorize them. At the same time, the training organizes knowledge about patterns and ensures a complete understanding. The intensive, practice-oriented program ensures that learning design patterns and refactoring equips you with the necessary skills quickly.

We guarantee that you won’t find training like this anywhere else. It is suitable for both beginners and experienced developers. A well-structured program, specific information, and carefully crafted exercises ensure that after this training, refactoring to patterns will no longer be an obstacle.

Enroll Now, Warsaw, 15.05.2025 Order dedicated training

BASIC PROGRAM

  • Module 1: Introduction to Design Patterns
  • Module 2: Code Quality
  • Module 3: Refactoring
  • Module 4: GoF Patterns

DETAILED PROGRAM

Module 1: Introduction to Design Patterns

  • Definition of a design pattern
  • History of design pattern development
  • Classification of design patterns

Module 2: Code Quality

  • Determinants of code quality
  • Code smells
  • Anti-patterns in object-oriented programming
  • SOLID Principles:
    • (S) Single Responsibility Principle
    • (O) Open/Closed Principle
    • (L) Liskov Substitution Principle
    • (I) Interface Segregation Principle
    • (D) Dependency Inversion Principle
  • Practices to improve code quality
  • Strong dependencies in source code
  • Techniques for reducing dependencies:
    • Programming to interfaces
    • Defining interfaces
    • Splitting interfaces
    • Extending interfaces
    • Versioning interfaces
    • Retrospective interfaces
  • Composition vs. inheritance
  • Dependency injection

Module 3: Refactoring

  • Technical debt
  • The Natural Order of Refactoring™:
    • Understand
    • Compose method
    • Extract responsibilities
    • Introduce a design pattern
    • Modify architecture
  • Method composition
  • Code movement
  • Simplifying conditional expressions
  • How tests support writing code
  • Decoupling from external code
  • Managing time and randomness in code

Module 4: GoF Patterns

  • Creational Patterns:
    • Simple Factory, Factory Method, Builder, Abstract Factory, Prototype
  • Behavioral Patterns:
    • Command, Strategy, Observer, Chain of Responsibility, Template Method, Iterator, Mediator, Visitor, State, Memento
  • Structural Patterns:
    • Adapter, Decorator, Facade, Proxy, Bridge, Composite, Flyweight
  • Collaboration between patterns
  • Strategies for implementing patterns
  • Differences between similar patterns