When the software or mobile app development process is broken down into layers, we get the frontend or the UI layer, the backend layer, the database layer, and then the DevOps layer. When these layers assemble into a stack, it's called a full stack simply because it incorporates all the necessary pieces to write and deploy complete software products. A developer capable of contributing to all layers of the stack is called the full stack developer.
The frontend or UI layer is what you can see and feel as an experience of using a software product or an app. For example, if you download an app from the app store, you are pretty much downloading a packaged UI layer, which then talks to the data layer on the cloud. Some open-source libraries help you build the UI layers; some popular ones are ReactJS, VueJS, NextJS, and AngularJS.
The backend layer powers the UI layer with data back and forth. While the UI presents data in a nicely designed view, the backend layer ensures it's ready to grab more data from the database layer based on how a user like you and I interact with the UI layer. What you are practically watching right now is being delivered by a backend layer, and the UI layer is playing it over for you. Some popular backend frameworks include NodeJS, Django, Spring Boot, Ruby on Rails, and many others.
The database layer stores all the data and communicates with the API layer. Queries read, store, and modify data at this layer. Some popular database and data storage systems include MySQL, Postgres, ElasticSearch, Redis, etc. And finally, there is the DevOps layer that connects all the layers to make it a complete full stack. The DevOps layer includes all the other layers' integration, testing, and deployment. Some tools and frameworks in this category are Jenkins, GitLab CI, GitHub Actions, etc.
You may have heard terms like the MEAN stack, which is very popular in the JavaScript world. Don't worry if you haven't heard about these terms before. This episode will guide you toward defining your own stack. In the MEAN stack example, M stands for MongoDB (for the database layer), E stands for Express (for the backend layer), A stands for AngularJS (for the frontend UI layer), and N stands for the NodeJS runtime environment for the backend to run on. Similarly, a full-stack developer at Facebook may use ReactJS for the front end because Facebook developed React. In general, the stacks are configured based on what's needed on the team and what the existing codebase is already written in.
No hard and fast rules mandate a software engineer to choose a system, as long as they are making the right decisions on choosing proven systems for each layer that makes up a stack. You can make your stack and give yourself a full-stack developer title as long as you can develop & contribute across all the layers discussed earlier.
Finally, here's a challenge: What would a full-stack at Apple look like for the team that develops iOS apps? Please comment down below with your newly educated guesses.
Full Stack Web Development For Beginners Explained
Please like and subscribe if you are interested in more content like this. Also, comment if you have insights to share.