iOS Antipatterns
Tudo que você deveria fazer no seu código, só que
não.
Oi!
• Hanneli (‘H' mudo)
• CodeMiner 42
• Café, Pokémon, Lego e bichos <3
HIRING
O que é um código ‘ruim'?
Por que escrevemos código ruim?
O que vamos ver aqui
• Paradigma de programação - sua importância
• Princípios de OO que colaboram para um código
‘não rui...
O que *Não* vamos ver aqui
• Aula chata de OO
• Introdução a Objective C / iOS / etc
• Design Patterns
• Aula sobre SOLID
Paradigma == modelo; padrão
Toda vez que você
padroniza algo, você
facilita na identificação
e na produção
Orientação a Objetos == paradigma
O que é OO?
Herança
Polimorfismo
Encapsulamento
O que é OO?
“Passar Mensagem.”
OO para Objective C?
Colocando ordem na ‘troca de
mensagens'
SOLID
“Mantenha suas classes pequenas"
Xiita de código bonito, 2014
https://github.com/robbiehanson/XMPPFramework/blob/
master/C...
“1 classe, 1 responsabilidade”
Xiita de código bonito, 2014
SO
L
I
D
ingle Responsibility
Como melhorar?
SO
L
I
D
ingle Responsibility
• Separar o controle dos bytes em outra classe
• Separar o controle dos Event...
“Cuidado com a herança"
Xiita de código bonito, 2014
https://github.com/robbiehanson/XMPPFramework/blob/
a833c29e5b26cc3cc...
S
O
L
I
D
pen closed
Como melhorar?
• Interface comum - @protocol
S
O
L
I
D
pen closed
Vamos falar sobre Design Patterns
Por que todo mundo fala em Design
Patterns?
Singleton
Singleton - prós
•Objeto pesado criado uma única vez!
•Guarda estado
Singleton - cons
Singleton - cons
•Objetos pesados!
Singleton - Vilão ou mocinho?
Use com moderação!
Decorator
Decorator
https://github.com/robbiehanson/XMPPFramework/blob/
a833c29e5b26cc3cca3d1f37490eed8ff5dd65e2/Utilities/
DDList.m
Decorator
Decorator
• Separar esses nodes
• Associar os nodes
Conclusões
• Dê uma melhorada no código!
• Não precisa usar design patterns o tempo todo,
mas eventualmente ajuda
• Dê uma...
Obrigada!
@hannelita
hannelita@gmail.com
iOS antipatterns
iOS antipatterns
iOS antipatterns
iOS antipatterns
iOS antipatterns
iOS antipatterns
Próximos SlideShares
Carregando em…5
×

iOS antipatterns

660 visualizações

Publicada em

Palestra no TDC SP 2014 - trilha de iOS

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
660
No SlideShare
0
A partir de incorporações
0
Número de incorporações
4
Ações
Compartilhamentos
0
Downloads
6
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

iOS antipatterns

  1. 1. iOS Antipatterns Tudo que você deveria fazer no seu código, só que não.
  2. 2. Oi! • Hanneli (‘H' mudo) • CodeMiner 42 • Café, Pokémon, Lego e bichos <3 HIRING
  3. 3. O que é um código ‘ruim'?
  4. 4. Por que escrevemos código ruim?
  5. 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. 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. 7. Paradigma == modelo; padrão Toda vez que você padroniza algo, você facilita na identificação e na produção
  8. 8. Orientação a Objetos == paradigma O que é OO? Herança Polimorfismo Encapsulamento
  9. 9. O que é OO? “Passar Mensagem.”
  10. 10. OO para Objective C?
  11. 11. Colocando ordem na ‘troca de mensagens' SOLID
  12. 12. “Mantenha suas classes pequenas" Xiita de código bonito, 2014 https://github.com/robbiehanson/XMPPFramework/blob/ master/Core/XMPPStream.m
  13. 13. “1 classe, 1 responsabilidade” Xiita de código bonito, 2014 SO L I D ingle Responsibility
  14. 14. Como melhorar? SO 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!!!)
  15. 15. “Cuidado com a herança" Xiita de código bonito, 2014 https://github.com/robbiehanson/XMPPFramework/blob/ a833c29e5b26cc3cca3d1f37490eed8ff5dd65e2/Extensions/ XEP-0009/XMPPIQ%2BJabberRPC.m
  16. 16. S O L I D pen closed
  17. 17. Como melhorar? • Interface comum - @protocol S O L I D pen closed
  18. 18. Vamos falar sobre Design Patterns
  19. 19. Por que todo mundo fala em Design Patterns?
  20. 20. Singleton
  21. 21. Singleton - prós •Objeto pesado criado uma única vez! •Guarda estado
  22. 22. Singleton - cons
  23. 23. Singleton - cons •Objetos pesados!
  24. 24. Singleton - Vilão ou mocinho? Use com moderação!
  25. 25. Decorator
  26. 26. Decorator https://github.com/robbiehanson/XMPPFramework/blob/ a833c29e5b26cc3cca3d1f37490eed8ff5dd65e2/Utilities/ DDList.m
  27. 27. Decorator
  28. 28. Decorator • Separar esses nodes • Associar os nodes
  29. 29. 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!
  30. 30. Obrigada! @hannelita hannelita@gmail.com

×