What Is Full Stack Development?
It is almost impossible to create a full-fledged software product using only one technology. This usually involves complete tech stacks – Standard combinations of tools and programming languages. As all software products consist of the client side and a server, there are usually two separate stacks that cover each of the layers. However, there are approaches that can be used to build web or mobile application from A to Z. These are called full stack development.
Accordingly, a generalist that has broad skills across all aspects of product engineering is usually called a full stack developer.
Being considered unicorns due to their rare expertise and versatility, they are in high demand for large companies and startups alike, from Facebook and eBay to Munchery, Betterment or Tinder.
As for the database, almost any MongoDB alternative can be used: MySQL, PostgreSQL, Apache CouchDB or Apache Cassandra.
⊕ Common language, better team efficiency with less resources
⊕ Extensive code reuse
⊕ High performance and speed
⊕ Huge talent pool
⊕ Extensive knowledge base
⊕ Free, open source toolset
Yet, no technology is perfect. Despite all the benefits the full stack approach offers, there is always some drawbacks to be aware of.
Θ Insufficiency with computation-heavy back end
When it comes to heavy computation and data processing on the server side, Node.js is not the best option. There are lots of far better technologies to handle projects like machine learning, algorithms, or heavy mathematical calculations. Having a single CPU core and only one thread, that processes one request at a time, it might be easily blocked by a single computational intensive task. While the thread is busy processing the numbers, your application won’t be able to work with other requests, which might result in serious delays. Yet, there are numerous ways to overcome this limitation. By simply creating child processes or breaking complex tasks into smaller independent microservices, that use more suitable technologies and communicate with your back end, you can handle complex computational tasks in Node.js.
Θ Relatively young technologies
Θ Jack of all trades, master of none?
Θ Drawbacks of every separate tool in the stack combined
As every technology stack, MEAN combines the weak sides of all 4 its elements. Most of them are minor technical limitations, which appear under certain circumstance. However, in order to use the stack, it’s important to realize possible bottlenecks of every tool and adjust your development strategy accordingly.
The Use Cases
- Real-time peer-to-peer applications and services (multi-user chats, social media platforms, online games, collaboration tools)
- The Internet of Things
- e-Commerce solutions
- Fintech products (e.g. real-time stock broker’s dashboards)
- Enterprise web solutions
- Application/system monitoring dashboards, admin panels.
This article is a part of our “The Good and the Bad” series. If you are interested in cross-platform mobile development, take a look at our previous publication on the pros and cons of using the Xamarin platform.