Presented at DevNexus 2014 in Atlanta, GA.
In this day and age it is pretty common to design a large-scale web
application as a collection of modular and reusable components. These
components need to have a reasonable set of APIs (application
programming interfaces) which deliver against the stipulated
engineering criteria. In addition this API set needs to retain ease of
use. The success of a module is thus reflected in the way it is being
used in other modules. This talk is intended to initiate the
discussion on finding the principles for designing a good JavaScript
API by observing the interactions between modules, particularly on the
influence of an interface on the code patterns. Some good and bad
examples found in real-world libraries will be shown, along with a
collection of language tools designed to detect and analyze those
patterns.