Design Principles and Patterns

4 Days

gofgraspsolidjavac#any oo lang
developmentdesign

Intermediate

developer

This workshop coaches participants to understand design patterns and principles as tools to manage design complexities of modern software using effective techniques. The course covers the fundamental Design Patterns described in the Gang of Four (GoF) book. All creational, structural and behavioral patterns are covered. On top of that, other useful patterns and principles, like GRASP and SOLID, are taught with hands-on. More than 60 different design topics are discussed. Attendees will learn when and how to use design patterns & principles and, when not to. The program includes most fundamental OO design principles such as Dependency Injection, Open Closed Principle and more. This workshop will be very useful for participants looking to dwell in Microservices Architecture in future. Participants will get simple introduction to Architecture fundamentals, TDD, BDD, DDD and Microservices as well.

Audience

Program is primarily for software developer who wishes to be efficient designer.
This program is very useful for developers who wants to learn Microservices Architecture in future.

Prerequisites

Participant must be able to code using their choice of IDE, object oriented language (C#, Java or any other like Javascript, C++, Python etc.) and its standard library.1

Topics
GoF Patterns
  • Singleton
  • Template Method
  • Strategy
  • Observer
  • Bridge
  • Decorator
  • Factory Method
  • Abstract Factory
  • Adapter
  • Composite
  • Proxy
GoF Patterns
  • Chain of Responsibility
  • Visitor
  • Mediator
  • State
  • Command
  • Prototype
  • Façade
  • Builder
  • Memento
  • Flyweight
  • Iterator
  • Interpreter
Design Principles
  • SOLID+
    • SRP
    • OCP
    • LSP
    • ISP
    • DIP
    • DBC
    • FCG
    • More
  • GRASP
    • Expert
    • Indirection
    • CQRS
    • Controller
    • Dependency
  • Dependency Injection
  • Inversion of Control
  • Packaging
Design Principles
  • Coupling & Cohesion
  • Modularity
  • Hierarchy
  • Abstraction
  • Encapsulation
  • Polymorphism
  • Heuristics
    • DRY
    • KISS
    • YAGNI
  • Purity
  • Immutability
  • Code Smells
  • Refactoring
  • Simple Intro
    • Architecture
    • MVC, MVP, MVVM
    • TDD, BDD and ATDD
    • DDD and Microservices
Exclusions

Nothing significant to mention.
Anything not mentioned in Topics1

Software Requirements

IDE of choice for hands-on

Internet Requirements

Good internet connection is required.

Hardware Requirements

Laptop capable to run MS Office

Classroom Requirements

Projector with HDMI, White Board, Markers with Eraser

Online Requirements

Appropriate meeting software e.g. Zoom, MS Teams
Please make sure that camera, speaker and mic are working

Footnotes

  1. If you have any query, please drop us a line. 2