TDC 2011 (Florianópolis) - Entendendo a Arquitetura Evolucionária
-
Upload
leandro-daniel -
Category
Education
-
view
1.271 -
download
0
description
Transcript of TDC 2011 (Florianópolis) - Entendendo a Arquitetura Evolucionária
Entendendo aArquitetura Evolucionária
Leandro Daniel@leandronet
Florianópolis
Leandro Daniel
Desenvolvimento de softwareAutor de artigos
SQL Server
Consultoria
Editor Técnico Easy .net Magazine
.net Magazine
.NET
Arquitetura de Software
ClubeDelphi
Comunidade
Business Intelligence
@leandronet
Várias certificações...
http://voidpodcast.com
Existe diferença?
@leandronet#TDC2011
Arquitetura
Implementação
Design
Mudanças na arquitetura são caras!
@leandronet#TDC2011
Arquitetura é aquela coisa que é difícil de mudar depois.
Por essa razão, deve existir o mínimo possível dessa coisa.
Arquitetura e o desenvolvimento de Software
#TDC2011 @leandronet
Espectro do Design
Waterfallclássico
BDUF
SomeDUF
DesignEmergente
Agile
XGH
Arquitetura Evolucionária e Design Emergente
#Simples
#Agile
#Flexível
#Foco do cliente
#Iterativa
#Adaptativa
#YAGNI
#TDC2011 @leandronet
"Não existe nenhum design
no início. Você começa
codificando uma
pequena quantidade de
funcionalidades, e vai
acrescentando outras
gradativamente, deixando
que o design tome forma!”
Martin Fowler
@leandronet
Design Emergente
#TDC2011
Manter as coisas como estão, exige trabalho!
Sim, a entropia existe em software...
#TDC2011 @leandronet
Quanto mais tempo você adiar suas decisões...
...Mais contextualizadas elas serão!
@leandronet#TDC2011
Práxis da Arquitetura Evolucionária
Dívida técnica sempre é uma vilã?
#TDC2011 @leandronet
...Depende!
Fuuuuuuu!!! OMG!!
#TDC2011 @leandronet
Quadrante da dívida técnica
“Nós não temos tempo para
design”
“Nós vamos lidar com as
consequências”
“O que são camadas?”
“Agora nós sabemos que
deveríamos ter feito isso”
Irresponsávele
De propósito
Irresponsávele
Sem querer
Prudentee
De propósito
Prudentee
Sem querer
Complexidade Essencial
Complexidade Acidental
#TDC2011 @leandronet
#TDC2011 @leandronet
Padrões idiomáticos no Design de Software
Métrica 1 Métrica 2Padrão
Idiomático
#TDC2011 @leandronet
Tornado o Refactoring inteligente
R1
R2
R3 Propri
edade
Colet
iva
#TDC2011 @leandronet
Evolucionário ≠ Caótico
É necessário tomar essa decisão agora?
Posso adiar essa decisão com segurança?
O que posso fazer para tornar essa decisão reversível?
@leandronet
Toda e qualquer atividade dentro do desenvolvimento de software é importante.
Pense sempre em flexibilidade.
Não lute contra as “mudanças”.
@leandronet
Tenha ciência do seu conhecimento (e da sua ignorância, se possível...)
“A simplicidade consiste em subtrair o óbvio e acrescentar o significativo.”(John Maeda)
Quando em dúvida, erre pela simplicidade.
@leandronet
Referências
Pesquise no Google por:• “Neal Ford” + “Evolutionary Architecture”• “Martin Fowler” + Design + Enterprise
http://reverb.leandrodaniel.com
http://elemarjr.net
http://voidpodcast.com