This class covers the fundamental principles of object-oriented design and discusses a range of practical techniques for identifying, structuring, and verifying class designs to be implemented in Perl.
Topics covered include:
- Design principles
- Doing one thing well
- Changing behaviour without changing code
- Safe derivation
- Lean interfaces
- Minimizing dependencies and getting them right
- Design process
- Identifying the objects in the system
- Inferring the classes and their hierarchy
- Selecting appropriate methods
- Recognizing standard usage patterns (and antipatterns)
- Design pragmatics
- Designing for Perl’s style of OO
- Class independence and cohesiveness
- Sufficiency vs completeness
- Inheritance vs composition
- The Law of Demeter (and when to break it)
- Measuring your design
- An OO design check-list
1-day or 2-day seminar
Developers who are familiar with the basics of OO Perl, but who want to improve their skills in designing object-oriented classes, hierarchies, and frameworks