Software Engineering Principle : Modular !
Today we are going to speak about modularity in Software or as we may say application of first principle thinking while developing.
Modularity is a software design technique that breaks down a software application into smaller, more manageable modules. This makes the application easier to understand, test, and maintain.
In simpler terms it’s like a Lego set. A Lego set is made up of many different Lego pieces, each of which has a specific purpose. You can build different structures with the same Lego pieces, just by assembling them in different ways.
A software application is made up of many different modules, each of which has a specific purpose. You can change or update one module without affecting the other modules, just like you can change or update one Lego piece without affecting the other Lego pieces.
Here are some examples of modular software:
- Libraries:
Libraries are collections of code that can be reused in different applications. This makes it easier to develop applications because developers do not have to write the same code over and over again.
Libraries are similar to toolbox which can be use to fix things around the house. If you need to fix a leaky faucet, you don’t have to go out and buy a new wrench. You can just open your toolbox and use the wrench that you already have.
The C++ standard library(stl) is a collection of modules that can be used to perform a variety of tasks, such as reading and writing files, manipulating strings, and working with dates and times.
- Frameworks:
Frameworks are a set of tools and libraries that can be used to develop applications. Frameworks provide a common structure for applications, which makes it easier to develop and maintain applications. It is like with collection of pre-assembled parts that can be used to build something. If you need to build a birdhouse, you don’t have to go out and buy all the individual parts. You can just buy a kit that has everything you need.
The Spring Framework is a Java framework are used to develop web applications.
- Microservices:
Microservices are a newer approach to software development that is based on modularity. Microservices are small, independent services that can be combined to create a larger application. It is more like neighborhoods in a city. Each microservice is responsible for a specific task, but they all work together to create a larger application .This approach to software development makes it easier to develop, test, and maintain applications.
Amazon Web Services (AWS) is a suite of microservices are used to build and deploy cloud-based applications
Enough for today we will continue exploring more and more in future with examples from various codebases to find a relation between them. If you find any mistakes or have any feedbacks don’t forget to comment or write me an email : mabbas@students.42wolfsburg.de / slack : mabbas