Agile Coach
  Home   About Us   Blog   Slides  

 

  Onsite Training  

Design Principles & Patterns Workshop

     
 
  Agile Overview
- 1 day
 
 
  TDD and Refactoring Workshop
- 3 days
 
 
  Object Bootcamp
- 3 days
 
 
  Design Principles and Patterns Workshop
- 4 days
 
 
  Project Automation Workshop
- 2 days
 
 
  Agile Project Management Overview
- 3 days
 
 
  Scrum Overview
- 1 day
 
 
  eXtreme Week
- 5 days
 
 
  Agile Testing Workshop
- 2 days
 
 
  User Stories Workshop
- 2 days
 
 
 
Objectives

  • Obtain a strong, fundamental understanding of Smalltalk style Object Orientated Development
  • Understand basic OO design principles and see how they apply to real world problems
  • Learn to recognize code smells and understand how they violate the design principles
  • Experience the power of automated refactoring and learn the different approaches to it
  • Obtain an excellent understanding of 10+ design principles and 30+ design patterns
  • Experience hands-on, refactoring to and away from patterns during the lab sessions
Course Outline

This workshop is completely hands-on with lots of labs, discussion and more labs to get first hand experience to Object Oriented Development using Design Patterns. The workshop is broken down into 2 parts. Participants will also learn the technique of refactoring existing designs to use patterns - from Joshua Kerievsky's book, Refactoring to Patterns.

We believe that just talking about Principles and Patterns is a very inefficient way to learn them. Hence this workshop is structured such that we quickly present a pattern, show a few examples (both good use and misuse) of the pattern followed by a Lab that gives the participants an opportunity to actually experience patterns in action. Participants will practice Pair-Programming, TDD and Refactoring during the labs.

  • Part I: OO Design Principles like
    • Open Close Principle (OCP)
    • Single Responsibility Principle (SRP)
    • Tell, Don't Ask
    • Don't Repeat Yourself (DRY)
    • Law of Demeter
    • Dependency Inversion Principle (DIP)
    • Liskov Substitution Principle (LSP)
    • Interface Segregation Principle (ISP)
    We'll also look at the Art of Unix Programming, to understand some Unix gems.

  • Code Smells defined by Martin Fowler & Kent Beck in their book Refactoring: Improving the Design of Existing Code. In addition, you'll learn about some new smells that have been categorized by Joshua Kerievsky and his colleagues.

  • Part II: We'll discuss about 10 Design Patterns each Day from these categories:
    • Creational Patterns
    • Structural Patterns
    • Behavioral Patterns
Note: During the workshop, we require each participant to have a copy of the following 2 books:

Software Required:
 
 
 
 
      Licensed under
Creative Commons License