<?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>Refatorando Padrões &#187; OO</title>
	<atom:link href="http://www.refatorandopadroes.com.br/category/oo/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.refatorandopadroes.com.br</link>
	<description>Programação orientada às melhores práticas</description>
	<lastBuildDate>Mon, 03 Sep 2007 12:40:10 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Criando um booleano de três estados</title>
		<link>http://www.refatorandopadroes.com.br/2007/03/25/criando-um-booleano-de-tres-estados/</link>
		<comments>http://www.refatorandopadroes.com.br/2007/03/25/criando-um-booleano-de-tres-estados/#comments</comments>
		<pubDate>Sun, 25 Mar 2007 13:19:47 +0000</pubDate>
		<dc:creator>Carlos</dc:creator>
				<category><![CDATA[Anti-patterns]]></category>
		<category><![CDATA[OO]]></category>

		<guid isPermaLink="false">http://www.refatorandopadroes.com.br/?p=12</guid>
		<description><![CDATA[Antes de tudo este post não vai falar sobre física quântica, o objeto Boolean continua sendo aquele já conhecido por nós, mas vou falar sobre um anti-pattern que com certeza fez o Sr. Boole revirar no túmulo e que pessoalmente ainda me causa pesadelos.
Eu estava trabalhando em um módulo de um projeto, a certa altura [...]]]></description>
			<content:encoded><![CDATA[<p>Antes de tudo este post não vai falar sobre física quântica, o objeto Boolean continua sendo aquele já conhecido por nós, mas vou falar sobre um anti-pattern que com certeza fez o <a href="http://en.wikipedia.org/wiki/Boole" title="George Boole" target="_blank">Sr. Boole</a> revirar no túmulo e que pessoalmente ainda me causa pesadelos.</p>
<p>Eu estava trabalhando em um módulo de um projeto, a certa altura houve necessidade de se criar uma integração com um outro módulo, nós passaríamos algumas informações, dentre elas indicar ou não se um usuário confirmou uma operação durante o processo, até aí tudo bem, combinamos que para esta confirmação seria passado um Boolean.FALSE ou Boolean.TRUE. Integração implementada e testada.</p>
<p>Após um mês, o mesmo pessoal desta integração me avisa que está tudo errado no conceito da confirmação do usuário, o que outro módulo esperava eram três estados diferentes: se o usuário &#8220;disse&#8221; NÃO, se o usuário &#8220;disse&#8221; SIM ou se o usuário não indicou nenhuma das duas opções anteriores&#8230; sim eu sei&#8230; não fez sentido pra mim também na época, mas acreditem fazia sentido para eles. Mas o problema, é que não houve tempo de opinarmos, o outro lado simplesmente já tinha decidido que seria enviado Boolean.TRUE, Boolean.FALSE ou NULL, caracterizando assim caríssimos, um glorioso mega anti-pattern: um Booleano de três estados. Tentei argumentar para mudarmos para um enum ou pelo menos constantes inteiras, mas não houve acordo, tivemos que aceitar o &#8220;monstrinho&#8221;, alegaram problemas de tempo para mudanças em vários lugares no módulo, o que já era um sinal de que havia coisas piores.</p>
<p>Lembrem-se, perder um tempo refatorando agora é um tempo ganho no futuro, ganhei várias dores de cabeça por causa desse anti-pattern.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.refatorandopadroes.com.br/2007/03/25/criando-um-booleano-de-tres-estados/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>O pior anti-pattern de todos: God object</title>
		<link>http://www.refatorandopadroes.com.br/2007/02/11/o-pior-anti-pattern-de-todos-god-object/</link>
		<comments>http://www.refatorandopadroes.com.br/2007/02/11/o-pior-anti-pattern-de-todos-god-object/#comments</comments>
		<pubDate>Sun, 11 Feb 2007 21:19:46 +0000</pubDate>
		<dc:creator>Carlos</dc:creator>
				<category><![CDATA[Anti-patterns]]></category>
		<category><![CDATA[OO]]></category>
		<category><![CDATA[Padrões]]></category>

		<guid isPermaLink="false">http://www.refatorandopadroes.com.br/?p=5</guid>
		<description><![CDATA[    Nada melhor, quando aprendendo sobre um assunto novo, do que saber o que NÃO fazer. Anti-pattern (Anti-padrões), nada mais são do que programar contra a reusabilidade e flexibilidade.
Óbvio que não é possível programar com a melhor flexibilidade e reusabilidade, aliás nem devemos tentar, como já disse Tony Hoare: &#8220;Premature optimization is the root of [...]]]></description>
			<content:encoded><![CDATA[<p>    Nada melhor, quando aprendendo sobre um assunto novo, do que saber o que <strong>NÃO</strong> fazer. Anti-pattern (Anti-padrões), nada mais são do que programar contra a reusabilidade e flexibilidade.</p>
<p>Óbvio que não é possível programar com a melhor flexibilidade e reusabilidade, aliás nem devemos tentar, como já disse <strong><a href="http://en.wikipedia.org/wiki/C._A._R._Hoare" title="Sobre Tony Hoare" target="_blank">Tony Hoare</a>: </strong><em>&#8220;Premature optimization is the root of all evil&#8221; </em>(&#8220;Otimização prematura é a raiz de todo mal&#8221;). Mas devemos sim estar atentos a código inútil, mal escrito ou ambos. É aí que entra o que considere o pior dos anti-patterns. O <a href="http://en.wikipedia.org/wiki/God_object" title="Definição de God object" target="_blank">God object</a>, o objeto que faz tudo, ele é onisciente, conhece a todos e todos dependem dele, assobia e chupa cana ao mesmo tempo, são classes com milhares de linhas, e o pior de tudo, assim como o próprio Deus, ninguém sabe de onde veio e nem para onde vai, mas com certeza levará todo o sistema junto em colapso.<strong><br />
</strong></p>
<p>Muito cuidado com esse tipo de objeto, se você notar que sua classe ou mesmo um único método está fazendo mais do que uma tarefa, pare&#8230; reflita&#8230; e RE-FA-TO-RE, nunca tenha medo de mexer no que está feito, lembre-se que alguns instantes refatorando lhe trará muitos benefícios no futuro.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.refatorandopadroes.com.br/2007/02/11/o-pior-anti-pattern-de-todos-god-object/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
