“All-in-one” application architecture has been used for so much time

It consists on keeping all your data access layer and presentation layer in the same project, in other words: maintain you Front-end and Back-end code together.
Nowadays, there are some people that actually still think that “All-in-one” application architecture is ideal to be used in small projects, those which are not expected to evolve in the future. To be honest, an app development project will always need to expand, at least have some system updates. That’s the reason why your code must always be easily scalable.

Why you should keep separated Front-end from Back-end code?


1. Scalability

application architecture
There is always a chance that your project may need to grow, maybe for business reasons or for system updates reasons. Keeping your data access layer (Back-end) separated from the presentation layer (Front-end)  will give the project flexibility for future changes.

2. Maintainability

The ISO 9126 Quality Model defines maintainability as “The ease with which a software product can be modified to correct defects, modified to meet new requirements, modified to make future maintenance easier or adapted to a changed environment:”.
Applying this info to the app development, separate the business logic from the user interface will strengthen the product’s maintainability. When having two layers, you can give each one a purpose, fix or improve the specific code easily.

3. Work split

Application Architecture
Instead of having a team working on the same layer on a linear way (which can lead to misunderstandings when not having an appropriate project management team), separating the layers will allow the team to split tasks into Front-end and Back-end features. This way, the team can work on a parallel manner and a fast delivery may be accomplished.

4. Reusability

Another advantage of keeping your code separated is to have the capacity of re-use your API. Therefore you can use it for any application you would like to, from internal applications to public-open apps.
This way, you will avoid having duplicated codes at different projects.

5. Independent deploys

There is no need to have a stable version from both sides to make a release, since the Front-end and the Back-end are separated. Independent releases can be done and the development project will have a better agility.
There are many projects that are still being built under the “All-in-one” application architecture. According to my personal experience, separated ends architecture will give a final product  with more flexibility, prepared for future events and with more organized and clearer processes during the development.

Isaac - Developer
Isaac Vazquez Developer