Understanding the software build process
This is my journey to learn the basics of build in the software context.
First, build here, is not about the idea of writing software codes. It’s about the process after the developer’s code is deployed or something in that line.
You may have heard the term “My code is building” or initiated one yourself: knowingly, unknowingly, or mistakenly, don’t be shocked it exists.
So, what is build?
Definition: Build is a process that compiles your codes using all required components, configurations, environment assets, and any other external libraries to produce an executable or usable application.
I hope you get the point, basically the process to produce your result.
Why are we talking about this?
I believe if we look into the build process of applications, and how some build engines handle our codes we will be able to write readable and scalable codes.
What happens under the hood, the process and the way we write codes can help both our users and the developer, You.
Shall we begin?
Picture this, you order shawarma from a restaurant and all you had to do was to give the specifics of your order, “Chicken Shawarma, no sausage, and little hot sauce.” Now I’m hungry.
Now, Picture this, you get a frozen chicken, some veggies, Shawarma bread, and hot sauce. You go home, set the fire, fry your chicken and make your shawarma just the way you want it. This is probably the worst shawarma.
Before you take that break, I may have caused, here is my point. Build could be of two categories, custom or industrial.
I wouldn’t talk much about custom because just like homemade shawarma, custom build is not easy to set up and sometimes may turn out to be a pain.
This type of build is preconfigured for a particular use case. With industrial configuration, like the restaurant analogy, all you do is order the type that suits you.
Now we can order that shawarma, and we know where we want it, on the table or in our hands. Same for the application, on the device, or in the browser.
A fairly reminder that this is about build and not about shawarma 🤣.
Okay, so let’s go on.
Whichever you choose custom build or industrial build, they both achieve the same results. A deployable project. Now let's dive in, not the shawarma.
Types of Build
They are two types of build: Full Build and Incremental Build
Back to our shawarma, for this type of build, the shawarma ingredients are always fresh and every process starts from the beginning not considering if you may have available shawarma or not, it just starts from scratch and gives you new shawarma.
Full build produces a new packaged application every time the build process is initiated, it re-fetches the source files, runs the process from scratch, checks every environment, and deploys a fresh project.
This type of build takes the same time to produce the result no matter the amount of code change.
This is impossible for our shawarma I guess 😂. Also, maybe it is enough before I trigger a shawarma campaign.
Incremental build checks if a built project is present then compare changes and only updates the components or part of source files that changes, without running every process from scratch when a build command is triggered.
This type of build time is dependent on the number of changes in the source file.
An industrial build process happens on the cloud ☁️ in most cases or on a configured tool provided by a vendor. At the basic, it follows the same process.
The system fetches the source code, prepares the environment, fetches dependencies, runs tests if included, triggers the configurations, and finally translates the source code to an executable code or machine-readable depending on the environment.
Hope you got the idea of what build is and how it applies. I also hope I didn’t push you to prepare shawarma while reading this.
Why don’t reach out to me on twitter to talk about build and tech @iNidaname