Top Banner
Luiz Borba @luizborba - http://borba.blog.br Arquitetura Pragmática
56

Arquitetura Pragmatica

Jul 01, 2015

Download

Documents

Luiz Borba

Uma visão pragmática sobre arquitetura de software no mundo web.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Arquitetura Pragmatica

Luiz Borba@luizborba - http://borba.blog.br

Arquitetura Pragmática

Page 2: Arquitetura Pragmatica

O que é arquitetura?

Page 3: Arquitetura Pragmatica

"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."

Page 4: Arquitetura Pragmatica

Arquitetura

Design

Page 5: Arquitetura Pragmatica
Page 6: Arquitetura Pragmatica

Atributos de Qualidade• Performance

• Segurança

• Disponibilidade

• Usabilidade

• Confiabilidade

• Manutenibilidade

• Testabilidade

• Portabilidade

• Integrabilidade

• Reusabilidade

• Legibilidade

• Escalabilidade

Page 7: Arquitetura Pragmatica

Visões

Page 8: Arquitetura Pragmatica
Page 9: Arquitetura Pragmatica
Page 10: Arquitetura Pragmatica
Page 11: Arquitetura Pragmatica
Page 12: Arquitetura Pragmatica
Page 13: Arquitetura Pragmatica

Principais fatores para um bom design

Baixo acomplamento Alta coesão

Page 14: Arquitetura Pragmatica

GRASP(general responsibility assignment patterns)

Page 15: Arquitetura Pragmatica
Page 16: Arquitetura Pragmatica
Page 17: Arquitetura Pragmatica
Page 18: Arquitetura Pragmatica
Page 19: Arquitetura Pragmatica
Page 20: Arquitetura Pragmatica

Primeira Lei de Arquitetura de Software de Borba

(Borba's 1st Software Architecture Law)

Toda arquitetura definida está errada.

Page 21: Arquitetura Pragmatica

Precisa PROVAR!

Page 22: Arquitetura Pragmatica

Segunda Lei de Arquitetura de Software de Borba

(Borba's 2nd Software Architecture Law)

Toda arquitetura definida que comprovadamente funciona

estará errada em breve.

Page 23: Arquitetura Pragmatica

As coisas mudam• Tecnologias mudam

• Requisitos/Planos/Negócios mudam

• Pessoas mudam

• Usuários mudam

• TUDO MUDA. O TEMPO TODO.

Page 24: Arquitetura Pragmatica

O que fazer então?

Page 25: Arquitetura Pragmatica

Design Incremental

Page 26: Arquitetura Pragmatica

TDD

http://bit.ly/dNzRtn

Page 27: Arquitetura Pragmatica
Page 28: Arquitetura Pragmatica

"As melhores arquiteturas, requisitos e design emergem de times auto organizados"

(manifesto para desenvolvimento de software ágil)

Page 29: Arquitetura Pragmatica

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

Page 30: Arquitetura Pragmatica

Evolução da arquiteturas WEB

Page 31: Arquitetura Pragmatica
Page 32: Arquitetura Pragmatica
Page 33: Arquitetura Pragmatica

HTTP• Popularidade da WEB fez

servidores de aplicação evoluir

• performance

• escalabilidade

• segurança

• cache

Page 34: Arquitetura Pragmatica
Page 35: Arquitetura Pragmatica

No mundo enterprise...

Page 36: Arquitetura Pragmatica

SOA

Page 37: Arquitetura Pragmatica

e no mundo pop...

Page 38: Arquitetura Pragmatica
Page 39: Arquitetura Pragmatica
Page 40: Arquitetura Pragmatica

Web 2.0

Page 41: Arquitetura Pragmatica

COMET

Page 42: Arquitetura Pragmatica

Rich Internet Applications

Page 43: Arquitetura Pragmatica

• REST (Representational State Transfer)

• Cliente-Servidor

• Stateless

• Cacheable

• Em camadas

• Inteface uniforme

• Sucessor do SOAP em SOA

Page 44: Arquitetura Pragmatica

Estudo de casos

Page 45: Arquitetura Pragmatica

Twitter tweet tableLatência cache = 1ms

Latência MySQL = 10ms

Page 46: Arquitetura Pragmatica

Tabela única

Page 47: Arquitetura Pragmatica

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

Page 48: Arquitetura Pragmatica

ELEITO: Partição por tempo

http://slidesha.re/fViE3Y

Page 49: Arquitetura Pragmatica

Facebook BigPipe

Page 50: Arquitetura Pragmatica

Threads

Servidorhttp request

Página

Page 51: Arquitetura Pragmatica

http://on.fb.me/gzNc0K

Page 52: Arquitetura Pragmatica

Caso para reflexão

http://bit.ly/hn3Sd0

Page 53: Arquitetura Pragmatica

E sobre o projeto?

Page 54: Arquitetura Pragmatica

Mais palavras chaves

• NoSQL (http://bit.ly/dE23U6)

• Linguagens Funcionais (http://bit.ly/hug7CM)

• Cloud Computing

• Mobile Apps (http://bit.ly/i6rLsb)

Page 55: Arquitetura Pragmatica

http://bit.ly/hij049

Page 56: Arquitetura Pragmatica

Boa Sorte!

Luiz Borba@luizborba - http://borba.blog.br