Disseminandoconhecimentoeinovaoemdesenvolvimentodesoftwarecorporativo.
Textoapesquisar
Login
En| | | Fr| Brasil Desenvolvimento Java .Net CloudComputing Mobile HTML5 JavaScript Ruby DSLs Python PaaS
Destaquesde:Desenvolvimento
ComopublicarumaaplicaoASP.NETMVC4noAzure?
VejaospassosparasecriarumaaplicaonoASP.NETMVC4combancodedadosepubliclanoAzureemminutos.Nesta palestra,VinciusmostraumpassoapassoparaapublicaonoAzure,asvantagensdestecenrioeasfacilidadesqueasferramentasda Microsoftnosoferecem. VertodosdeDesenvolvimento Arquitetura eDesign Modelagem Performance& Escalabilidade BDD AOP DesignPattern Segurana
www.infoq.com/br/news/2012/07/DRY-acoplamento-duplicacao
1/10
26/03/14
CloudComputing SOA
Destaquesde:ArquiteturaeDesign
JusBrasil:Comomanteredisponibilizaramaiorbasededadosjurdicosdopaspara10milhesdebrasileirospor ms.
OJusBrasilsurgiucomoumsimplesagregadordenotciasparaosprofissionaisdoDireito,cresceuexponencialmenteehoje detmamaiorbasedeinformaespblicasdopas.Conheaaarquiteturaeosaprendizadosdaempresanesseprocessodeescalamacia. VertodosdeArquiteturaeDesign Processos ePrticas Agile Leadership Tcnicasgeis Metodologias IntegraoContnua Lean/Kanban ClienteseRequisitos
Destaquesde:ProcessosePrticas
ScrumMaster:PosioouPapel?
UmaidiacomumecompartilhadapormuitosadequeequipesScrumprecisamdeumScrumMaster(SM)dedicado.Para equipesnovas,issoatfazalgumsentido.Masmedidaqueasequipesamadurecem,elasaindaprecisamdeumSMdedicado?PodeumSMter vriasequipes?Podeaequipeassumirestepapelpormeiodeumdeseusintegrantes? VertodosdeProcessosePrticas Operaes eInfraestrutura Performance& Escalabilidade CloudComputing Virtualizao ServidoresdeAplicao
www.infoq.com/br/news/2012/07/DRY-acoplamento-duplicacao
2/10
26/03/14
Destaquesde:OperaeseInfraestrutura
ControlandoasVersesdeseuBancodeDadoscomMigrations
UmavezemproduooBDtemestadoealteraesemtabelaspodemresultaremperdadedadosouumbancoinconsistente. Conheaferramentaseframeworksparalidarcomesseproblema,donovoEntityFrameworkCodeFirstMigrationsasoluesopensourcepara outrosbancos,ecomoatualizartudoissoemumambientedeintegraocontnua. VertodosdeOperaeseInfraestrutura Arquitetura Corporativa ArquiteturaCorporativa BPM Business/ITAlignment Integration(EAI) Governana Web2.0 SOA
Destaquesde:ArquiteturaCorporativa
DesenvolvimentodeviewsparaaplicativosAndroid
NessaentrevistaconversamoscomJonasAlvessobreodesenvolvimentodeaplicativosparaAndroid.Abordamosassuntos comoacriaodeinterfacesparadiferentesresoluesdetelas,testesunitrios,boasprticasadotadasnodesenvolvimentodasinterfacese sugestesdoquepodeounoserutilizadonosaplicativosAndroid. VertodosdeArquiteturaCorporativa SoPaulo2014 9a11deabril Agile Java Mobile HTML5 JavaScript CloudComputing Todosostpicos
Novodesign
Vocestaqui:IncioNotciasNoserepita?DRYeodilemaentrecdigoduplicadoealtoacoplamento
www.infoq.com/br/news/2012/07/DRY-acoplamento-duplicacao
3/10
26/03/14
Noserepita?DRYeodilemaentrecdigoduplicadoealto acoplamento
porAbelAvram,traduzidoporRafaelSakuraiem16Jul2012|Dsuaopinio Compartilhar |
"Marcarcomofavorito" "Favoritos" OprincpioDRY("noserepita")buscareduziraduplicaodecdigoeosproblemasdemanutenoresultantes,masquandomalaplicado aumentaoacoplamentoeatrapalhaaleituradocdigo.Conheaaopiniodevriosespecialistassobreoprincpio,suasaplicaesearmadilhas. DRYumaabreviaoparaoinglsDon'tRepeatYourself,"NoseRepita".oprimeiroprincpiododesenvolvimentodesoftwaremencionadopor AndyHunteDaveThomasnoclssicolivroOProgramadorPragmtico:deaprendizamestre.Oprincpiodeclaraque: Cadapartedoconhecimentodeveterumarepresentaonica,noambguaedefinitvadentrodosistema. Nessecontexto,HuntenfatizaoimpactonegativodaduplicaoeconsequentementeaimportnciadeusarDRY,nowikidorepositriodepadresde Portland: Aduplicao(sejaelaacidentalouproposital)podelevarapesadelosdemanuteno,almdeatrapalhararefatoraoegerar contradieslgicas. Aduplicaoeapossibilidadedecontradiespodemsurgiremqualquerlugar:naarquitetura,emrequisitos,cdigooudocumentao. Osefeitospodemvariardesdefalhasdeimplementaodecdigo,confusodosdesenvolveresatafalhacompletadosistema. PodeseargumentarqueamaiordificuldadenaremediaodoproblemadoAno2000,veiodafaltadeumasimplesabstraodedatas dentrodeumsistemaoconhecimentodasdataseoseutratamentoeramespalhadopormuitaspartes. EmboraoDRYpareaumprincpioobrigatrionaengenhariadesoftware,AndersMunchalertaquehexcees: Nohproblematermaisqueumarepresentaoparaumpedaodeconhecimento,sehouverummecanismoeficazquegarantaa consistnciaentreospedaos.Consideresealgunscasos: DefiniesedeclaraesdefunesemC:estogeralmentesincronizadas,porqueocompiladorinformaasinconsistncias, forandooprogramadoratomaralgumaao Testesunitrios:apresenadeinconsistnciassignificaqueotesteirfalhar,novamenteforandoquealgumtomealgumaatitude Cdigogeradoautomaticamente:aregeneraoperidicagaranteaconsistncia. EstasexceesnaverdadereforamasrazesportrsdoDRY,masumaquestodeveserlevadaemconta:osprogramadoresnoestariamlevandoo princpiodoDRYaosextremos?NoestariaoDRYsendomalcompreendidooumalutilizado? Quantoaisso,afirmaDaveThomas: AmaioriadaspessoasinterpretamoDRYcomo'nodupliquecdigo'.Masessanoainteno.AideiaportrsdoDRYmuitomais ampla. ThomasexpandeoprincpiodoDRYparatodoumsistemadesoftware: ODRYdizquecadapedaodeconhecimentodosistemadeveterumarepresentaodefinitivaenoambguaquecadaumdesses pedaosnodesenvolvimentodealgumacoisadeveterumarepresentaonica.Oconhecimentodosistemamuitomaisabrangenteque apenasocdigo.Incluitambmesquemasdebasededados,planosdetestes,osistemadebuildseatmesmoadocumentao. Dadotodoesseconhecimento,porquedevemosencontrarapenasumamaneirapararepresentarcadacaracterstica?Arespostabvia
www.infoq.com/br/news/2012/07/DRY-acoplamento-duplicacao
4/10
26/03/14
quesehmaisdeumamaneiraparaexpressaramesmacoisa,emalgummomentohaverduasoutrsrepresentaesdiferentesqueiro ficarinconsistentesentresi.Mesmoquenofiquem,havertrabalhoemmanterasrepresentaesalinhadassemprequeumaalterao ocorrer.Emudanasiroocorrer.ODRYimportantequandosequersoftwareflexvelefcildemanter. Oproblemacomorepresentartodasestasdiferentespartesdeconhecimentosomenteumavez.Seforapenascdigo,entosepode obviamenteorganizloparaquenoserepita,comajudademtodosesubrotinas.Mascomotratardecoisascomoesquemasdebasede dados?aqueseaplicamoutrastcnicasdolivro[PragmaticProgrammer],comoousodeferramentasdegeraodecdigo,sistemasde automaodebuildselinguagensdescript.Estastcnicaspermitemrepresentaesnicasedefinitivasqueirogerarprodutosdetrabalho nodefinitivoscomocdigosouDDLs(linguagemdedescriodedados). ApesardeasquestessobreousodoDRYpareceremtersidoresolvidashumbomtempo,oprincpiofoimencionadonovamentenoQCon2012de Londresporvriospalestrantes,incluindoGregYoungeDanNorth.Esteltimochamouatenoparapossveiserrosnasuaaplicao.OuvimosGreg YoungsobreosproblemasdoDRY: OargumentobsicocontraseguiroDRYquehumoutroladodaquesto.Quandoseguimosoprincpio,muitocomumque desenvolvedorescomecemaadicionaracoplamentosecomplexidadeaosseussoftwares.Umladomuitomaisfcildemedir:a quantidadedetentativasporhoradeeditar/compilar/testar,quandoprecisocorrigirbugsemmuitoslocaisjooutroladomaisdifcilde mensurar:oacoplamentoeacomplexidadeembutidosnosoftwareemnomedoDRY. PodeseargumentarqueseoDRYforseguido"corretamente"nuncahaveracoplamentoecomplexidadedentrodosoftware.Istoat possvelpossoescrevercdigosqueseguemperfeitamenteoDRY,semintroduziracoplamentoecomplexidade.Masissopressupeque meuconhecimentosejaperfeito. OInfoq.comtambmouviuDavidChelimsky,autorelderdedesenvolvimentodoRSpec.EleafirmaqueviuoDRYsendousadoato"nvelde linhadecdigo,oquenemsempreapropriado(emboraalgumasvezespossaserusadoassim)".Eleapresentaoseguinteexemplo:
d e s c r i b e" P e r s o n # f u l l _ n a m e "d o i t" c o n c a t st h ef i r s ta n dl a s tn a m e s "d o f i r s t _ n a m e=" J o h n " l a s t _ n a m e=" D o e " p e r s o n=P e r s o n . n e w ( : f i r s t _ n a m e= >f i r s t _ n a m e ,: l a s t _ n a m e= >l a s t _ n a m e ) p e r s o n . f u l l _ n a m e . s h o u l de q" # { f i r s t _ n a m e }# { l a s t _ n a m e } " e n d e n d
EmboraestepedaodecdigoeviteduplicaesepossaparecerumaboaimplementaodoDRY,Chelimskypreferecdigomaislegvel:
d e s c r i b e" P e r s o n # f u l l _ n a m e "d o i t" c o n c a t st h ef i r s ta n dl a s tn a m e s "d o p e r s o n=P e r s o n . n e w ( : f i r s t _ n a m e= >" J o h n " ,: l a s t _ n a m e= >" D o e " ) p e r s o n . f u l l _ n a m e . s h o u l de q" J o h nD o e " e n d e n d
Nele,aslinhas3a11foramsubstitudaspor:
{ : c o n t r o l l e r= >s e l f ,: p a r a m s= >p a r a m s ,: s e s s i o n= >s e s s i o n ,: c o o k i e s= >c o o k i e s ,: r e q u e s t= >r e q u e s t , : r e s p o n s e= >r e s p o n s e ,: f l a s h= >f l a s h ,: r e n d e r e r= >R e n d e r e r . n e w ( s e l f )} . e a c hd o| k e y ,v a l u e |r e s o l v e r . a d d ( k e y ,v a l u e ) e n d
www.infoq.com/br/news/2012/07/DRY-acoplamento-duplicacao
5/10
26/03/14
originaisirochamar.Comisso,osmtodosoriginaisficamacopladosaomtodoextradoeindiretamenteumaooutro.Istoparecelgico einofensivonocontextodeumnicoobjeto,masequandoreconhecemoscomportamentossimilaresentredoisoumaisobjetos? Paraeliminaraduplicao,temosqueintroduzirumnovoobjeto,queserumadependnciadosdoisobjetosoriginaisouaindapior(e maiscomum),fazerumdosobjetosoriginaisdependerdooutro.Essaabordagemcriadependnciasartificiaisentreobjetosno relacionados,reduzindosuacapacidadedeevoluiraolongodotempo.Introduzirumnovoobjetoaumentaconsideravelmentea "superfcie"dosistema,edeveserfeitocomcuidadoereflexo,oquenemsempreocorreemrefatoraes. ParaevitarousoextremodoDRY,Chelimskypropebalancearseuusocomodeoutrosprincpiosdedesenvolvimento: ODRYimportante,masosprincpiosSOLIDdeUncleBob,porexemplo,ououtrosconceitosmaisamploscomobaixoacoplamentoe altacoeso,soigualmenteimportantes.Nosuficienteapenasaplicarumprincpiootempotododeveselevaremcontatodosos princpiosepesarseusvaloresrelativosdeacordocomasituao.comosaberqualtemperodevesercolocadonopeixeequaladicionar nacarne.Algunsfuncionamnosdoiscasosoutrosnemtanto. Sections ProcessosePrticas Desenvolvimento Topics AcoplamentoBaixo DRY MelhoresPrticas Contedoeditorialrelacionado
Olvisitante
VocprecisacadastrarsenoInfoQBrasilouLoginparaenviarcomentrios.Hmuitasvantagensemsecadastrar.
ObtenhaomximodaexperinciadoInfoQBrasil.
Dsuaopinio
M e n s a g e m
Forneaumassunto
HTMLpermitido:a,b,br,blockquote,i,li,pre,u,ul,p Recebermenssagensdessadiscusso
Enviarmensagem
ComentriosdacomunidadeWatchThread Fechar
www.infoq.com/br/news/2012/07/DRY-acoplamento-duplicacao
6/10
26/03/14
Assunto
Suaresposta
Contedoeducacional
Todos Artigos Apresentaes Entrevistas Livros
ComopublicarumaaplicaoASP.NETMVC4noAzure?
VinciusSouza21Mar,2014
JavanomundodosEmbarcados
GustavoLeite20Mar,2014
www.infoq.com/br/news/2012/07/DRY-acoplamento-duplicacao
7/10
26/03/14
AdfromVimeoDownloadVideos[X]
JusBrasil:Comomanteredisponibilizaramaiorbasededadosjurdicosdopaspara10 milhesdebrasileirosporms.
LeonardoGamas,OsvaldoMatos20Mar,2014
ControlandoasVersesdeseuBancodeDadoscomMigrations
AndreCarlucci19Mar,2014
OtimizaodeperformancenaWeb:desafiosdomundomobile
SrgioLopes18Mar,2014
ConstruindoumframeworkCSS
DiegoEis13Mar,2014
www.infoq.com/br/news/2012/07/DRY-acoplamento-duplicacao
8/10
26/03/14
AkkaToolkit2.3comJava8esuporteapersistncia JusBrasil:Comomanteredisponibilizaramaiorbasededadosjurdicosdopaspara10milhesdebrasileirosporms. ConstruindoumframeworkCSS ProcessosePrticas ScrumMaster:PosioouPapel? SubmissesparaShortTalks&7motivosparaparticipardoQConSP Equilibrandoexperimentoseentregasnodesenvolvimentodeprodutos OperaeseInfraestrutura ControlandoasVersesdeseuBancodeDadoscomMigrations SubmissesparaShortTalks&7motivosparaparticipardoQConSP FacebookfazMercurialsermaisrpidoqueoGit ArquiteturaCorporativa SubmissesparaShortTalks&7motivosparaparticipardoQConSP DesenvolvimentodeviewsparaaplicativosAndroid QConSoPaulo:100%detutoriaisdefinidos,43palestrase58palestrantes Incio Todosostpicos ConfernciasQCon Criarconta Login QConsMundiais SoPaulo,Apr911,2014 London,March57,2014 NewYork,Jun913,2014 SanFrancisco,Nov3Nov7,2014 Parceiros
NewsletterdoInfoQBrasil
Assinenossanewslettersemanalparaacompanharonovocontedopublicadonositeeoutrosdestaques
Seuemailaqui
Assinar
Desenvolvimento
www.infoq.com/br/news/2012/07/DRY-acoplamento-duplicacao
9/10
26/03/14
www.infoq.com/br/news/2012/07/DRY-acoplamento-duplicacao
10/10