Difference between Architecture and Design

2o5P...cmGf
7 Dec 2022
80



There can be a great misunderstanding when it comes to design and architecture. As for me, when at the beginning of my career, I didn’t know the difference, but today I can see it clearly and I’ll show you how to do it.


Design (Code Design)

Let’s start talking about architecture from code design.

When you start the project you need to plan how the code structure will be created, what are the layers that you need to build, and how these layers communicate between them.

Classic example:


Many applications have modules so, you need to plan how you define the responsibility for each of them, for example.
There are many ways for you to write a good code design that is scalable with business context, that’s why we have the Design Patterns.

Here is what I used in my day by day

  • Strategy
  • Proxy
  • Builder



Architecture


The architecture plan the infrastructure, at a high level, the components of the application with deal of the business. For example, if your product needs to be modified fast you need an architecture to be extensible, scalable and viable.

A classic example is a microservice architecture, which is very popular when you think about building an application from the cloud because it’s easier to scale a service with cloud tools, and you gain other important tools like monitoring tools, for example, that are very important to this architecture and you need to plan how you monitor your microservice application too.

You need to know about the non-functional requisite to build the application architecture, it’s another important point that helps you to plan your architecture.

You also need to know the project cost, as I mentioned, architecture needs to be viable.

When planning the system architecture we need to separate the domain application, the communication between them, how this communication will be fault tolerance, and how will be the infrastructure will be (on-premise or cloud).


Architecture Style

  • Microservice Architecture
  • Monolith Architecture
  • Serverless



Communication Style

  • Synchronous Blocking
  • Asynchronous nonblocking



Synchronous Blocking

  • Request Response — Rest Over HTTP, RPC



Asynchronous nonblocking

  • Queue — Amazon SQS
  • Topics — Amazon SNS, Google PubSub



Conclusion


Code design is how the application code structure will be implemented, how will be the responsibilities for each class, domain in your application, how the modules will be structured and will be the communication between modules layers.

Architecture plan the segregation (if necessary) between the components at a high level, how will be the responsibilities of these components, and how will be the communication between them.


Get fast shipping, movies & more with Amazon Prime

Start free trial

Enjoy this blog? Subscribe to andrelucas

5 Comments