DEV Community

Anton Bahurinsky
Anton Bahurinsky

Posted on

How to design the architecture of your next web app?

So you've got a new contract about developing a brand new web application, your client has provided the technical requirements to you. You have also chosen the development stack for you future programming masterpiece: e.g. React for the client, Node.js for the server, perhaps a DBMS etc.

Now your task is simple: not to kill the web application before it is even born by avoiding mistakes in critical design decisions.

So where to start this process?

This first thing you must understand at this point is that the primary object your web application works with is data.

The data usually has its predefined structure. For example, if you are developing a new e-commerce application, you know that there will be products, cart items, orders and so on, and each product, for example, will have its title, price, description, image list etc.

This is how you usually define the structure of your data, and this is where it gets split into entities.

Thus, defining data entities is the first step of designing the architecture of your future application, since an entity within the app defines:

  • a module on the React client;
  • a module on the Node.js server;
  • a table/collection in the database;
  • an end-to-end test (manual or automated).

All these compose a logical module (or feature) of your application. So now, when you have defined your first module, you know where and how to start the development process.

It is also worth noting that data entities (and respectively the modules) may depend on each other. Therefore, defining dependencies between modules (and avoiding circular dependencies, of course) will help you to prioritize development tasks. And if you have a team of developers, this will also help you to split the tasks between them.

Hope this article was useful for you. Give a like to this post and hit that "Follow" button!

Don't stop coding, don't stop growing!

Top comments (0)