1-3: "Software Architecture"

It is incredible the importance of the software architecture. Sometimes (certainly most of the times), this step in the software development, we tend to not pay the correct attention to this step and that will lead our development to critical points (in the future).

It is important to take the time you need to accomplish this step in order to develop programs that has the opportunity to scale and become bigger and bigger with the less programming work adapting the classes in order to deliver the new functionality that the client asked.

Also, it is important to know all the different kind of architecture that exists in order of being able to select the right one depending of the software project you are working in. Some of this different software architectures are the following ones:

  1. No architecture: Yes, it is weird to consider this, but it has a reason why to consider it. In this architecture you do not count with no architecture, this is a horrendous mistake because if you do not count with at least one architecture your project will be condemned to fail or to be difficult enough to modify and scale.
  2. Layered Architecture: This architecture is the most used and common in the industry. This architecture describes a system as a hierarchy of layers.
  3. Pipe and Filter Architecture: This architecture models the logical flow of data through a system.
  4. Client/Server Architecture: This architecture separates functionality into two key pieces: The client part and the server part; this architecture, it is also called Two tier architecture.
  5. Component based architecture: This architecture decentralizes control and splits it into a number of separate collaborating components rather than a single monolithic structure.
  6. Framework: Last but not least, we have the framework architecture, this kind of architecture is an extensible library of code that forms a reusable design solution for a particular problem domain.

But it is important to keep in mind that if you want to achieve a good architecture design you need it to be simple. Also, you have to find the equilibrium between having lots of components and having few components. Remember that the architecture design identifies the key components of the system and how they interact, it does not define how they work.

Comentarios

Entradas populares de este blog

Summary Second Period

2-3: Microservices

2-4: Understanding the SOLID Principles