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

Acoplamento bom é acoplamento estável

Acoplamento bom é acoplamento estável

Nessa talk apresento o conceito básico de acoplamento e importância de zelar por coesão + uso de contratos para reduzir o nível de acoplamento entre os diferentes módulos/unidades de um sistema.

Linguagem de programação: Ruby

Links:

Gravação da apresentação: https://www.youtube.com/watch?v=cit74GsKNdQ

Ferramentas:
- https://github.com/serradura/kind
- https://sorbet.org/
- https://github.com/ruby/rbs
- https://dry-rb.org/gems/dry-types/1.2/

Benchmark - dry-types VS kind: https://gist.github.com/serradura/896ac4a8f09fc97de47057fc0bb98447

Conteúdo relacionado ao tema da talk:
https://thoughtbot.com/blog/types-of-coupling

Rodrigo Serradura

March 25, 2021
Tweet

More Decks by Rodrigo Serradura

Other Decks in Programming

Transcript

  1. Acoplamento bom é
    acoplamento estável

    View full-size slide

  2. O que é acoplamento?

    View full-size slide

  3. O que é acoplamento?
    é o grau de interdependência
    entre módulos / unidades de
    software

    View full-size slide

  4. Desacoplado
    Sem dependências

    View full-size slide

  5. Desacoplado
    Sem dependências
    Fracamente acoplado
    Poucas dependências

    View full-size slide

  6. Desacoplado
    Sem dependências
    Fracamente acoplado
    Poucas dependências
    Fortemente acoplado
    Muitas dependências

    View full-size slide

  7. Acoplamento
    Forte VS Fraco

    View full-size slide

  8. Fracamente acoplado
    1. Menor interdependência
    2. Menor coordenação
    3. Menor fluxo de informação
    Fortemente acoplado
    1. Maior interdependência
    2. Maior coordenação
    3. Maior fluxo de informação

    View full-size slide

  9. Bus Train
    Travel
    Person

    View full-size slide

  10. Como melhorar?

    View full-size slide

  11. Travel
    Person Bus Train
    Transport

    View full-size slide

  12. Quanto menos acoplado
    maior será a coesão

    View full-size slide

  13. Bus Train
    Travel
    Person
    Antes

    View full-size slide

  14. Travel
    Person Bus Train
    Transport
    Depois

    View full-size slide

  15. A importância dos bons contratos

    View full-size slide

  16. Travel
    Person Bus Train
    Transport

    View full-size slide

  17. Outras ferramentas para estabelecer
    contratos no código

    View full-size slide

  18. https://github.com/ruby/rbs

    View full-size slide

  19. https://gist.github.com/serradura/896ac4a8f09fc97de47057fc0bb98447
    Benchmark verificação de tipos estrita
    dry-types VS kind

    View full-size slide

  20. Obrigado
    @serradura
    [email protected]
    ~6 horas de dedicação
    para preparar esse conteúdo. ;)
    https://speakerdeck.com/serradura

    View full-size slide