Patterns-Oriented Software Architecture (POSA) – A pattern Language for Distributed Computing

Li o livro Patterns-Oriented Software Architecture (POSA) – A pattern Language for Distributed Computing. Vi neste uma ferramenta essencial para usar na revisão de conceitos antes de iniciar qualquer tipo de arquitetura. No POSA, eu achei um conceito profissional que serviu até para amadurecer minha visão sobre MVP/MVC e uso de interfaces em geral, contratos, criação de camadas, dentre muitos outros assuntos.

No inicio do ano conversei com um amigo do trabalho sobre várias formas avançadas e utilização de Design Patterns, aplicando todos os modelos GoF em C#. O interessante é que, dentre os mais de 20 patterns, não usamos nem 5.

Nem toda arquitetura de software se resume aos frameworks aos quais estamos acostumados e nem sempre vamos poder usar hibernates, modelos próprios de persistência de dados pelo mundo a fora.Pensando assim e sempre pequisando, eu encontrei nesse livro uma ferramenta fascinante para me auxiliar nas adversidades da indústria de TI pelo mundo.

O Livro POSA usa a engenharia de software em aplicações distribuídas, menciona diferentes arquiteturas, comparando-as e dizendo os patterns que podemos utilizar em cada uma, e também, falando com detalhes sobre cada pattern. Compondo arquiteturas para as mais variadas situações:

  • Suporte a desevolvimento independente e evolução com diferrentes partes do sistemas (layers), criando camadas no estilo OSI.
  • Design que considera mudanças de user interfaces, que podem ser mais frequentes que o dominio das funcionalides (MVC)
  • Design que considera diferentes responsabilidades funcionais de uma aplicação podendo requerer diferentes user interfaces paradigms (presentation abstract control ou MVP – Model View Presenter).
  • Suporte para escalabilidade e adaptabilidade funcional em diferentes cenários de deployment Design preparado para evolução a partir de integração de mudanças não previstas anteriormente (Reflection) Design para processamento de streaming de dados (Pipes and Filters)
  • Design sustentável de aplicações que resolvem tarefas que não contém estratégia de soluções determinísticas ou fuzzy (blackboard)

Por falta de conhecimento, a gente não entende certas construções. Estamos tão acostumados com nosso modelo próprio que perdermos nossa humildade em aceitar o desconhecido.

Gosto muito de arquitetura de software e entendo que não dá para nascer arquiteto. Acredito que precisamos ter no mínimo uma formação em ciência da computação e/ou 5 anos de experiência em projetos, revigorando nosso conhecimento em camadas, orientação a objetos, etc.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: