60
Arquitetura evolutiva por @DenisFerrari

DevInCachu 2013: Arquitetura evolutiva

Embed Size (px)

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.

Citation preview

Page 1: DevInCachu 2013: Arquitetura evolutiva

Arquitetura evolutiva

por @DenisFerrari

Page 2: DevInCachu 2013: Arquitetura evolutiva

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

Conceitos

Page 4: DevInCachu 2013: Arquitetura evolutiva

O que é programação?

Page 5: DevInCachu 2013: Arquitetura evolutiva

A programação é como uma redação.

Page 6: DevInCachu 2013: Arquitetura evolutiva

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

(O TDD é fod* legal pois auxilia as micro-decisões)

Page 8: DevInCachu 2013: Arquitetura evolutiva

O que é arquitetura de software?

Page 9: DevInCachu 2013: Arquitetura evolutiva

A arquitetura de um projeto de software é como

a infraestrutura de uma cidade.

Page 10: DevInCachu 2013: Arquitetura evolutiva

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

Existe software sem arquitetura?

Page 12: DevInCachu 2013: Arquitetura evolutiva

A figura do arquiteto é essencial?

Page 13: DevInCachu 2013: Arquitetura evolutiva

(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

Quando a arquitetura de um projeto deve ser definida?

Page 15: DevInCachu 2013: Arquitetura evolutiva

Qual o tamanho ideal de um time de desenvolvimento?

Page 16: DevInCachu 2013: Arquitetura evolutiva

Dois programadores, um designer.

Page 17: DevInCachu 2013: Arquitetura evolutiva

(A qualidade dos integrantes de um time é mais importante do que a quantidade de pessoas)

Page 18: DevInCachu 2013: Arquitetura evolutiva

(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
Page 20: DevInCachu 2013: Arquitetura evolutiva

(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
Page 22: DevInCachu 2013: Arquitetura evolutiva

(A interface com o usuário antes da programação)

Page 23: DevInCachu 2013: Arquitetura evolutiva

(A utilização do código antes de sua construção)

Page 24: DevInCachu 2013: Arquitetura evolutiva

(Analisar o comportamento do usuário antes de construir o que você acha importante)

Page 25: DevInCachu 2013: Arquitetura evolutiva
Page 26: DevInCachu 2013: Arquitetura evolutiva

CONCEPÇÃO DO PRODUTOPrimeira fase

Page 27: DevInCachu 2013: Arquitetura evolutiva

Funcionalidades

• Base de conhecimento;• Gerenciador de avisos;• Interface de auto-atendimento; • Busca com relevância*;

Page 28: DevInCachu 2013: Arquitetura evolutiva

Tecnologias

Page 29: DevInCachu 2013: Arquitetura evolutiva

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
Page 31: DevInCachu 2013: Arquitetura evolutiva
Page 32: DevInCachu 2013: Arquitetura evolutiva

(Cuidado com a política nas decisões).

Page 33: DevInCachu 2013: Arquitetura evolutiva
Page 34: DevInCachu 2013: Arquitetura evolutiva
Page 35: DevInCachu 2013: Arquitetura evolutiva

PERSISTÊNCIA

DOMÍNIO

AUTO-ATENDIMENTO ADMINISTRAÇÃO

Page 36: DevInCachu 2013: Arquitetura evolutiva

A arquitetura deve atender ao momento do projeto e

possibilitar a sua evolução.

Page 37: DevInCachu 2013: Arquitetura evolutiva

ESTATÍSTICAS E IMPORTAÇÃOSegunda fase

Page 38: DevInCachu 2013: Arquitetura evolutiva

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

(Migração de dados é uma coisa chata)

Page 40: DevInCachu 2013: Arquitetura evolutiva
Page 41: DevInCachu 2013: Arquitetura evolutiva
Page 42: DevInCachu 2013: Arquitetura evolutiva

PERSISTÊNCIA

DOMÍNIO

AUTO-ATENDIMENTO ADMINISTRAÇÃO

APLICAÇÃO

INFR

AEST

RUTU

RA

Page 43: DevInCachu 2013: Arquitetura evolutiva

MULTICLIENTESTerceira fase

Page 44: DevInCachu 2013: Arquitetura evolutiva

Funcionalidades

• Multi-Tenant;• Separar necessidades de domínio das

necessidades de leitura;

Page 45: DevInCachu 2013: Arquitetura evolutiva
Page 46: DevInCachu 2013: Arquitetura evolutiva
Page 47: DevInCachu 2013: Arquitetura evolutiva

AUTO-ATENDIMENTO ADMINISTRAÇÃO

APLICAÇÃO

INFR

AEST

RUTU

RA

DOMÍNIO RELATÓRIOS

PROCESSOS LEITURATENNANTS

Page 48: DevInCachu 2013: Arquitetura evolutiva

INTEGRAÇÃO ENTRE SISTEMASQuarta fase

Page 49: DevInCachu 2013: Arquitetura evolutiva

Funcionalidades

• Providenciar uma interface de integração entre sistemas de Service Desk;

Page 50: DevInCachu 2013: Arquitetura evolutiva
Page 51: DevInCachu 2013: Arquitetura evolutiva
Page 52: DevInCachu 2013: Arquitetura evolutiva

AUTO-ATENDIMENTO ADMINISTRAÇÃO

APLICAÇÃO

INFR

AEST

RUTU

RA

PROCESSOS LEITURATENANTS

RELATÓRIOS INTEGRAÇÕESDOMÍNIO

Page 53: DevInCachu 2013: Arquitetura evolutiva

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

CONSIDERAÇÕES FINAISConclusão

Page 55: DevInCachu 2013: Arquitetura evolutiva
Page 57: DevInCachu 2013: Arquitetura evolutiva
Page 60: DevInCachu 2013: Arquitetura evolutiva

Obrigado!