Upload
vitor-castro
View
275
Download
0
Embed Size (px)
Citation preview
ARQUITETURA E DESIGN DE SOFTWARE
POR VITOR CASTRO
“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
PAPEL DO ARQUITETO ?
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
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
….
….
….
IDENTIFICANDO OS ELEMENTOS DE UM SISTEMA
DESAFIO #1
PROJETO DE UM E-COMMERCE
? ? ?
? ?
TRADE-OFF
ORIENTAÇÃO A OBJETOS IMPLEMENTAÇÃO
TEXT
DICAS
▸ Programe voltado à Interface, não à implementação !!!
▸ Evite herança, favoreça composição
▸ Considere Domain-Driven-Design
DICAS++
ACOPLAMENTO
Dependência entre os objetos
COESÃO
Responsabilidade única
CAMADAS DO DDD …USER INTERFACE
APPLICATION
DOMAIN
INFRASTRUCTURE
PROGRAMAÇÃO VOLTADA À INTERFACE
DESAFIO #2
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 ?
TRADE-OFF
CRIAR OU USAR ?
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
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.
EVOLUINDO O CENÁRIO DESAFIO #3
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 ?
TRADE-OFF
PRÓXIMOS CAPÍTULOS …
▸ Teste de Software
▸ Práticas de programação e uso de design patterns
▸ Comunicação de aplicações (WebServices)
▸ JVM
RECOMENDO A LEITURA DO LIVRO: INTRODUÇÃO À ARQUITETURA E DESIGN DE SOFTWARE
Vitor Castro