Saturday, June 26, 2021

Reuse, Modularity and Composability in Software

A recent discussion with a team member pointed me in a direction that the word API as used today seems to be squarely targeted at what I understand as Web APIs or REST APIs. Upon continuing that discussion further I understood that there is no clear demarcation in the definitions for certain terminologies.  I am compelled to write this post to clarify my understanding of this topic to myself and perhaps this may be useful to others as well. This post is necessarily very long so that all connected terms are defined in one place. I have had a few discussions around "Reuse", "Modularity" and "Composability" with my friends and team members in the past and I attempt to lay down the terminologies and the definitions from the standpoint of "Reuse", "Modularity" and "Composability". All of these are connected to decomposition.