Arquitetura e design de software

23
ARQUITETURA E DESIGN DE SOFTWARE POR VITOR CASTRO

Transcript of Arquitetura e design de software

Page 1: Arquitetura e design de software

ARQUITETURA E DESIGN DE SOFTWARE

POR VITOR CASTRO

Page 2: Arquitetura e design de software

“PESSOAS DE TODO MUNDO ESTÃO CONSTANTEMENTE CRIANDO APLICAÇÕES WEB USANDO .NET, JAVA E PHP. NENHUMA DELAS ESTÁ FALHANDO POR CAUSA DA TECNOLOGIA”

–Joel Spolsky

Page 3: Arquitetura e design de software

PAPEL DO ARQUITETO ?

Page 4: Arquitetura e design de software

PAPEL DO ARQUITETO DE SOFTWARE

▸ Identificar as interfaces entre os componentes.

▸ Direcionando a equipe de desenvolvimento

▸ “Guia … experiente e capacitado que ensina aos outros se virar melhor - Martin Fowler”

▸ Ter a visão do Design e da implementação

Page 5: Arquitetura e design de software

DESIGN

IMPLEMENTAÇÃO} ARQUITETURA

DECISÕESInterfaces de comunicação

Linguagem de Programação

Frameworks e Biblioteca

Componentes

Abstrações

“Entendimento das relações e os impactos”

Ferramentas

….

….

….

Page 6: Arquitetura e design de software

IDENTIFICANDO OS ELEMENTOS DE UM SISTEMA

DESAFIO #1

Page 7: Arquitetura e design de software

PROJETO DE UM E-COMMERCE

? ? ?

? ?

Page 8: Arquitetura e design de software

TRADE-OFF

Page 9: Arquitetura e design de software

ORIENTAÇÃO A OBJETOS IMPLEMENTAÇÃO

Page 10: Arquitetura e design de software

TEXT

DICAS

▸ Programe voltado à Interface, não à implementação !!!

▸ Evite herança, favoreça composição

▸ Considere Domain-Driven-Design

Page 11: Arquitetura e design de software

DICAS++

ACOPLAMENTO

Dependência entre os objetos

COESÃO

Responsabilidade única

Page 12: Arquitetura e design de software

CAMADAS DO DDD …USER INTERFACE

APPLICATION

DOMAIN

INFRASTRUCTURE

Page 13: Arquitetura e design de software

PROGRAMAÇÃO VOLTADA À INTERFACE

DESAFIO #2

Page 14: Arquitetura e design de software

PROJETAR A INTERFACE PARA ENVIO DA NOTA FISCAL NO E-COMMERCE

SEFA

E-COMMERCE

DADOS: Nome da Empresa, CNPJ, Nome do Cliente, CPF, Descrição da Compra, Valor da Compra, Data da Compra

QUAL A INTERFACE SERIA OFERECIDO PARA ENVIAR OS DADOS DA NOTA FISCAL PELA

SEFA ?

COMO O E-COMMERCE DEVE USAR ESSA INTERFACE ?

Page 15: Arquitetura e design de software

TRADE-OFF

Page 16: Arquitetura e design de software

CRIAR OU USAR ?

Page 17: Arquitetura e design de software

CRIAR OU USAR ?

▸ Considere o uso de alguma estratégia de injeção de dependência

▸ Controla o ciclo de vida e as outras dependências.

▸ Ex:

▸ JAVA: CDI, Spring …

QUEREMOS SEMPRE USAR

Page 18: Arquitetura e design de software

DICAS++

▸ Domine seu ferramenta de mapeamento objeto relacional

▸ Faça uso de cache sempre que puder

▸ Se a operação puder ser assíncrona faça.

Page 19: Arquitetura e design de software

EVOLUINDO O CENÁRIO DESAFIO #3

Page 20: Arquitetura e design de software

PROJETO DE UM NOVO BANCO

BANCO 100% ON-LINE

CARTÃO DE CRÉDITO

CLIENTES

WEB

MOBILE

Transações

Ebanking

Clientes precisam ter acesso à relatórios na webNo celular precisam de agilidade para consultar as informações

QUE DECISÕES DA ARQUITETURA PRECISAM SER TOMADAS ?

Page 21: Arquitetura e design de software

TRADE-OFF

Page 22: Arquitetura e design de software

PRÓXIMOS CAPÍTULOS …

▸ Teste de Software

▸ Práticas de programação e uso de design patterns

▸ Comunicação de aplicações (WebServices)

▸ JVM

Page 23: Arquitetura e design de software

RECOMENDO A LEITURA DO LIVRO: INTRODUÇÃO À ARQUITETURA E DESIGN DE SOFTWARE

Vitor Castro