Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Arquitetura Hexagonal com Symfony

Arquitetura Hexagonal com Symfony

Uma palestra que visa mesclar teoria e código, exemplificando a aplicação na prática.

Começa abordando temas mais básicos como arquitetura de software, e com leves pinceladas em DDD (Domain Driven Design) e SOLID (apenas a letra D do "Princípio de Inversão de Dependência").

Lucas Cavalcante

June 09, 2019
Tweet

More Decks by Lucas Cavalcante

Other Decks in Programming

Transcript

  1. Conceito de Arquitetura de Software A arquitetura de software representa

    a estrutura do sistema, que consiste nos componentes de software, nas propriedades externamente visíveis desses componentes e nos relacionamentos entre eles.
  2. Domínio É a forma para se referir a toda lógica

    do negócio, sejam regras, processos ou propriedades. Em outras palavras, o que o sistema é, o que o sistema faz. (DDD - Domain Driven Design)
  3. Clean Architecture Clean architecture é uma filosofia de design de

    software que separa os elementos do design em vários níveis. A principal regra deste padrão é que a dependência de código só poderá existir entre os níveis.
  4. Onion Architecture (Jeffrey Palermo) Onion Architecture foi criada por Jeffrey

    Palermo para prover uma melhor maneira de construir aplicações com melhores perspectivas de testes, manutenção e dependências.
  5. Definição de Arquitetura Hexagonal Código em camadas com responsabilidades distintas,

    isolando* a lógica da aplicação do mundo externo. O meio usado para a lógica se comunicar com o mundo externo são portas e adaptadores. Portas são interfaces que as camadas de baixo nível expõe, e adaptadores são implementações para as interfaces em si. * O isolamento vale para entrada e saída de dados.
  6. Princípio da Inversão de Dependência DIP diz que devemos depender

    de abstrações, não implementações. Na prática, isso significa que, no contexto de orientação a objetos, devemos fazer com que nossa classe utilize interfaces para receber suas dependências, e não classes concretas. (SOLID Principles)
  7. Business Case Descrição: • Criar uma aplicação que permite aos

    usuários da netflix votar nos seus filmes favoritos
  8. Business Case Requisitos: • Os filmes estão em um banco

    de dados • O filme pode receber nota de 1 a 10 • A média da nota do filme é a média de todos os votos • Os votos serão salvos no banco de dados