<?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/"
	>

<channel>
	<title>Cousas do dia-a-dia &#187; Sem categoria</title>
	<atom:link href="http://www.brunoamaral.com.br/category/sem-categoria/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.brunoamaral.com.br</link>
	<description>Internet, Programação, Notícias e Dicas</description>
	<lastBuildDate>Wed, 09 Jun 2010 19:00:05 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.3</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Refactoring: O que é isso?</title>
		<link>http://www.brunoamaral.com.br/2009/07/13/refactoring-o-que-e-isso/</link>
		<comments>http://www.brunoamaral.com.br/2009/07/13/refactoring-o-que-e-isso/#comments</comments>
		<pubDate>Mon, 13 Jul 2009 10:00:07 +0000</pubDate>
		<dc:creator>Bruno Amaral</dc:creator>
				<category><![CDATA[Sem categoria]]></category>

		<guid isPermaLink="false">http://www.brunoamaral.com.br/?p=302</guid>
		<description><![CDATA[Refactoring, Refactoração ou Refatoração é uma técnica para recodificação de um determinado trecho de código, alterando sua estrutura interna e melhorando-a sem fazer quaisquer alterações em seu comportamento externo. Portanto, preservando seu comportamento inicial.
Surgiu na década de 80/90 na comunidade Smalltalk. Foi Kent Beck (eXtreme Programming) que a trouxe para a indústria.
Para melhores resultados, recomenda-se trabalhar com [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Refactoring</strong>, <strong>Refactoração</strong> ou <strong>Refatoração </strong>é uma técnica para recodificação de um determinado trecho de código, alterando sua estrutura interna e melhorando-a sem fazer quaisquer alterações em seu comportamento externo. Portanto, preservando seu comportamento inicial.</p>
<p>Surgiu na década de 80/90 na comunidade Smalltalk. Foi Kent Beck (eXtreme Programming) que a trouxe para a indústria.</p>
<p>Para melhores resultados, recomenda-se trabalhar com pequenos trechos de códigos e efetuar as modificações significantes. Porque com trechos de código curtos, as chances do sistema parar de funcionar ou criar bugs são menores.</p>
<p>Importante ressaltar que Refatoração não repara erros, nem adiciona novas funcionalidades, parâmetros e etc.</p>
<p>A Refatoração melhora a compreensão, a documentação e a clareza do código fonte, tornando-o mais fácil para manutenções futuras.</p>
<p>Mas porque existe Refatoração? Por alguns motivos como, por exemplo, questões de cronograma, alguns sistemas ficam sem documentação e com falhas no desenvolvimento. O que torna dificil a manutenção e conseqüentemente custoso para a corporação.</p>
<p>Exemplo <strong>1</strong>:</p>
<p><strong>Sem refactoring</strong></p>
<pre class="brush: c-sharp;">
public bool ehAnoBissexto(int ano)
{
  bool AnoBissexto = false;

  if (ano &gt; 0)
  {
    if (ano % 4 == 0)
    {
      if ((ano % 100 != 0) || (ano % 400 == 0))
      {
        AnoBissexto = true;
      }
    }
  }
  return AnoBissexto;
}
...</pre>
<p><strong>Com refactoring</strong></p>
<pre class="brush: c-sharp;">
public bool ehAnoBissexto(int ano)
{
  if (ano == 0)
  return false;

  if (ano % 4 != 0)
  return false;

  if ((ano % 100 == 0) &amp;&amp; (ano % 400 != 0))
  return false;

  return true;
}
...</pre>
<p>Referência:<br />
<a href="http://pt.wikipedia.org/wiki/Ano_bissexto" target="_blank">http://pt.wikipedia.org/wiki/Ano_bissexto</a></p>
<p>Vamos a um resumo sobre Refatoração.</p>
<p><strong>Motivos para se fazer Refatoração:<br />
</strong>- Existem métodos maiores que 50 linhas?<br />
- Código duplicado<br />
- Método muito longo<br />
- Classe muito grande<br />
- Intimidade inapropriada<br />
- Comentários<br />
- Muitos parâmetros<br />
- Três repetições</p>
<p><strong>O que melhorar?<br />
</strong>- Nome de variáveis<br />
- Interfaces dos objetos<br />
- Arquitetura<br />
- Encapsular código repetido em um novo método<br />
- Generalização de métodos</p>
<p><strong>Em que melhora?<br />
</strong>- Simplicidade<br />
- Flexibilidade<br />
- Clareza<br />
- Desempenho</p>
<p><strong>Existem ferramentas no mercado?<br />
</strong>- <a href="http://st-www.cs.uiuc.edu/users/brant/Refactory/" target="_blank">Refactoring Browser</a></p>
<p><strong>Leitura recomendada:</strong><br />
- <a href="http://www.refactoring.com" target="_blank">Refactoring.com</a></p>
<p>Abraços,<br />
Bruno Amaral</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunoamaral.com.br/2009/07/13/refactoring-o-que-e-isso/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
