$30 off During Our Annual Pro Sale. View Details »

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

  2. @serradura rodrigo.serradura@gmail.com

  3. None
  4. None
  5. O que é acoplamento?

  6. O que é acoplamento? é o grau de interdependência entre

    módulos / unidades de software
  7. Desacoplado Sem dependências

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

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

    dependências
  10. Acoplamento Forte VS Fraco

  11. 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
  12. Exemplos

  13. None
  14. None
  15. None
  16. None
  17. Bus Train Travel Person

  18. Como melhorar?

  19. Travel Person Bus Train Transport

  20. None
  21. None
  22. Quanto menos acoplado maior será a coesão

  23. Bus Train Travel Person Antes

  24. Travel Person Bus Train Transport Depois

  25. A importância dos bons contratos

  26. Travel Person Bus Train Transport

  27. Como?

  28. None
  29. Kind.is!

  30. None
  31. None
  32. Kind.of

  33. None
  34. None
  35. Duck typing

  36. None
  37. None
  38. Union Types

  39. None
  40. None
  41. Outras ferramentas para estabelecer contratos no código

  42. None
  43. https://github.com/ruby/rbs

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

  46. Obrigado @serradura rodrigo.serradura@gmail.com ~6 horas de dedicação para preparar esse

    conteúdo. ;) https://speakerdeck.com/serradura