Let's make a contract: The art of designing a Java API | DevNation Tech Talk
An API establishes a contract between the developers that create them and the designers of the software exposing its services through that API. In this sense we're all API designers: our software doesn't work in isolation, but becomes useful only when it interacts with other software written by other developers. When writing software we're not only consumers, but also providers of one or more APIs -- that's why every developer should know the features of a good API. During this presentation we will discuss the standard Java API, as well as real-world examples of and both good and bad API to show the dos and don'ts of API design. We will also discuss the characteristics of an ideal API, like consistency, discoverability, and understandability, and finish with some basic concepts (such as the principle of least astonishment) and how to achieve them.