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

iOS Antipatterns - TDC 2014

iOS Antipatterns - TDC 2014

TDC 2014 - Sao Paulo

83a8147c3c83c22e1e421c3420e768f9?s=128

hannelita

August 08, 2014
Tweet

More Decks by hannelita

Other Decks in Technology

Transcript

  1. iOS Antipatterns Tudo que você deveria fazer no seu código,

    só que não.
  2. Oi! • Hanneli (‘H' mudo) • CodeMiner 42 • Café,

    Pokémon, Lego e bichos <3 HIRING
  3. O que é um código ‘ruim'?

  4. Por que escrevemos código ruim?

  5. O que vamos ver aqui • Paradigma de programação -

    sua importância • Princípios de OO que colaboram para um código ‘não ruim’ • Antipatternizando patterns • OSS - exemplos de antipatterns • GIFs engraçados (ou não)
  6. O que *Não* vamos ver aqui • Aula chata de

    OO • Introdução a Objective C / iOS / etc • Design Patterns • Aula sobre SOLID
  7. Paradigma == modelo; padrão Toda vez que você padroniza algo,

    você facilita na identificação e na produção
  8. Orientação a Objetos == paradigma O que é OO? Herança

    Polimorfismo Encapsulamento
  9. O que é OO? “Passar Mensagem.”

  10. OO para Objective C?

  11. Colocando ordem na ‘troca de mensagens' SOLID

  12. “Mantenha suas classes pequenas" Xiita de código bonito, 2014 https://github.com/robbiehanson/XMPPFramework/blob/

    master/Core/XMPPStream.m
  13. None
  14. “1 classe, 1 responsabilidade” Xiita de código bonito, 2014 S

    O L I D ingle Responsibility
  15. Como melhorar? S O L I D ingle Responsibility •

    Separar o controle dos bytes em outra classe • Separar o controle dos Events em outra classe • Separar a autenticação (!!11!!!)
  16. “Cuidado com a herança" Xiita de código bonito, 2014 https://github.com/robbiehanson/XMPPFramework/blob/

    a833c29e5b26cc3cca3d1f37490eed8ff5dd65e2/Extensions/ XEP-0009/XMPPIQ%2BJabberRPC.m
  17. None
  18. None
  19. None
  20. S O L I D pen closed

  21. Como melhorar? • Interface comum - @protocol S O L

    I D pen closed
  22. Vamos falar sobre Design Patterns

  23. Por que todo mundo fala em Design Patterns?

  24. Singleton

  25. Singleton - prós •Objeto pesado criado uma única vez! •Guarda

    estado
  26. Singleton - cons

  27. Singleton - cons •Objetos pesados!

  28. Singleton - Vilão ou mocinho? Use com moderação!

  29. Decorator

  30. Decorator https://github.com/robbiehanson/XMPPFramework/blob/ a833c29e5b26cc3cca3d1f37490eed8ff5dd65e2/Utilities/ DDList.m

  31. None
  32. Decorator

  33. None
  34. Decorator • Separar esses nodes • Associar os nodes

  35. Conclusões • Dê uma melhorada no código! • Não precisa

    usar design patterns o tempo todo, mas eventualmente ajuda • Dê uma revisada nos princípios de OO e SOLID! Quem for manter seu código agradece!
  36. Obrigada! @hannelita hannelita@gmail.com