A network of sites, tools, and technology to bring ideas into reality.

The Digital Tumbleweed

Thoughts and ramblings of an enthusiast

Effective API Design

When I sit down to write an application I usually try to come up with some prototype of how I think the code base should be designed. Many times this prototype is off in one way or another, but it allows me the ability to modify the functionality easily. Prototyping the API allows me to better design the architecture. Once I’ve decided on the architecture and API I can then have other people implement additional functionality atop the API I’ve created. However, once I’ve exposed this API it becomes increasingly more complicated to refactor naming and functionality of the API.

The other day I was searching for some Java related information and found a lecture given by the author of the book Effective Java, Joshua Bloch. I listened to the whole talk and read through his slides and he really hit the nail on the head. He makes references on how to design API, how to develop methods, how to decide on parameters, etc. He even comments on effective documentation, a major side of dev. that developers choose to skip, including myself.
Video in Flash (about 1 hour 9 minutes) - http://www.infoq.com/presentations/effective-api-design
Slides in PDF - http://lcsd05.cs.tamu.edu/slides/keynote.pdf

Leave a Reply