I just finished watching this great video of a presentation of Joshua Bloch did at JavaPolis about API design. Yeah, Josh is the author of the must read book Effective Java and actually is working on a second editition. The presentation is titled “How to Design a Good API and Why it Matters”.
Check it out at infoq.
The whole presentation is just plain excellent and littered with good ideas and interesting quotes like these:
- If you program, you are an API designer
- APIs can be a among a companies greatest assets.
- Public APIs are forever.
- A good API should be hard to misuse.
- Gather requirements with a healthy degree of skepticism.
- When in doubt, leave it out.
- Making things as inaccessible as possible maximizes information hiding.
- Don’t make the client do anything the module could do to reduce the need for boilerplate code.
and a lot more in detail. It is over an hour long but well worth it and ends with this great conclusion
API design is tough. Perfection is unachievable, but try anyway.
so I will go back to work coding planning and coding away trying to get closer to perfection