I would like to talk to you about something that has been on my mind lately: Decoupling. No, it’s not any particularly new concept and something I’ve been practicing as a software developer over the past ten years. What I have been thinking about is its application to the web, our software stacks and how I would like to take it further in my own work.
In computer science coupling is the term used to describe how much one piece of code relies on another piece of code and knowledge about the inner workings of that code to be able to use it. Decoupling is the process of separating them so that their functionality will be more self contained.
Decoupling is a good practice as it makes the individual parts easier to maintain and change. In software development we usually start with doing the simplest thing that could possibly work. As long as something delivers what its users expect, implementation does not matter. You could start with a simple, but inefficient implementation just to get things going, and then switch to a more efficient when you need to start to scale without your users being any wiser. Put in other words: The higher degree in wich something is coupled the harder it gets to do something simple.


