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.

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
  • Functional Programming
    • Purity
    • Immutability
    • Higher Order Functions
  • Code Smells
  • Refactoring
  • Simple Intro
    • Architecture
    • MVC, MVP, MVVM
    • TDD, BDD and ATDD
    • DDD
    • Microservices

Exclusions

Anything not mentioned in Topics

Software Requirements

IDE of choice for hands-on

Internet Requirements

Good unrestricted 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

If you have any query, please contact now.