This class explains how to create better code interfaces to your Perl modules, libraries, and frameworks. Good API design is essential to good software development because, from the point-of-view of the users of your modules, the API is the software.
The course explores current theories of what makes for a good API and gives many practical examples, drawn from real-world Perl modules, of both good and bad designs.
Topics covered include:
- The characteristics of good APIs
- Learnability
- Affordance
- Elegance
- Comprehensiveness
- Optimality
- Integrity
- Extensibility
- Transparency
- Good (and bad) API design approaches
- Design by archaeology
- Design by coding
- Design by fiat
- Design by implementation
- Design by feedback
- Design by addition
- Design by subtraction
- Evaluating an API
- API metrics
- Automating your API policies
- An API check-list
1-day seminar
Perl developers who understand the basics of Perl coding but who are looking for faster, safer, and more powerful ways to build modules, classes, or applications.