| |
|
|
Course Outline
|
| We are very tempted to name this workshop as "Object Uncertification Workshop". Object Orientation is one of those things that everyone claims to understand, but very few actual know how to implement it correctly to truly take its advantage. Most people think, since they using Java or C#, they are writing Object Oriented (OO) code. Unfortunately, we see more poorly designed procedural code in OO languages. This workshop is guaranteed to shake some of the fundamental misconceptions about OO.
|
| Objective of this workshop is to help participants truly understand what it means to write OO code. This workshop is intended for developers and designs who have solid experience designing and building OO systems. Don't go by the name, bootcamp does not mean its meant for fresh graduates out of college.
|
| This workshop is heavily influenced by OO design principles and practices followed in the eXtreme Programming community. This is a completely hands-on workshop. Let's actually do stuff rather than just talk about it.
|
Concepts we'll cover in this workshop are:
- OO Design Principles like
- Open Closed Principle (OCP)
- Single Responsibility Principle (SRP)
- Tell, Don't Ask
- Don't Repeat Yourself (DRY)
- Dependency Inversion Principle (DIP)
- Liskov Substitution Principle (LSP)
- Interface Segregation Principle (ISP)
- Basic OO Concepts like
- Encapsulation
- Delegation
- Inheritance
- Polymorphism
- Object Relationships
- Access Specifiers
- Interfaces, Abstract Classes and Concrete Classes
- Packages and Namespaces
- Exception Handling: Mechanism and usage
- Cloning
- Collaboration and Recursion
- Collections
- eXtreme Programming Practices
- Automated Unit Testing & Test Driven Development
- Refactoring
- Evolutionary Design
- Intension reveling, self-documenting code
- Continuous Integration
- Collective Code Ownership
- Detailed Discussion on
- Inheritance v/s Composition
- Evil If
- Getters and Setters break encapsulation
- Evil Nulls
- Untested (unit) code, is not OO
|
|
|