Arquitetura Hexagonal: explica que é importante separar em termos de design, as camadas de resource
que lida com acesso a dados, application
que lida com as regras de negocio e drive
que lida com a API.
Design: tem a ver com a separação de responsabilidades, camadas, patterns para resolver problemas comuns e arquitetura tem a ver com linguagem, framework, tipo de banco de dados, etc.
DAO (Data Access Object): é um padrão de projeto que encapsula o acesso aos dados em uma camada separada, permitindo que a lógica de negócios não tenha conhecimento direto das operações de acesso aos dados. Isso significa que a lógica do negócio permanece agnóstica em relação ao tipo de banco de dados ou a tecnologia de persistência usada, o que tem várias vantagens.
Interface: nos permite testar de forma isolada os drivers e resources sem que tenha um acoplamento da regra de negócios. Chamamos isso de driver port
. Já os métodos que serão utilizados, ora batendo na camada de resource, ora simulando o comportamento com dados em memória (mocks), são chamados de adapters
. Dai vem o conceito de ports and adapters
na arquitetura hexagonal
Buffer: é um array de bits que representam um dados
Design Patterns: é focado na descoberta e na documentação de soluções reutilizáveis para problemas já existentes. Cada contexto merece seu pattern, e isso não é uma regulamentação.
Os padrões mais básicos e de baixo nível são comumente chamados idiomáticos. Já os padrões mais universais e de alto nível são os padrões arquitetônicos, que podem ser usados para arquitetar toda uma aplicação.
Criacionais
: