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

Design Orientado a Objetos com Ruby

Luiz Cezer
November 28, 2016

Design Orientado a Objetos com Ruby

Algumas dicas sobre como melhorar o código Ruby com pequenas mudanças

Luiz Cezer

November 28, 2016
Tweet

More Decks by Luiz Cezer

Other Decks in Programming

Transcript

  1. Entendendo as dependências # Um objeto depende de outro quando

    uma mudança no Objeto/Classe A irá forçar uma mudança em B # Ou então uma mudança em A poderá quebrar a implementação do Objeto/Classe B
  2. Entendendo as dependências # Classe A depende explicitamente de B

    # Classe A espera uma chamada de determinado método em B # Classe A conhece quais argumentos B precisa e a ordem com que são passados
  3. Lei de Demeter # Lei do menor conhecimento # Objetos

    devem evitar conhecer vizinhos dos vizinhos # Detectar pontos do código com alto acoplamento # Preferencialmente utilizar Delegators para minimizar o problema
  4. Lei de Demeter # Um método M de uma instância

    de um objeto O só poderá interagir com métodos de: - Do próprio objeto ao qual seu escopo pertence - Um argumento próprio. - Um objeto criado dentro de si. - Qualquer propriedade/atributo do objeto ao qual seu escopo pertence.
  5. Tell, don’t ask! # Reforça o conceito do encapsulamento #

    Devemos dizer ao objeto o que fazer # Evitar perguntar o estado de um objeto para então tomar alguma ação
  6. Considerações Finais # Um bom Design de código começa nos

    pequenos detalhes # Regra do Escoteiro - Sempre deixar o acampamento mais limpo do que quando você chegou
  7. Referências # Design Orientado a Objetos com Ruby - parte

    1 # Design Orientado a Objetos com Ruby - parte 2 # Design Orientado a Objetos com Ruby - parte 3