MEAN stands for the first four letters in a set that includes MongoDB, Express, Angular, and Node.js. Similarly, LAMP consists of Linux, Apache, MySQL, and PHP. Additionally, there are many other acronyms with similar meanings, such as JAM Stack, T3 Stack... By now, you surely know that this is a set of technologies that help create a complete website or web application, right?
Back in school, I was very fond of PHP and worked on many projects based on PHP. At that time, I used a Windows computer, so the toolkit I used was WAMP, which means replacing Windows with Linux. Back then, just knowing WAMP was enough to do quite a lot, from landing page websites to e-commerce sites. I thought there was nothing I couldn't do. When it was time to graduate, the name Node.js suddenly became a hot topic online. I curiously read about it but didn't understand anything at all. Probably because it was different from PHP, which I had been using; from coding to deployment processes, everything was different. Yet, during my internship, I ended up working in a JavaScript/Node.js position. Honestly, I can't remember how I managed it!
For those who are new to JavaScript or Node.js, the name MEAN is hard to forget. It's like an unwritten rule that people won't ask why it's MEAN and not something else. Many people strive to master MEAN because it’s said that this toolkit has received a lot of attention and makes it easier to find a job. I am no exception; this name followed me for quite a long time, sleeping and waking up with MEAN.
MEAN, LAMP, WAMP... or many similar names act as the backbone of applications. That is, with just these minimum components, the system can operate. However, in reality, this is not enough. There are still many other components involved in the software system, all of which play a role in ensuring it operates stably and efficiently. Together, they form a Tech Stack.
So what is Tech Stack? Is it important? What benefits does understanding it bring us? Hopefully, readers will find the answers in today's article.
Tech Stack (also known as "technology stack") is a collection of technologies, programming languages, frameworks, libraries, and tools used to build and deploy an application or software system. Specifically, a Tech Stack typically includes Front-end, Back-end, Database, and supporting tools.
Front-end (FE) and Back-end (BE) need no further explanation. FE is responsible for everything the user sees and interacts with. Meanwhile, BE handles the core logic of the application. The Database (DB) is an essential part of modern applications; anything that needs to be stored almost always requires a database.
It is easy to see that MEAN, LAMP, WAMP... meet 3 out of 4 criteria, meaning they include FE, BE, and DB. So what are the supporting tools? They include all the remaining components such as Windows, Linux (environment), source code management tools (Git), testing, deployment (CI/CD), and other DevOps tools. In short, any component that participates in the software system.
So how do we define supporting tools? Well, it is closely related to system architecture.
System architecture refers to the way components are organized, structured, and divided within the system to ensure performance, scalability, security, and maintainability. System architecture determines how components communicate and work together (e.g., Monolithic architecture, Microservices, Serverless, etc.).
For example, previously, Monolithic architecture was very popular; all components were in one block, which eliminated communication costs. You only needed FE, BE, DB programming languages, and a server to deploy the system. Nowadays, many people are more interested in Microservices, separating the logic processing parts for increased transparency and scalability. However, this incurs additional communication costs, meaning using communication support tools between systems like Pub/Sub, Message Queue...
If a system needs to handle a large volume of data and requires scalability, we tend to choose additional databases like SQL, NoSQL, or combine them. Additionally, caching techniques to optimize query performance also require suitable tools. Every tool participating in the system becomes a part of the Tech Stack.
That's about the logic and data processing. Another equally important component is the DevOps processes, CI/CD, and automation. This is where many software tools are used by professionals. They lay the foundation for building stability through testing or automatic deployment processes, avoiding human error.
Not only are these tools oriented toward code and programming, but there are also many tools dedicated to analyzing and processing business operations that fall under the Tech Stack as Business Tools.
To better visualize what a Tech Stack includes in practice, readers can refer to the website stackshare.io. This acts as a comprehensive picture of the tools that an operating system uses. The example below shows the Tech Stack of Facebook. How many of those can you name?
Tech Stack plays a crucial role in building and operating an application. It determines how different components of the system are organized, from user interface (front-end), business logic processing (back-end), to databases and other supporting tools.
A carefully chosen Tech Stack not only helps determine the architecture of the application but also ensures optimal performance, scalability, and high security. It also contributes to optimizing the development process, reducing time to market, and facilitating maintenance and upgrades over time.
Understanding and mastering multiple Tech Stacks brings many benefits. When you have knowledge of various technologies, you become more flexible in selecting and combining the most suitable technologies for each specific project. This not only helps solve problems effectively but also broadens your understanding of new technology trends.
Diversity in knowledge also makes it easier for you to switch between different projects, facilitating career development. Imagine, when you know a lot, you can handle many different types of projects and make informed decisions about technology, contributing to optimizing workflows as well as reducing maintenance and operational costs for the system.
What Tech Stack are you using at work or for personal projects? Please share it in the comments below. Thank you!
5 profound lessons
Every product comes with stories. The success of others is an inspiration for many to follow. 5 lessons learned have changed me forever. How about you? Click now!
Subscribe to receive new article notifications
Comments (0)