Upload
denis-ferrari
View
463
Download
2
Embed Size (px)
Citation preview
#dnad13 | @denisferrari | @heroisdati
Arquitetura evolutiva
#dnad13 | @denisferrari | @heroisdati
http://www.linkedin.com/in/denisferrari
#oportunidade | @denisferrari | @heroisdati
Meta da apresentação
• Questionar em qual momento a arquitetura deve ser pensada e aplicada...
#dnad13 | @denisferrari | @heroisdati
O que é programação?
(Código é conhecimento registrado)
A programação é como uma redação.
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…
(O TDD é fod* legal pois auxilia as micro-decisões)
O que é arquitetura de software?
(A arquitetura é o universo. O design é a história)
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;
Qual o tamanho ideal de um time de desenvolvimento?
Dois programadores, um designer.
(A qualidade dos integrantes de um time é mais importante do que a quantidade de pessoas)
(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)
CONCEPÇÃO DO PRODUTOPrimeira fase
Funcionalidades
• Base de conhecimento;• Gerenciador de avisos;• Interface de auto-atendimento; • Busca com relevância*;
Tecnologias
Uma tecnologia deve estar alinhada com os conceitos do seu projeto e
não deve definir como você irá trabalhar.
(Cuidado com a política nas decisões).
(A interface com o usuário antes da programação)
(A utilização do código antes de sua construção)
(Analisar o comportamento do usuário antes de construir o que você acha importante)
PERSISTÊNCIA
DOMÍNIO
AUTO-ATENDIMENTO ADMINISTRAÇÃO
Quando a arquitetura de um projeto deve ser definida?
(O livro de DDD não é a bíblia e saber arquitetura não faz de você um cara mais legal)
A arquitetura deve atender ao momento do projeto e
possibilitar a sua evolução.
ESTATÍSTICAS E IMPORTAÇÃOSegunda fase
Funcionalidades
• Ferramenta de importação;• Informações estatísticas sobre a base de
conhecimento;• Interação do usuário com a base de
conhecimento;
(Migração de dados é uma coisa chata)
PERSISTÊNCIA
DOMÍNIO
AUTO-ATENDIMENTO ADMINISTRAÇÃO
APLICAÇÃO
INFR
AEST
RUTU
RA
MULTICLIENTESTerceira fase
Funcionalidades
• Multi-Tenant;• Separar necessidades de domínio das
necessidades de leitura;
AUTO-ATENDIMENTO ADMINISTRAÇÃO
APLICAÇÃO
INFR
AEST
RUTU
RA
DOMÍNIO RELATÓRIOS
PROCESSOS LEITURATENNANTS
INTEGRAÇÃO ENTRE SISTEMASQuarta fase
Funcionalidades
• Providenciar uma interface de integração entre sistemas de Service Desk;
AUTO-ATENDIMENTO ADMINISTRAÇÃO
APLICAÇÃO
INFR
AEST
RUTU
RA
PROCESSOS LEITURATENANTS
RELATÓRIOS INTEGRAÇÕESDOMÍNIO
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
CONSIDERAÇÕES FINAISConclusão
Obrigado!