DevInCachu 2013: Arquitetura evolutiva
-
Upload
denis-ferrari -
Category
Technology
-
view
181 -
download
4
description
Transcript of DevInCachu 2013: Arquitetura evolutiva
Arquitetura evolutiva
por @DenisFerrari
Meta da apresentação
• Através de conceitos, teorias e histórias mostrar o que é importante em cada fase de um projeto.
Conceitos
O que é programação?
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 de um projeto de software é como
a infraestrutura de uma cidade.
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;
Existe software sem arquitetura?
A figura do arquiteto é essencial?
(O arquiteto deve estar próximo do time de desenvolvimento, assim como o prefeito deveria usar apenas serviços públicos)
Quando a arquitetura de um projeto deve ser definida?
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)
(O livro de DDD não é a bíblia e saber arquitetura não faz de você um cara mais legal)
(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)
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).
PERSISTÊNCIA
DOMÍNIO
AUTO-ATENDIMENTO ADMINISTRAÇÃO
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!