Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Luiz Borba
@luizborba - http://borba.blog.br
Arquitetura Pragmática
O que é arquitetura?
"A arquitetura de software de
um programa ou sistema
computacional é a estrutura
(ou estruturas), a qual
envolve os elemen...
Arquitetura
Design
Atributos de Qualidade
• Performance
• Segurança
• Disponibilidade
• Usabilidade
• Confiabilidade
• Manutenibilidade
• Test...
Visões
Principais fatores para
um bom design
Baixo acomplamento Alta coesão
GRASP
(general responsibility
assignment patterns)
Primeira Lei de Arquitetura
de Software de Borba
(Borba's 1st Software Architecture Law)
Toda arquitetura definida está err...
Precisa PROVAR!
Segunda Lei de Arquitetura
de Software de Borba
(Borba's 2nd Software Architecture Law)
Toda arquitetura definida que
compr...
As coisas mudam
• Tecnologias mudam
• Requisitos/Planos/Negócios mudam
• Pessoas mudam
• Usuários mudam
• TUDO MUDA. O TEM...
O que fazer então?
Design Incremental
TDD
http://bit.ly/dNzRtn
"As melhores arquiteturas,
requisitos e design emergem
de times auto organizados"
(manifesto para desenvolvimento de softw...
1. Não existe nada de especial
sobre arquitetura
2. Evite arquiteturas torres de
marfim
3. Todo sistema tem uma
arquitetura...
Evolução da arquiteturas WEB
HTTP
• Popularidade da WEB fez
servidores de aplicação
evoluir
• performance
• escalabilidade
• segurança
• cache
No mundo enterprise...
SOA
e no mundo pop...
Web 2.0
COMET
Rich Internet Applications
• REST (Representational
State Transfer)
• Cliente-Servidor
• Stateless
• Cacheable
• Em camadas
• Inteface uniforme
• Suc...
Estudo de casos
Twitter tweet table
Latência cache = 1ms
Latência MySQL = 10ms
Tabela única
Partição por PK
Partição por usuário
Para encontrar tweets
recentes por usuário tem
que procurar em N partições
Para encon...
ELEITO: Partição por tempo
http://slidesha.re/fViE3Y
Facebook BigPipe
Threads
Servidor
http request
Página
http://on.fb.me/gzNc0K
Caso para reflexão
http://bit.ly/hn3Sd0
E sobre o projeto?
Mais palavras chaves
• NoSQL (http://bit.ly/dE23U6)
• Linguagens Funcionais (http://bit.ly/hug7CM)
• Cloud Computing
• Mob...
http://bit.ly/hij049
Boa Sorte!
Luiz Borba
@luizborba - http://borba.blog.br
Arquitetura pragmática
Arquitetura pragmática
Arquitetura pragmática
Arquitetura pragmática
Arquitetura pragmática
Arquitetura pragmática
Arquitetura pragmática
Arquitetura pragmática
Arquitetura pragmática
Arquitetura pragmática
Arquitetura pragmática
Arquitetura pragmática
Arquitetura pragmática
Arquitetura pragmática
Arquitetura pragmática
Arquitetura pragmática
Arquitetura pragmática
Upcoming SlideShare
Loading in …5
×

Arquitetura pragmática

685 views

Published on

Preparei essa aula sobre Arquitetura de Software para a turma de engenharia de software na pós-graduação da UFPE. Minha intenção foi fugir do óbvio e mostrar uma nova visão sobre arquitetura, fortemente influenciada pelas metodologias ágeis e pela evolução das tecnologias web. Este trabalho é marcante porque contém pela primeira vez os enunciados das primeira e segunda lei de Arquitetura de Software de Borba :)))))))

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Arquitetura pragmática

  1. 1. Luiz Borba @luizborba - http://borba.blog.br Arquitetura Pragmática
  2. 2. O que é arquitetura?
  3. 3. "A arquitetura de software de um programa ou sistema computacional é a estrutura (ou estruturas), a qual envolve os elementos de software, as propriedades desses elementos visíveis externamente e seus respectivos inter- relacionamentos."
  4. 4. Arquitetura Design
  5. 5. Atributos de Qualidade • Performance • Segurança • Disponibilidade • Usabilidade • Confiabilidade • Manutenibilidade • Testabilidade • Portabilidade • Integrabilidade • Reusabilidade • Legibilidade • Escalabilidade
  6. 6. Visões
  7. 7. Principais fatores para um bom design Baixo acomplamento Alta coesão
  8. 8. GRASP (general responsibility assignment patterns)
  9. 9. Primeira Lei de Arquitetura de Software de Borba (Borba's 1st Software Architecture Law) Toda arquitetura definida está errada.
  10. 10. Precisa PROVAR!
  11. 11. Segunda Lei de Arquitetura de Software de Borba (Borba's 2nd Software Architecture Law) Toda arquitetura definida que comprovadamente funciona estará errada em breve.
  12. 12. As coisas mudam • Tecnologias mudam • Requisitos/Planos/Negócios mudam • Pessoas mudam • Usuários mudam • TUDO MUDA. O TEMPO TODO.
  13. 13. O que fazer então?
  14. 14. Design Incremental
  15. 15. TDD http://bit.ly/dNzRtn
  16. 16. "As melhores arquiteturas, requisitos e design emergem de times auto organizados" (manifesto para desenvolvimento de software ágil)
  17. 17. 1. Não existe nada de especial sobre arquitetura 2. Evite arquiteturas torres de marfim 3. Todo sistema tem uma arquitetura 4. Arquitetura viabiliza projetos grandes
  18. 18. Evolução da arquiteturas WEB
  19. 19. HTTP • Popularidade da WEB fez servidores de aplicação evoluir • performance • escalabilidade • segurança • cache
  20. 20. No mundo enterprise...
  21. 21. SOA
  22. 22. e no mundo pop...
  23. 23. Web 2.0
  24. 24. COMET
  25. 25. Rich Internet Applications
  26. 26. • REST (Representational State Transfer) • Cliente-Servidor • Stateless • Cacheable • Em camadas • Inteface uniforme • Sucessor do SOAP em SOA
  27. 27. Estudo de casos
  28. 28. Twitter tweet table Latência cache = 1ms Latência MySQL = 10ms
  29. 29. Tabela única
  30. 30. Partição por PK Partição por usuário Para encontrar tweets recentes por usuário tem que procurar em N partições Para encontrar um tweet por id tem que procurar em N partições
  31. 31. ELEITO: Partição por tempo http://slidesha.re/fViE3Y
  32. 32. Facebook BigPipe
  33. 33. Threads Servidor http request Página
  34. 34. http://on.fb.me/gzNc0K
  35. 35. Caso para reflexão http://bit.ly/hn3Sd0
  36. 36. E sobre o projeto?
  37. 37. Mais palavras chaves • NoSQL (http://bit.ly/dE23U6) • Linguagens Funcionais (http://bit.ly/hug7CM) • Cloud Computing • Mobile Apps (http://bit.ly/i6rLsb)
  38. 38. http://bit.ly/hij049
  39. 39. Boa Sorte! Luiz Borba @luizborba - http://borba.blog.br

×