Let's make a contract: the art of designing a Java API

Mario Fusco

Invoking an API is what developers do in order to use any software developed by third parties. An API establishes a contract between these developers and the designers of the software that exposes its services through that API. In fact, our software does not work in isolation, but only becomes useful when it interacts with other software written by others. This implies that when we write software we are not only consumers of other people’s APIs, but also providers of our own, which is why we should know the principles and techniques for developing APIs that are pleasant to use. During this presentation we will show several examples, taken from the real world and also from the standard Java libraries, of good and bad design choices. We will discuss what characteristics a good API must have, such as consistency and simplicity of understanding and use, along with some principles it must respect such as minimum surprise, and discover how to achieve them in Java.

JOIN US ON THE 18th OF NOVEMBER 2021