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

Padrões Arquiteturais, muito além do MVC | Python Brasil 2017 | PyBR[13]

Darlene
October 08, 2017

Padrões Arquiteturais, muito além do MVC | Python Brasil 2017 | PyBR[13]

Sempre que iniciamos um novo projeto queremos que ele seja perfeito, o código tem que ser bem escrito, com alta coesão, baixo acoplamento, SOLID, KISS, DRY, YAGNI, testes automatizados e padrões de código, mas um ponto que nem sempre refletimos é sobre a estrutura da aplicação.
Meu objetivo nessa palestra é apresentar alguns padrões arquiteturais (MVC, event-driven, microservices e pipe and filter) em Python, utilizando exemplos de frameworks como Django, Flask e Tornado, e te ajudar a entender como eles funcionam.

Darlene

October 08, 2017
Tweet

More Decks by Darlene

Other Decks in Programming

Transcript

  1. • Estrutura (como o sistema é dividido) • Componentes (partes

    integrantes do sistema) • Interação (como os componentes se relacionam e comunicam) ARQUITETURA
  2. Estrutura Memória Compartilhada Mensageria Sistemas Adaptativos Sistemas Distribuídos Monolito Database-

    centric Event-driven Plug-ins Cliente/ Servidor Camadas Rule-based Publish- subscribe Microkernel Peer-to-peer Componentizado Blackboard Mensagens Assícronas Reflection REST Pipe and Filter DSL Micro serviços
  3. Estrutura Memória Compartilhada Mensageria Sistemas Adaptativos Sistemas Distribuídos Monolito Database-

    centric Event-driven Plug-ins Cliente/ Servidor Camadas Rule-based Publish- subscribe Microkernel Peer-to-peer Componentizado Blackboard Mensagens Assícronas Reflection REST Pipe and Filter DSL Micro serviços
  4. MVC MODEL-VIEW-CONTROLLER • Model (dados e lógica) • View (exibe

    informações ao usuário) • Controller (recebe e processa entradas dos usuários e converte em mudanças no model e na view)
  5. MVC VANTAGENS • Baixo acoplamento • Separação de responsabilidades entre

    dados e representação • Permite a exibição de um mesmo dado em diferentes formatos
  6. Estrutura Memória Compartilhada Mensageria Sistemas Adaptativos Sistemas Distribuídos Monolito Database-

    centric Event-driven Plug-ins Cliente/ Servidor Camadas Rule-based Publish- subscribe Microkernel Peer-to-peer Componentizado Blackboard Mensagens Assícronas Reflection REST Pipe and Filter DSL Micro serviços
  7. MICRO SERVIÇOS VANTAGENS • Incentiva a separação de responsabilidades •

    Torna a aplicação mais fácil de testar • Encoraja a descentralização dos dados • Facilita integração e entrega contínua com deploys mais rápidos
  8. Estrutura Memória Compartilhada Mensageria Sistemas Adaptativos Sistemas Distribuídos Monolito Database-

    centric Event-driven Plug-ins Cliente/ Servidor Camadas Rule-based Publish- subscribe Microkernel Peer-to-peer Componentizado Blackboard Mensagens Assícronas Reflection REST Pipe and Filter DSL Micro serviços
  9. EVENT-DRIVEN EXECUÇÕES ASSÍNCRONAS - NÃO BLOQUEANTES • Fluxo do programa

    é baseado em eventos (ações de usuários, mensagens de outros programas, informações de sensores) • Event Loop (ouve eventos e dispara funções correspondentes)
  10. Estrutura Memória Compartilhada Mensageria Sistemas Adaptativos Sistemas Distribuídos Monolito Database-

    centric Event-driven Plug-ins Cliente/ Servidor Camadas Rule-based Publish- subscribe Microkernel Peer-to-peer Componentizado Blackboard Mensagens Assícronas Reflection REST Pipe and Filter DSL Micro serviços
  11. PIPE AND FILTER ARQUITETURA SIMPLES PARA PROCESSAMENTOS COMPLEXOS • Análise

    de Dados • Extração de metadados • Processamento de áudio e vídeo
  12. “Software is not limited by physics, like buildings are. It

    is limited by imagination, by design, by organization. In short, it is limited by properties of people, not by properties of the world.” - Ralph Johnson