devincachu 2013: arquitetura evolutiva
DESCRIPTION
Nessa palestra será apresentado um caso real onde a Arquitetura evolutiva possibilitou que um produto inicialmente simples se tornasse uma poderosa ferramenta de integração de softwares para Service Desk. Serão apresentados os marcos do projeto, as tecnologias utilizadas, quais decisões ajudaram a manter o ritmo de evoluções e o que faríamos diferente hoje em dia.TRANSCRIPT
![Page 1: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/1.jpg)
Arquitetura evolutiva
por @DenisFerrari
![Page 2: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/2.jpg)
Meta da apresentação
• Através de conceitos, teorias e histórias mostrar o que é importante em cada fase de um projeto.
![Page 3: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/3.jpg)
Conceitos
![Page 4: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/4.jpg)
O que é programação?
![Page 5: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/5.jpg)
A programação é como uma redação.
![Page 6: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/6.jpg)
A programação, assim como a redação...
• Pede por macro-decisões;• É definida nas micro-decisões;• Depende de valiação externa;• Novas implementações necessitam da
avaliação do todo;• É um processo criativo…
![Page 7: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/7.jpg)
(O TDD é fod* legal pois auxilia as micro-decisões)
![Page 8: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/8.jpg)
O que é arquitetura de software?
![Page 9: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/9.jpg)
A arquitetura de um projeto de software é como
a infraestrutura de uma cidade.
![Page 10: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/10.jpg)
A arquitetura...
• Conjunto de macro-decisões;• Conjunto de convenções;• Códigos de base (requisitos não funcionais);• “Define” como as coisas devem ser feitas;• Pode facilitar ou atrapalhar novas
implementações;• É difícil de mudar;
![Page 11: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/11.jpg)
Existe software sem arquitetura?
![Page 12: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/12.jpg)
A figura do arquiteto é essencial?
![Page 13: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/13.jpg)
(O arquiteto deve estar próximo do time de desenvolvimento, assim como o prefeito deveria usar apenas serviços públicos)
![Page 14: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/14.jpg)
Quando a arquitetura de um projeto deve ser definida?
![Page 15: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/15.jpg)
Qual o tamanho ideal de um time de desenvolvimento?
![Page 16: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/16.jpg)
Dois programadores, um designer.
![Page 17: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/17.jpg)
(A qualidade dos integrantes de um time é mais importante do que a quantidade de pessoas)
![Page 18: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/18.jpg)
(Um projeto de software é como uma criança, seu comportamento final dependerá das
influências que ele recebeu dos adultos que estavam perto durante seu crescimento)
![Page 19: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/19.jpg)
![Page 20: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/20.jpg)
(O livro de DDD não é a bíblia e saber arquitetura não faz de você um cara mais legal)
![Page 21: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/21.jpg)
![Page 22: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/22.jpg)
(A interface com o usuário antes da programação)
![Page 23: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/23.jpg)
(A utilização do código antes de sua construção)
![Page 24: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/24.jpg)
(Analisar o comportamento do usuário antes de construir o que você acha importante)
![Page 25: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/25.jpg)
![Page 26: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/26.jpg)
CONCEPÇÃO DO PRODUTOPrimeira fase
![Page 27: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/27.jpg)
Funcionalidades
• Base de conhecimento;• Gerenciador de avisos;• Interface de auto-atendimento; • Busca com relevância*;
![Page 28: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/28.jpg)
Tecnologias
![Page 29: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/29.jpg)
Uma tecnologia deve estar alinhada com os conceitos do seu projeto e
não deve definir como você irá trabalhar.
![Page 30: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/30.jpg)
![Page 31: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/31.jpg)
![Page 32: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/32.jpg)
(Cuidado com a política nas decisões).
![Page 33: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/33.jpg)
![Page 34: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/34.jpg)
![Page 35: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/35.jpg)
PERSISTÊNCIA
DOMÍNIO
AUTO-ATENDIMENTO ADMINISTRAÇÃO
![Page 36: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/36.jpg)
A arquitetura deve atender ao momento do projeto e
possibilitar a sua evolução.
![Page 37: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/37.jpg)
ESTATÍSTICAS E IMPORTAÇÃOSegunda fase
![Page 38: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/38.jpg)
Funcionalidades
• Ferramenta de importação;• Informações estatísticas sobre a base de
conhecimento;• Interação do usuário com a base de
conhecimento;
![Page 39: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/39.jpg)
(Migração de dados é uma coisa chata)
![Page 40: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/40.jpg)
![Page 41: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/41.jpg)
![Page 42: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/42.jpg)
PERSISTÊNCIA
DOMÍNIO
AUTO-ATENDIMENTO ADMINISTRAÇÃO
APLICAÇÃO
INFR
AEST
RUTU
RA
![Page 43: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/43.jpg)
MULTICLIENTESTerceira fase
![Page 44: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/44.jpg)
Funcionalidades
• Multi-Tenant;• Separar necessidades de domínio das
necessidades de leitura;
![Page 45: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/45.jpg)
![Page 46: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/46.jpg)
![Page 47: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/47.jpg)
AUTO-ATENDIMENTO ADMINISTRAÇÃO
APLICAÇÃO
INFR
AEST
RUTU
RA
DOMÍNIO RELATÓRIOS
PROCESSOS LEITURATENNANTS
![Page 48: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/48.jpg)
INTEGRAÇÃO ENTRE SISTEMASQuarta fase
![Page 49: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/49.jpg)
Funcionalidades
• Providenciar uma interface de integração entre sistemas de Service Desk;
![Page 50: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/50.jpg)
![Page 51: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/51.jpg)
![Page 52: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/52.jpg)
AUTO-ATENDIMENTO ADMINISTRAÇÃO
APLICAÇÃO
INFR
AEST
RUTU
RA
PROCESSOS LEITURATENANTS
RELATÓRIOS INTEGRAÇÕESDOMÍNIO
![Page 53: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/53.jpg)
PERSISTÊNCIA
DOMÍNIO
AUTO-ATENDIMENTO ADMINISTRAÇÃO
AUTO-ATENDIMENTO ADMINISTRAÇÃO
APLICAÇÃO
INFR
AEST
RUTU
RAPROCESSOS LEITURATENANTS
RELATÓRIOS INTEGRAÇÕESDOMÍNIO
AUTO-ATENDIMENTO ADMINISTRAÇÃO
APLICAÇÃO
INFR
AEST
RUTU
RA
DOMÍNIO RELATÓRIOS
PROCESSOS LEITURATENNANTS
PERSISTÊNCIA
DOMÍNIO
AUTO-ATENDIMENTO ADMINISTRAÇÃO
APLICAÇÃO
INFR
AEST
RUTU
RA
![Page 54: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/54.jpg)
CONSIDERAÇÕES FINAISConclusão
![Page 55: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/55.jpg)
![Page 57: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/57.jpg)
![Page 60: DevInCachu 2013: Arquitetura evolutiva](https://reader036.vdocuments.mx/reader036/viewer/2022062320/558de8301a28ab220c8b4644/html5/thumbnails/60.jpg)
Obrigado!