Factor 2: Dependencies — Gather All Your Ingredients Before You Start Cooking

Venkatachalapathi Narayanan
3 min readOct 6, 2024

--

Hello, fellow readers! Thanks for stopping by. Let’s delve into something insightful.

Imagine you’re getting ready to cook your favorite dish. But before you even step into the kitchen, what’s the first thing you do? You make sure you have all your ingredients! You don’t want to get halfway through the recipe and realize you’re out of flour or missing a key spice. Factor 2: Dependencies is all about making sure you have everything you need before you start cooking (or, in this case, before your app starts running).

AI Generated image credits to DELL-E

In software, these ingredients are called dependencies — things like libraries, frameworks, and external tools that your app needs to work. To avoid any last-minute surprises, it’s crucial to explicitly declare and manage these dependencies up front. Just like a chef gathers ingredients in one place before starting a recipe, developers should clearly state all the tools their app relies on, so the app can run smoothly in any kitchen (environment).

Why Is This Important?

Let’s break it down:

AI Generated image credits to DELL-E
  • Consistency: Just as you wouldn’t rely on your kitchen magically having the ingredients you need, you shouldn’t assume your app’s environment has the necessary tools. By explicitly declaring dependencies, you ensure that your app has the same “ingredients” every time it runs.
  • Portability: If you pack all your ingredients, you can cook your favorite dish in any kitchen. Similarly, when your app has its dependencies bundled and managed, it can run anywhere without worrying about missing something crucial.
  • Simplicity: Clearly listing out your ingredients saves time and avoids confusion. In the same way, explicitly declaring dependencies in software makes it easier to understand what your app needs to function, making it simpler for other developers to work with your code.

A Quick Example

Think of baking a cake. Before you start, you gather flour, sugar, eggs, and butter. You don’t assume every kitchen will automatically have these ingredients. The same principle applies to software: list out all the libraries and tools your app depends on, so it can run without issues, whether it’s in development, testing, or production.

Wrap-Up

Factor 2 teaches us the importance of gathering and managing dependencies before running an app, just like collecting all ingredients before cooking. By explicitly declaring what your app needs, you can ensure smooth cooking (or smooth running!) no matter where it’s deployed. Stay tuned for the next factor, where we’ll discuss how to store your app’s configuration in a flexible and efficient way.

--

--