<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Marcelo Madeira</title>
	<atom:link href="http://celodemelo.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://celodemelo.wordpress.com</link>
	<description>celodemelo.wordpress.com</description>
	<lastBuildDate>Wed, 09 Sep 2009 11:15:31 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>pt-br</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='celodemelo.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/ad5c4fdf9aaca9eebee454b5b9942146?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Marcelo Madeira</title>
		<link>http://celodemelo.wordpress.com</link>
	</image>
			<item>
		<title>Novos Horizontes</title>
		<link>http://celodemelo.wordpress.com/2009/09/09/novos-horizontes/</link>
		<comments>http://celodemelo.wordpress.com/2009/09/09/novos-horizontes/#comments</comments>
		<pubDate>Wed, 09 Sep 2009 11:14:37 +0000</pubDate>
		<dc:creator>Marcelo Madeira</dc:creator>
				<category><![CDATA[Outros]]></category>

		<guid isPermaLink="false">http://celodemelo.wordpress.com/?p=189</guid>
		<description><![CDATA[
Apartir do dia 04 de setembro eu faço parte de mais uma estatística do Brasil. A lista de desempregados. Isso mesmo!!! Estou saindo da Tata Consultancy Services. Passei quase um ano nesta empresa e aprendi muito com excelentes colegas de trabalho.
O motivo da saída é um intercâmbio de 03 meses no Canadá, mais específico em [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=celodemelo.wordpress.com&blog=720919&post=189&subd=celodemelo&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><img class="aligncenter size-full wp-image-194" title="images" src="http://celodemelo.files.wordpress.com/2009/09/images.jpeg?w=130&#038;h=87" alt="images" width="130" height="87" /></p>
<p>Apartir do dia 04 de setembro eu faço parte de mais uma estatística do Brasil. A lista de desempregados. Isso mesmo!!! Estou saindo da Tata Consultancy Services. Passei quase um ano nesta empresa e aprendi muito com excelentes colegas de trabalho.</p>
<p>O motivo da saída é um intercâmbio de 03 meses no Canadá, mais específico em Vancouver. Espero poder praticar e melhorar meu inglês pois um bom conhecimento do inglês é muito importante na área de TI. Estou indo em busca de mais este conhecimento.</p>
<p>Bem&#8230; quem quiser me ajudar.. em dezembro estarei procurando emprego&#8230;rs</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/celodemelo.wordpress.com/189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/celodemelo.wordpress.com/189/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/celodemelo.wordpress.com/189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/celodemelo.wordpress.com/189/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/celodemelo.wordpress.com/189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/celodemelo.wordpress.com/189/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/celodemelo.wordpress.com/189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/celodemelo.wordpress.com/189/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/celodemelo.wordpress.com/189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/celodemelo.wordpress.com/189/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=celodemelo.wordpress.com&blog=720919&post=189&subd=celodemelo&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://celodemelo.wordpress.com/2009/09/09/novos-horizontes/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f6406cf736cedce7f0cd166c25ae670d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">celodemelo</media:title>
		</media:content>

		<media:content url="http://celodemelo.files.wordpress.com/2009/09/images.jpeg" medium="image">
			<media:title type="html">images</media:title>
		</media:content>
	</item>
		<item>
		<title>Linguagens dinâmicas</title>
		<link>http://celodemelo.wordpress.com/2009/06/19/linguagens-dinamicas/</link>
		<comments>http://celodemelo.wordpress.com/2009/06/19/linguagens-dinamicas/#comments</comments>
		<pubDate>Fri, 19 Jun 2009 22:52:07 +0000</pubDate>
		<dc:creator>Marcelo Madeira</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Outros]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://celodemelo.wordpress.com/?p=183</guid>
		<description><![CDATA[Linguagem dinâmica, também conhecida como linguagem de scripting, ainda é algo obscuro para a grande maioria dos desenvolvedores. Entender e aplicar seus conceitos é algo que pode causar espanto e muitas dúvidas. Porém, é importante conhecer as vantagens e destantagens deste tipo de linguagem, saber quando é válido ou não a sua utilização no desenvolvimento [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=celodemelo.wordpress.com&blog=720919&post=183&subd=celodemelo&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Linguagem dinâmica, também conhecida como linguagem de scripting, ainda é algo obscuro para a grande maioria dos desenvolvedores. Entender e aplicar seus conceitos é algo que pode causar espanto e muitas dúvidas. Porém, é importante conhecer as vantagens e destantagens deste tipo de linguagem, saber quando é válido ou não a sua utilização no desenvolvimento de sistemas.</p>
<p>Estas linguagens são linguagens de alto nível, a grande maioria com <a href="http://celodemelo.wordpress.com/2008/02/28/linguagem-fortemente-tipada-strong-typing/" target="_blank">tipagem</a> dinâmica e com um Protocolo de Meta-Objeto (<a href="http://en.wikipedia.org/wiki/Metaobject" target="_blank">Meta-Object Protocol</a>), ou MOP. Estas duas características proporcionam muitas facilidades e um enorme poder no desenvolvimento. Porém, quando não usadas com cuidado, podem causar grandes problemas.</p>
<p>Tipagem dinâmica é muito criticada pela comunidade de desenvolvedores, principalmente porque &#8220;escondem&#8221; alguns erros em tempo de desenvolvimento (compilação). Linguagens dinâmicas não são compiladas, portanto tipagem dinâmica faz todo sentido. Porém, existe algumas linguagens dinâmicas que utilizam de tipagem estática, como <a href="http://groovy.codehaus.org/" target="_blank">Groovy</a>, para utilizar de técnicas como overloading de métodos e de construtor.</p>
<p>Meta-Object Protocol sem dúvida é a grande vantagem das linguagens dinâmicas. Em linguagens de programação como java, os objetos armazenam seus métodos e seus atributos. Com MOP, cada objeto tem um meta objeto associado e é no meta objeto que ficam os métodos. O objeto é responsável por armazenar seu estado. A grande vantagem é a possibilidade de alterar o meta objeto em tempo de execução e adicionar novas funcionalidades nos objetos.</p>
<p>Com o surgimento do Ruby e do framework Ruby on Rails, as linguagens dinâmicas vem ganhando força. Muitas empresas que utilizam metodologias agéis, estão aderindo a este tipo de linguagem, principalmente ao Ruby on Rails. Portanto, é visível que as linguagens dinâmicas e principalmente a linguagem Ruby poderá ser o próximo &#8220;boom&#8221; no desenvolvimento de software.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/celodemelo.wordpress.com/183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/celodemelo.wordpress.com/183/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/celodemelo.wordpress.com/183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/celodemelo.wordpress.com/183/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/celodemelo.wordpress.com/183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/celodemelo.wordpress.com/183/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/celodemelo.wordpress.com/183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/celodemelo.wordpress.com/183/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/celodemelo.wordpress.com/183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/celodemelo.wordpress.com/183/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=celodemelo.wordpress.com&blog=720919&post=183&subd=celodemelo&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://celodemelo.wordpress.com/2009/06/19/linguagens-dinamicas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f6406cf736cedce7f0cd166c25ae670d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">celodemelo</media:title>
		</media:content>
	</item>
		<item>
		<title>Falando em Java 2009</title>
		<link>http://celodemelo.wordpress.com/2009/05/26/falando-em-java-2009/</link>
		<comments>http://celodemelo.wordpress.com/2009/05/26/falando-em-java-2009/#comments</comments>
		<pubDate>Tue, 26 May 2009 13:15:58 +0000</pubDate>
		<dc:creator>Marcelo Madeira</dc:creator>
				<category><![CDATA[Outros]]></category>

		<guid isPermaLink="false">http://celodemelo.wordpress.com/?p=173</guid>
		<description><![CDATA[
No último final de semana participei do evento falando em java 2009. Como sempre, o pessoal da Caelum arrebentou. As duas paletras do Jim Webber foram sensacionais.
As dicas que o Sérgio Lopes deu sobre o hibernate também foram excelentes. Concordo com ele que o grande problema do hibernate são os desenvolvedores que não se preocupam [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=celodemelo.wordpress.com&blog=720919&post=173&subd=celodemelo&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><img class="aligncenter" title="Falando Em Java 2009" src="http://www.caelum.com.br/falando-em-java/images/logo_fj2009.jpg" alt="" width="249" height="127" /></p>
<p>No último final de semana participei do evento <a href="http://www.caelum.com.br/falando-em-java/">falando em java 2009</a>. Como sempre, o pessoal da Caelum arrebentou. As duas paletras do <a href="http://jim.webber.name/">Jim Webber</a> foram sensacionais.</p>
<p>As dicas que o Sérgio Lopes deu sobre o hibernate também foram excelentes. Concordo com ele que o grande problema do hibernate são os desenvolvedores que não se preocupam em utilizá-lo adequadamente.</p>
<p>Outra grande novidade foi o anúncio do vRaptor 3. Particularmente, eu <a href="http://celodemelo.wordpress.com/2007/05/12/vantagens-do-vraptor/">sou fã</a> deste framework.</p>
<p>Estou ansioso para o lançamento <a href="http://arquiteturajava.com.br/">do livro</a> que o pessoal da Caelum está escrevendo.</p>
<p>Infelizmente,  ainda não foi este ano que ganhei o Wii&#8230;.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/celodemelo.wordpress.com/173/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/celodemelo.wordpress.com/173/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/celodemelo.wordpress.com/173/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/celodemelo.wordpress.com/173/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/celodemelo.wordpress.com/173/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/celodemelo.wordpress.com/173/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/celodemelo.wordpress.com/173/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/celodemelo.wordpress.com/173/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/celodemelo.wordpress.com/173/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/celodemelo.wordpress.com/173/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=celodemelo.wordpress.com&blog=720919&post=173&subd=celodemelo&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://celodemelo.wordpress.com/2009/05/26/falando-em-java-2009/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f6406cf736cedce7f0cd166c25ae670d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">celodemelo</media:title>
		</media:content>

		<media:content url="http://www.caelum.com.br/falando-em-java/images/logo_fj2009.jpg" medium="image">
			<media:title type="html">Falando Em Java 2009</media:title>
		</media:content>
	</item>
		<item>
		<title>14º EDTED &#8211; Encontro de Design e Tecnologia Digital !</title>
		<link>http://celodemelo.wordpress.com/2009/04/26/14%c2%ba-edted-encontro-de-design-e-tecnologia-digital/</link>
		<comments>http://celodemelo.wordpress.com/2009/04/26/14%c2%ba-edted-encontro-de-design-e-tecnologia-digital/#comments</comments>
		<pubDate>Sun, 26 Apr 2009 21:36:08 +0000</pubDate>
		<dc:creator>Marcelo Madeira</dc:creator>
				<category><![CDATA[Outros]]></category>

		<guid isPermaLink="false">http://celodemelo.wordpress.com/?p=162</guid>
		<description><![CDATA[
Tive o prazer de participar de mais um grande evento. Fico feliz por ver eventos bem organizados e com palestrantes de alto nível no Brasil. 
Cada vez mais posso comprovar que a dupla SCRUM e RoR está muito forte e tem tudo para revolucionar o mercado de TI. 
Destaco as palestras do Fabiano Milani e [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=celodemelo.wordpress.com&blog=720919&post=162&subd=celodemelo&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><img src="http://celodemelo.files.wordpress.com/2009/04/edted_14_fundopreto_v1.gif?w=295&#038;h=251" alt="Edted" title="Edted" width="295" height="251" class="size-full wp-image-163" /></p>
<p>Tive o prazer de participar de mais um grande evento. Fico feliz por ver eventos bem organizados e com palestrantes de alto nível no Brasil. </p>
<p>Cada vez mais posso comprovar que a dupla SCRUM e RoR está muito forte e tem tudo para revolucionar o mercado de TI. </p>
<p>Destaco as palestras do <a href="http://fabianomilani.blogspot.com/">Fabiano Milani</a> e do <a href="http://gc.blog.br/">Guilherme Chapiewski</a>. Gostei muito das dicas do Guilherme sobre como se tornar um bom profissional de TI.</p>
<p>Resumindo, foi um bom esquenta para o Falando em Java 2009.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/celodemelo.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/celodemelo.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/celodemelo.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/celodemelo.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/celodemelo.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/celodemelo.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/celodemelo.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/celodemelo.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/celodemelo.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/celodemelo.wordpress.com/162/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=celodemelo.wordpress.com&blog=720919&post=162&subd=celodemelo&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://celodemelo.wordpress.com/2009/04/26/14%c2%ba-edted-encontro-de-design-e-tecnologia-digital/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f6406cf736cedce7f0cd166c25ae670d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">celodemelo</media:title>
		</media:content>

		<media:content url="http://celodemelo.files.wordpress.com/2009/04/edted_14_fundopreto_v1.gif" medium="image">
			<media:title type="html">Edted</media:title>
		</media:content>
	</item>
		<item>
		<title>Twitter</title>
		<link>http://celodemelo.wordpress.com/2009/03/26/twitter/</link>
		<comments>http://celodemelo.wordpress.com/2009/03/26/twitter/#comments</comments>
		<pubDate>Thu, 26 Mar 2009 23:13:15 +0000</pubDate>
		<dc:creator>Marcelo Madeira</dc:creator>
				<category><![CDATA[Outros]]></category>

		<guid isPermaLink="false">http://celodemelo.wordpress.com/?p=158</guid>
		<description><![CDATA[Post bem rápido.
Apenas para contar que agora estou no twitter.
Quem quiser me seguir:
http://twitter.com/celodemelo
       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=celodemelo.wordpress.com&blog=720919&post=158&subd=celodemelo&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Post bem rápido.<br />
Apenas para contar que agora estou no twitter.</p>
<p>Quem quiser me seguir:<br />
<a href="http://twitter.com/celodemelo">http://twitter.com/celodemelo</a></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/celodemelo.wordpress.com/158/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/celodemelo.wordpress.com/158/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/celodemelo.wordpress.com/158/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/celodemelo.wordpress.com/158/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/celodemelo.wordpress.com/158/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/celodemelo.wordpress.com/158/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/celodemelo.wordpress.com/158/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/celodemelo.wordpress.com/158/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/celodemelo.wordpress.com/158/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/celodemelo.wordpress.com/158/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=celodemelo.wordpress.com&blog=720919&post=158&subd=celodemelo&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://celodemelo.wordpress.com/2009/03/26/twitter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f6406cf736cedce7f0cd166c25ae670d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">celodemelo</media:title>
		</media:content>
	</item>
		<item>
		<title>Ruby Module</title>
		<link>http://celodemelo.wordpress.com/2009/03/09/ruby-module/</link>
		<comments>http://celodemelo.wordpress.com/2009/03/09/ruby-module/#comments</comments>
		<pubDate>Mon, 09 Mar 2009 19:09:19 +0000</pubDate>
		<dc:creator>Marcelo Madeira</dc:creator>
				<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://celodemelo.wordpress.com/?p=140</guid>
		<description><![CDATA[Um recurso muito interessante e extremamente útil na linguagem Ruby é o Módulo (module). O módulo possui duas funcionalidades: namespace e mixin.
Namespace
O Módulo pode ser utilizado para prover um namespace para os componentes, mantendo-os mais organizados evitando possíveis problemas de sobrescrita. Veja o exemplo abaixo:

Devido às características dinâmicas da linguagem, o método verify da classe [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=celodemelo.wordpress.com&blog=720919&post=140&subd=celodemelo&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Um recurso muito interessante e extremamente útil na linguagem Ruby é o Módulo (module). O módulo possui duas funcionalidades: namespace e mixin.</p>
<p><strong>Namespace</strong></p>
<p>O <em>Módulo</em> pode ser utilizado para prover um <em>namespace </em>para os componentes, mantendo-os mais organizados evitando possíveis problemas de sobrescrita. Veja o exemplo abaixo:</p>
<p><img src="http://celodemelo.files.wordpress.com/2009/03/ruby_module_1.jpg?w=279&#038;h=255" alt="ruby_module_1" title="ruby_module_1" width="279" height="255" class="aligncenter size-full wp-image-142" /></p>
<p>Devido às características dinâmicas da linguagem, o método verify da classe AccessControl foi sobrescrito e o resultado do código será &#8216;verify 2&#8242;. Esta sobrescrita pode ser intencional ou não.</p>
<p>Para deixar o código mais organizado e prevenir que o componente seja sobrescrito por engano, pode-se utilizar o <em>módulo</em> como <em>namespace</em>:</p>
<p><img src="http://celodemelo.files.wordpress.com/2009/03/ruby_module_2.jpg?w=221&#038;h=134" alt="ruby_module_2" title="ruby_module_2" width="221" height="134" class="aligncenter size-full wp-image-145" /></p>
<p>Para referenciar elementos que estão dentro de um módulo, usa-se Modulo::Elemento</p>
<p><img src="http://celodemelo.files.wordpress.com/2009/03/ruby_module_3.jpg?w=401&#038;h=40" alt="ruby_module_3" title="ruby_module_3" width="401" height="40" class="aligncenter size-full wp-image-147" /></p>
<p>Desta forma, a sobrescrita por engano já está evitada. O código abaixo irá imprimir: </p>
<p>verify<br />
verify 2</p>
<p><img src="http://celodemelo.files.wordpress.com/2009/03/ruby_module_4.jpg?w=406&#038;h=352" alt="ruby_module_4" title="ruby_module_4" width="406" height="352" class="aligncenter size-full wp-image-148" /></p>
<p><strong> Mixin</strong></p>
<p>Mixin é um recurso interessante. Um módulo pode ser incluído em uma classe. Quando isso ocorre, a classe passa a ter os métodos declarados no módulo. Veja o exemplo abaixo:</p>
<p><img src="http://celodemelo.files.wordpress.com/2009/03/ruby_module_5.jpg?w=451&#038;h=360" alt="ruby_module_5" title="ruby_module_5" width="451" height="360" class="aligncenter size-full wp-image-152" /></p>
<p>A classe AccessControl não possui o método &#8220;testing&#8221;. Quando o interpretador do ruby não encontra um método um um objeto, o método <em>method_missing</em> é invocado. </p>
<p>No exemplo, o módulo MethodMissing foi incluído dentro da classe AccessControl. Desta forma, a classe AccessControl passou a ter os métodos definidos no módulo.</p>
<p>O código imprime:<br />
verify 2<br />
The method &#8216;testing&#8217; doesn&#8217;t exist!!!!</p>
<p>&#8212;-</p>
<p>O conceito de módulo é sem dúvida um recurso muito interessante e bastante utilizado pelo framework Ruby on Rails.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/celodemelo.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/celodemelo.wordpress.com/140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/celodemelo.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/celodemelo.wordpress.com/140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/celodemelo.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/celodemelo.wordpress.com/140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/celodemelo.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/celodemelo.wordpress.com/140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/celodemelo.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/celodemelo.wordpress.com/140/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=celodemelo.wordpress.com&blog=720919&post=140&subd=celodemelo&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://celodemelo.wordpress.com/2009/03/09/ruby-module/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f6406cf736cedce7f0cd166c25ae670d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">celodemelo</media:title>
		</media:content>

		<media:content url="http://celodemelo.files.wordpress.com/2009/03/ruby_module_1.jpg" medium="image">
			<media:title type="html">ruby_module_1</media:title>
		</media:content>

		<media:content url="http://celodemelo.files.wordpress.com/2009/03/ruby_module_2.jpg" medium="image">
			<media:title type="html">ruby_module_2</media:title>
		</media:content>

		<media:content url="http://celodemelo.files.wordpress.com/2009/03/ruby_module_3.jpg" medium="image">
			<media:title type="html">ruby_module_3</media:title>
		</media:content>

		<media:content url="http://celodemelo.files.wordpress.com/2009/03/ruby_module_4.jpg" medium="image">
			<media:title type="html">ruby_module_4</media:title>
		</media:content>

		<media:content url="http://celodemelo.files.wordpress.com/2009/03/ruby_module_5.jpg" medium="image">
			<media:title type="html">ruby_module_5</media:title>
		</media:content>
	</item>
		<item>
		<title>Rails Magazine</title>
		<link>http://celodemelo.wordpress.com/2009/03/02/rails-magazine/</link>
		<comments>http://celodemelo.wordpress.com/2009/03/02/rails-magazine/#comments</comments>
		<pubDate>Mon, 02 Mar 2009 13:47:35 +0000</pubDate>
		<dc:creator>Marcelo Madeira</dc:creator>
				<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://celodemelo.wordpress.com/?p=137</guid>
		<description><![CDATA[
Quem gosta de Rails agora tem uma revista onde será possível compartilhar conhecimentoe novas idéias. A revista é Canadense e em breve será disponibilizado uma versão em PDF da mesma.
Creio que já passou da hora de uma iniciatia deste porte aqui no Brasil.. O que vocês acham?
       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=celodemelo.wordpress.com&blog=720919&post=137&subd=celodemelo&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a href="http://railsmagazine.com/"><img height="120" width="120" src="http://railsmagazine.com/images/ticker/railsmagazine1.jpg" alt="Rails Magazine"></a></p>
<p>Quem gosta de Rails agora tem uma revista onde será possível compartilhar conhecimentoe novas idéias. A revista é Canadense e em breve será disponibilizado uma versão em PDF da mesma.</p>
<p>Creio que já passou da hora de uma iniciatia deste porte aqui no Brasil.. O que vocês acham?</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/celodemelo.wordpress.com/137/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/celodemelo.wordpress.com/137/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/celodemelo.wordpress.com/137/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/celodemelo.wordpress.com/137/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/celodemelo.wordpress.com/137/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/celodemelo.wordpress.com/137/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/celodemelo.wordpress.com/137/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/celodemelo.wordpress.com/137/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/celodemelo.wordpress.com/137/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/celodemelo.wordpress.com/137/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=celodemelo.wordpress.com&blog=720919&post=137&subd=celodemelo&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://celodemelo.wordpress.com/2009/03/02/rails-magazine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f6406cf736cedce7f0cd166c25ae670d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">celodemelo</media:title>
		</media:content>

		<media:content url="http://railsmagazine.com/images/ticker/railsmagazine1.jpg" medium="image">
			<media:title type="html">Rails Magazine</media:title>
		</media:content>
	</item>
		<item>
		<title>Profissionais de TI</title>
		<link>http://celodemelo.wordpress.com/2009/02/27/profissionais-de-ti/</link>
		<comments>http://celodemelo.wordpress.com/2009/02/27/profissionais-de-ti/#comments</comments>
		<pubDate>Fri, 27 Feb 2009 13:02:40 +0000</pubDate>
		<dc:creator>Marcelo Madeira</dc:creator>
				<category><![CDATA[Outros]]></category>

		<guid isPermaLink="false">http://celodemelo.wordpress.com/?p=123</guid>
		<description><![CDATA[Hoje em dia o mercado de trabalho oferece muitas oportunidades e talvez seja por isso que existem tantos profissionais que não se preocupam em aprender novas tecnologias. 
Quais profissionais que você conhece já parou pra estudar outro framework? Quantos conhecem EJB? Spring? JPA? VRaptor? Waffle? JSF? etc
Esta falta de interesse dos profissionais pode ser um motivo para [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=celodemelo.wordpress.com&blog=720919&post=123&subd=celodemelo&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Hoje em dia o mercado de trabalho oferece muitas oportunidades e talvez seja por isso que existem tantos profissionais que não se preocupam em aprender novas tecnologias. </p>
<p>Quais profissionais que você conhece já parou pra estudar outro framework? Quantos conhecem EJB? Spring? JPA? VRaptor? Waffle? JSF? etc</p>
<p>Esta falta de interesse dos profissionais pode ser um motivo para que a maioria das empresas continuem utilizando o famoso Struts 1.x.</p>
<p>Tenho alguns amigos que com 3 anos de experiência chegaram a um cargo de Desenvoledor Sênior. Outros com 05 anos que ainda são plenos. Na minha opinião, o que distingue um profissional de TI é o seu conhecimento e não só seu tempo de experiência. Felizmente, na nossa área, o conhecimento pode ser adquirido sozinho. Você pode aprender  JSF, JPA, EJB, Spring e inúmeras outras tecnologias em casa. Basta força de vontade de muita dedicação.</p>
<p>Portanto, não fique reclamando por falta de promoção. Qual o seu valor no mercado de trabalho? Qual o seu diferencial? O que você está fazendo para merecer um aumento? Seja curioso, estude novas tecnologias. Faça como <a href="http://www.objectzilla.com.br/2009/02/15/aprenda-java-ee-6-agora/" target="_blank">Leonardo Veríssimo</a>, antecipe-se às novidades.</p>
<p>Enfim, vou resumir este post com uma frase que gosto muito.</p>
<p>&#8220;Seu sucesso só depende de você!!!&#8221;</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/celodemelo.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/celodemelo.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/celodemelo.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/celodemelo.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/celodemelo.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/celodemelo.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/celodemelo.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/celodemelo.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/celodemelo.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/celodemelo.wordpress.com/123/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=celodemelo.wordpress.com&blog=720919&post=123&subd=celodemelo&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://celodemelo.wordpress.com/2009/02/27/profissionais-de-ti/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f6406cf736cedce7f0cd166c25ae670d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">celodemelo</media:title>
		</media:content>
	</item>
		<item>
		<title>Head First Rails</title>
		<link>http://celodemelo.wordpress.com/2009/02/19/head-first-rails/</link>
		<comments>http://celodemelo.wordpress.com/2009/02/19/head-first-rails/#comments</comments>
		<pubDate>Thu, 19 Feb 2009 15:01:07 +0000</pubDate>
		<dc:creator>Marcelo Madeira</dc:creator>
				<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://celodemelo.wordpress.com/?p=114</guid>
		<description><![CDATA[ 
 
Ruby on Rails é uma tecnologia que eu sempre esteve na minha lista de estudos.
Dediquei um bom tempo estudando ruby e quando me achei preparado, comprei o livro Head First Rails para iniciar no mundo rails. Sou fã da série Head First e sem dúvida aguardei ansioso a chegada do livro.
Talvez pela minha grande expectativa, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=celodemelo.wordpress.com&blog=720919&post=114&subd=celodemelo&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p> </p>
<div id="attachment_115" class="wp-caption aligncenter" style="width: 250px"><img class="size-full wp-image-115" title="head_first_rails" src="http://celodemelo.files.wordpress.com/2009/02/head_first_rails.jpg?w=240&#038;h=240" alt="Capa Head First Rails" width="240" height="240" /><p class="wp-caption-text">Capa Head First Rails</p></div>
<p> </p>
<p>Ruby on Rails é uma tecnologia que eu sempre esteve na minha lista de estudos.</p>
<p>Dediquei um bom tempo estudando ruby e quando me achei preparado, comprei o livro Head First Rails para iniciar no mundo rails. Sou fã da série Head First e sem dúvida aguardei ansioso a chegada do livro.</p>
<p>Talvez pela minha grande expectativa, me decepcionei um pouco com o conteúdo do livro. Em algumas situações ele foi um pouco repetitivo deixando de explicar alguns detalhes sobre o funcionamento do framework.</p>
<p>O capítulo sobre a integração com Google Maps é um pouco confuso. O REST é apresentado em poucas páginas apenas no final do livro. Infelizmente faltou conteúdo no livro.</p>
<p>Porém nem tudo está perdido, o conteúdo sobre AJAX está bem claro e simples de entender. O funcionamento dos controllers, views, validações e ActiveRecord também foi esclarecedor.</p>
<p>Bem, apesar de não ter ficando 100% satisfeito, o livro me abriu as portas pra uma nova forma de desenvolvimento web. Muito mais produtiva e sem perder a qualidade. </p>
<p>railers &lt;&lt; &#8220;Marcelo Madeira&#8221;</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/celodemelo.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/celodemelo.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/celodemelo.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/celodemelo.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/celodemelo.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/celodemelo.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/celodemelo.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/celodemelo.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/celodemelo.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/celodemelo.wordpress.com/114/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=celodemelo.wordpress.com&blog=720919&post=114&subd=celodemelo&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://celodemelo.wordpress.com/2009/02/19/head-first-rails/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f6406cf736cedce7f0cd166c25ae670d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">celodemelo</media:title>
		</media:content>

		<media:content url="http://celodemelo.files.wordpress.com/2009/02/head_first_rails.jpg" medium="image">
			<media:title type="html">head_first_rails</media:title>
		</media:content>
	</item>
		<item>
		<title>Baixo Acoplamento</title>
		<link>http://celodemelo.wordpress.com/2009/02/10/baixo-acoplamento/</link>
		<comments>http://celodemelo.wordpress.com/2009/02/10/baixo-acoplamento/#comments</comments>
		<pubDate>Tue, 10 Feb 2009 13:19:04 +0000</pubDate>
		<dc:creator>Marcelo Madeira</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://celodemelo.wordpress.com/?p=88</guid>
		<description><![CDATA[Programar é uma tarefa ardua e programar um código que siga os bons princípios é mais ainda. Na correria do dia a dia, acaba-se esquecendo das boas práticas e o resultado é um código &#8220;macarrônico&#8221; totalmente sem padrão. Um colega sempre dizia &#8220;Programar bem é uma arte!!!&#8221;.
Neste post será abordado um princípio muito importante para [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=celodemelo.wordpress.com&blog=720919&post=88&subd=celodemelo&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Programar é uma tarefa ardua e programar um código que siga os bons princípios é mais ainda. Na correria do dia a dia, acaba-se esquecendo das boas práticas e o resultado é um código &#8220;macarrônico&#8221; totalmente sem padrão. Um colega sempre dizia &#8220;Programar bem é uma arte!!!&#8221;.</p>
<p>Neste post será abordado um princípio muito importante para sistemas orientados a objeto, o desacoplamento do código. Todo o artigo será baseado no estudo de caso de uma pequena API para envio de malas diretas.</p>
<p>Abaixo segue a modelagem do problema:</p>
<p><img class="aligncenter size-full wp-image-95" title="mock_article_1" src="http://celodemelo.files.wordpress.com/2009/02/mock_article_1.jpg?w=528&#038;h=209" alt="Modelagem" width="528" height="209" /></p>
<p>A classe mala direta é responsável por enviar uma mensagem a um grupo de destinatários. Para isso, ela utiliza do componente &#8220;EnviadorEmail&#8221;. Segue a implementação da mesma:</p>
<p> </p>
<p><img class="aligncenter size-full wp-image-97" title="Código" src="http://celodemelo.files.wordpress.com/2009/02/mock_article_cod1.jpg?w=459&#038;h=322" alt="Código" width="459" height="322" /></p>
<p>O exemplo acima demonstra um exemplo de código altamente acoplado. Isto se caracteriza pela utilização direta de uma classe concreta (new EnviadorEmail()), acarretando em um problema muito grave: Torna-se impossível trocar a forma de envio da mala direta em tempo de execução pois o código está altamente acoplado com o componente EnviadorEmail.</p>
<p><strong>Desacoplando o código:</strong></p>
<p>Desacoplar um código consiste em montar um design que o deixe mais fléxivel a mudanças. Programar um código desacoplado garante uma maior qualidade e facilita futuras mudanças.</p>
<p>Erich Gamma, o criador do Eclipse, JUnit e co-autor do famoso livro &#8220;Padrões de Projeto&#8221; disse em uma <a href="http://www.artima.com/lejava/articles/designprinciples.html">entrevista</a>: &#8220;Program to an interface, not an implementation&#8221;.</p>
<p>Programar para interface deixa o código mais flexível, permitindo trocar a implementação de um componente em tempo de execução. Refatorando o nosso design para utilizar interfaces:</p>
<p><img class="aligncenter size-full wp-image-99" title="Modelagem" src="http://celodemelo.files.wordpress.com/2009/02/mock_article_2.jpg?w=550&#038;h=195" alt="Modelagem" width="550" height="195" /></p>
<p>Refatorando o código da MalaDireta:</p>
<p><img class="aligncenter size-full wp-image-100" title="Código" src="http://celodemelo.files.wordpress.com/2009/02/mock_article_cod3.jpg?w=461&#038;h=323" alt="Código" width="461" height="323" /></p>
<p>Quando um código depende de uma interface, pode-se decidir em tempo de execução qual a implementação será utilizada. Um exemplo pode ser verificado na imagem abaixo:</p>
<p><img class="aligncenter size-full wp-image-102" title="Código" src="http://celodemelo.files.wordpress.com/2009/02/mock_article_cod4.jpg?w=433&#038;h=225" alt="Código" width="433" height="225" /></p>
<p>Porém ainda existe um pequeno acoplamento no método enviar. O método ainda precisa dar o new em uma implementação, o que o torna fortemente acoplado a ela. O ideal é que outro componente tome a decisão de qual implementação criar. A função da MalaDireta é enviar sua mensagem. Não é sua responsabilidade saber de qual forma.</p>
<p><strong>Factory</strong></p>
<p>O <a href="http://www.guj.com.br/java.tutorial.artigo.137.1.guj">design pattern Factory</a> tem como função separar a lógica de criação de objetos em um outro componente (fábrica). No exemplo acima, pode-se ter o EnviadorFactory. Uma forma de implementação do factory pode ser visto abaixo:</p>
<p><img class="aligncenter size-full wp-image-104" title="Código" src="http://celodemelo.files.wordpress.com/2009/02/mock_article_cod5.jpg?w=385&#038;h=335" alt="Código" width="385" height="335" /></p>
<p>Refatorando a classe MalaDireta para utilizar a fábrica:</p>
<p><img class="aligncenter size-full wp-image-105" title="Código" src="http://celodemelo.files.wordpress.com/2009/02/mock_article_cod6.jpg?w=498&#038;h=260" alt="Código" width="498" height="260" /></p>
<p>Utilizando a fábrica foi possível separar a lógica de criação da forma de envio das malas diretas, porém o método agora ficou acoplado com a fábrica. Utilizar fábricas solucionou apenas parte do problema, como desacoplar totalmente o código da MalaDireta???</p>
<p><strong>Inversão de Controle</strong></p>
<p>Martin Fowler escreveu em seu site um <a href="http://martinfowler.com/articles/injection.html">artigo muito interessante</a> sobre Inversão de Controle (IoC). O artigo levanta uma interessante discussão: Qual controle da aplicação está sendo invertido???</p>
<p>A inversão de controle consiste em uma mudança na forma como são criadas as dependências dos objetos. No exemplo utilizando fábricas, o método &#8220;pede&#8221; para a fábrica uma dependência. Na visão da IoC, não é mais o código que pede por uma dependência, ele apenas declara que precisa de determinado componente e ele é disponibilizado.</p>
<p>Seguindo este princípio, Martin Fowler questiona se o nome correto para a Inversão de Controle não seria Injeção de Dependência. Segundo ele, a mudança afeta a forma como são gerenciadas as dependêcnias que agora são injetadas nos objetos, eliminando assim o uso da palavra <em>new </em> no código:</p>
<p><img class="aligncenter size-full wp-image-106" title="Código" src="http://celodemelo.files.wordpress.com/2009/02/mock_article_cod7.jpg?w=498&#038;h=301" alt="Código" width="498" height="301" /></p>
<p>A classe acima declara em seu construtor que precisa de uma implementação de IEnviador. Ou seja, alguém irá &#8220;injetar&#8221; esta dependência. O método enviar não sabe pra onde está enviando sua mensagem. O código está totalmente desacoplado!!!!</p>
<p>Exemplo de um código que utiliza a MalaDireta:</p>
<p><img class="aligncenter size-full wp-image-107" title="Código" src="http://celodemelo.files.wordpress.com/2009/02/mock_article_cod8.jpg?w=550&#038;h=358" alt="Código" width="550" height="358" /></p>
<p> </p>
<p>Com um código totalmente desacoplado, fica fácil criar testes unitários e consequentemente aumenta a qualidade do código.</p>
<p>Infelizmente não são todos os desenvolvedores que possuem esta preocupação. Mas espero que este pequeno artigo tenha gerado uma grande reflexão sobre como construir componentes de verdade.</p>
<p>Sempre que for codificar, lembre-se da frase: &#8220;Programe para interfaces e não para implementações!&#8221;.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/celodemelo.wordpress.com/88/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/celodemelo.wordpress.com/88/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/celodemelo.wordpress.com/88/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/celodemelo.wordpress.com/88/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/celodemelo.wordpress.com/88/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/celodemelo.wordpress.com/88/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/celodemelo.wordpress.com/88/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/celodemelo.wordpress.com/88/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/celodemelo.wordpress.com/88/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/celodemelo.wordpress.com/88/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=celodemelo.wordpress.com&blog=720919&post=88&subd=celodemelo&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://celodemelo.wordpress.com/2009/02/10/baixo-acoplamento/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f6406cf736cedce7f0cd166c25ae670d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">celodemelo</media:title>
		</media:content>

		<media:content url="http://celodemelo.files.wordpress.com/2009/02/mock_article_1.jpg" medium="image">
			<media:title type="html">mock_article_1</media:title>
		</media:content>

		<media:content url="http://celodemelo.files.wordpress.com/2009/02/mock_article_cod1.jpg" medium="image">
			<media:title type="html">Código</media:title>
		</media:content>

		<media:content url="http://celodemelo.files.wordpress.com/2009/02/mock_article_2.jpg" medium="image">
			<media:title type="html">Modelagem</media:title>
		</media:content>

		<media:content url="http://celodemelo.files.wordpress.com/2009/02/mock_article_cod3.jpg" medium="image">
			<media:title type="html">Código</media:title>
		</media:content>

		<media:content url="http://celodemelo.files.wordpress.com/2009/02/mock_article_cod4.jpg" medium="image">
			<media:title type="html">Código</media:title>
		</media:content>

		<media:content url="http://celodemelo.files.wordpress.com/2009/02/mock_article_cod5.jpg" medium="image">
			<media:title type="html">Código</media:title>
		</media:content>

		<media:content url="http://celodemelo.files.wordpress.com/2009/02/mock_article_cod6.jpg" medium="image">
			<media:title type="html">Código</media:title>
		</media:content>

		<media:content url="http://celodemelo.files.wordpress.com/2009/02/mock_article_cod7.jpg" medium="image">
			<media:title type="html">Código</media:title>
		</media:content>

		<media:content url="http://celodemelo.files.wordpress.com/2009/02/mock_article_cod8.jpg" medium="image">
			<media:title type="html">Código</media:title>
		</media:content>
	</item>
	</channel>
</rss>