Skip to content
#Architecure

Application architecture and design errors - Rustam Akhmetov - Joker 2022 (Category Architecure)

#Architecure #Architecture #SoftwareArchitecture #SystemDesign #Engineering

Interesting. report from Rustam Akhmetov on the architecture of how to organize your application code. The author approached the projectile thoroughly and made an overview of all common architectural options, making references to the original articles, where they were first recalled. First, the author says that good code architecture and structure helps us fight complexity. This means that beginners on the project, having opened the IDE, will easily be able to understand how it works and how to benefit without a long study, and how it is customary to spread the code by folder:)

The main points of the report are as follows:

  • Horizontal Design This is a familiar layered architecture. This is how code was written for a long time and there was usually division into presentation tier, app tier, database tier. This approach has been dominant for a long time, it still dominates today, but gradually it has absorbed the advantages of other approaches. By the way, sometimes the tiers were more than three:) For example, in 2003 The year the book appeared.Domain-Driven DesignRick Evans and began to appear a separate doaimn layer - Vertical design This approach appeared in the nineties and was needed to scale the team so that individual sub-teams could work autonomously. As a result, separate isolated modules within the application appeared inside the monolithic application. (Modules divided by domain or function n). It was the prototype of microservices. By the way, now it is becoming popular vertical slice architecture, which I have already told Designing for Change with Vertical Slice Architecture – Chris Sainty This approach is good for small applications - Hexagonal - 2005 year suggested Alistair Cockburn. The point was to make external abstractions work well in individual modules. The novelty here is to isolate business logic from external integrations. But how to organize it at the code level Alistair did not show. - Onion - bulb architecture was described into 2008 Jeffrey Palermo took the same idea as hexagonal architecture, but showed how to do it at the application level and make it not circular, but layered: separate folders for interactions, a separate folder for business logic, a separate folder for object data model. - Clean Architecture - suggested into 2012 Uncle Bob (Robert Martin), which tried to combine hexagonal and onion and separate business logic from external dependencies, which included frameworks. In general, the idea has become popular, but the dogmatism of Uncle Bob prevents it from being taken seriously.

Next, the author considered the modern hexagonal architecture from NetflixFrom the point of view of the author, it is more like modern layered architecture:) In life, the author proposes to turn this hexagon from Netflix into layers something like this: input.> adapter -> app core (service layer) -> adapter -> output.

Next, the author shows demos of how all kinds of architectures look in code and what they have advantages and disadvantages. Everything looks quite clear, so I recommend the demo for viewing.

#Architecture #SoftwareArchitecture #SystemDesign #Engineering