Arquitetura evolutiva - DNAD 2013

Preview:

Citation preview

#dnad13 | @denisferrari | @heroisdati

Arquitetura evolutiva

#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!