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: |
|
|