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

Código flexivel com design patterns

Código flexivel com design patterns

Design Patterns (padrões de design) são arquiteturas genéricas de código que podem ser aplicadas na solução de diversos problemas. Eles foram inicialmente introduzidos pelo livro "Design Patterns: Elements of Reusable Object-Oriented Software" mas continuamos descobrindo novos até hoje. Esses padrões são formas tão boas de se estruturar código que alguns deles já vêm embutidos no Python, como o por exemplo o iterator.

Alguns dos melhores exemplos de aplicação de Design Patterns estão em bibliotecas open source. Estas bibliotecas se utilizam destes padrões para dar flexibilidade e facilidade de integração para os programadores. A biblioteca Python-Social-Auth (PSA) é um ótimo exemplo disso, ela permite integração com um grande número de provedores de autenticação ao mesmo tempo que funciona com os frameworks Django, Flask, Tornado e Pyramid e sabe lidar com os protocolos OAuth1, OAuth2, OpenID e SAML. Isto só é possível por que a PSA foi totalmente construida com base em Design Patterns.

Nesta talk vamos introduzir o que são Design Patterns e destrinchar mais sobre 3 dos mais populares: Adapter, Strategy e Collection Pipeline. Iremos dar exemplos de como aplicar esses padrões em situações reais, mostrar como eles podem melhorar a qualidade do seu código e mostrar como a PSA e outras bibliotecas se utilizam deles.

Filipe Ximenes

May 25, 2018
Tweet

More Decks by Filipe Ximenes

Other Decks in Programming

Transcript

  1. As características de uma linguagem de padrões Um formato elegante

    para se referenciar e debater Juntos os padrões precisam formar uma linguagem que quando aplicada produza objetos coerentes Melhorar a vida das pessoas
  2. Padrão 120 - Caminhos e objetivos A disposição de caminhos

    vai parecer correta e confortável apenas quando forem compatíveis com o processo de caminhada. E isto é mais sutil do que você imagina.
  3. Essas ideias vêm da simples observação de que os lugares

    mais fabulosos do mundo não foram construídos por arquitetos mas sim por pessoas
  4. Padrão 121 - Formato do caminho ruas devem ser construídas

    para que as pessoas fiquem nelas e não apenas para que transitem (como são em sua maioria hoje em dia)
  5. Padrão 241 - Locais para sentar nos locais onde bancos

    são colocados sem que haja preocupação com o clima e a vista, quase que com certeza eles serão imprestáveis
  6. 'design patterns' são uma 'pattern language'? Um formato elegante para

    se referenciar e debater OK Juntos os padrões precisam formar uma linguagem que quando aplicada produza objetos coerentes Melhorar a vida das pessoas programadoras
  7. Os 3 passos para aprender design patterns 1. Aceitação. aceite

    que design patterns vão lhe ajudar a escrever código melhor. 2. Reconhecimento. reconheça que é preciso estudar e estar atento a quando usá-los 3. Internalização. internalize os padrões para que seja fácil reconhecer "instintivamente" quando usá-los para resolver um problema http://cs.smu.ca/~porter/csc/465/notes/design_patterns.html
  8. Boa arquitetura é sobre melhorar a vida das pessoas e

    na maioria das vezes isso significa fazer o que parece mais natural e mais prazeroso para nós