Building Great Java APIs
As developers we build on the shoulders of giants - using APIs developed by others to propel ourselves further forward. Frequently we also find ourselves in the position where we must provide our own APIs for other developers to use. Building a Java API is not without perils - we must know the features of the language extremely well, we must understand the implications of breaking compatibility, we must own many other responsibilities such as creating excellent documentation, and most importantly, we must practice restraint. This presentation will touch on some of the considerations that should be made when designing an API, and point to other places to learn more.