<?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>red, green, refactoring</title>
	<atom:link href="http://pindureta.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://pindureta.wordpress.com</link>
	<description>Make it run, make it right</description>
	<lastBuildDate>Tue, 03 Nov 2009 03:15:42 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>pt-br</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='pindureta.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/c63c30598e9cb3461b7c5ebb903df4cb?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>red, green, refactoring</title>
		<link>http://pindureta.wordpress.com</link>
	</image>
			<item>
		<title>BDD com Rails e Cucumber</title>
		<link>http://pindureta.wordpress.com/2009/11/03/bdd-com-rails-e-cucumber/</link>
		<comments>http://pindureta.wordpress.com/2009/11/03/bdd-com-rails-e-cucumber/#comments</comments>
		<pubDate>Tue, 03 Nov 2009 03:15:42 +0000</pubDate>
		<dc:creator>Developer</dc:creator>
				<category><![CDATA[posts]]></category>

		<guid isPermaLink="false">http://pindureta.wordpress.com/?p=341</guid>
		<description><![CDATA[Cucumber é um framework de BDD para Rails que permite que sejam escritos testes de maneira muito próxima à linguagem comum do cliente, ou seja, um mesmo documento de testes pode ser compreendido facilmente pelo cliente e pelo desenvolvedor, com o mínimo possível de ambiguidade e ruido.
Para instalar, considerando obviamente que você já tem o [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pindureta.wordpress.com&blog=4701067&post=341&subd=pindureta&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><div style="text-align:justify;"><a href="http://cukes.info/" target="_blank">Cucumber</a> é um framework de BDD para Rails que permite que sejam escritos testes de maneira muito próxima à linguagem comum do cliente, ou seja, um mesmo documento de testes pode ser compreendido facilmente pelo cliente e pelo desenvolvedor, com o mínimo possível de ambiguidade e ruido.</p>
<p>Para instalar, considerando obviamente que você já tem o Rails instalado, digite </p>
<pre class="brush: plain;">gem sources -a http://gems.github.com
sudo gem install cucumber webrat rspec rspec-rails</pre>
<p>No diretório raiz do seu projeto, digite</p>
<pre class="brush: plain;">script/generate cucumber --rspec</pre>
<p>E o suporte ao Cucumber será adicionado à sua aplicação, assim como uma pasta <code>/features</code>.</p>
<p>Na pasta <code>features</code>, cria um arquivo com extensão <code>.feature</code>. Por exemplo, <code>manage_users.feature</code>.</p>
<p>Vamos editar o arquivo e começar com a definição da funcionalidade (ou user story, se preferir):</p>
<pre class="brush: plain;">Feature: Manage users
    In order to manage users
    Visitors should be able to
    sign up and change their own stuff</pre>
<p>Atenção para a tabulação. Ela é fundamental para o bom funcionamento da ferramenta.</p>
<p>Em seguida, vamos adicionar os cenários possíveis que se aplicam a essa funcionalidade. Nesse caso podemos pensar nas situações que podem ocorrer para gerenciarmos usuários. Futuramente podemos adicionar mais situações que não foram previstas inicialmente e situações que estão causando comportamentos inesperados na sua aplicação.</p>
<pre class="brush: plain;">  Scenario: Add new user
      Given the Visitor wants to signup
      When the Visitor clicks signup
      Then open the signup page</pre>
<p>Novamente, atenção para o espaçamento no início de cada linha.</p>
<p>Execute o comando <code>cucumber</code> e você vai ver uma saída parecida com essa:</p>
<pre>Feature: Manage users
    In order to manage users
    Visitors should be able to
    sign up and change their own stuff

  Scenario: Add new user              # features/manage_users.feature:6</pre>
<pre style="color:#B8860B;">    Given the Visitor wants to signup # features/manage_users.feature:7
    When the Visitor clicks signup    # features/manage_users.feature:8
    Then open the signup page         # features/manage_users.feature:9</pre>
<pre>1 scenario (1 undefined)
3 steps (3 undefined)
0m0.297s

You can implement step definitions for undefined steps with these snippets:</pre>
<pre style="color:#B8860B;">
Given /^the Visitor wants to signup$/ do
  pending
end

When /^the Visitor clicks signup$/ do
  pending
end

Then /^open the signup page$/ do
  pending
end
</pre>
<p>O texto em amarelo significa que o teste (<code>step</code> na documentação do Cucumber) ainda não foi implementado.</p>
<p>Dentro da pasta <code>features</code>, tems uma chamada <code>step_definitions</code>. Nessa pasta vamos criar um arquivo <code>manage_users.rb</code>, copie o primeiro trecho em amarelo (Given &#8230; end) e cole no arquivo. Apague a linha onde está escrito <code>pending</code> e escreva seu código de teste.<br />
Ele vai ficar assim:</p>
<pre class="brush: plain;">Given /^the Visitor wants to signup$/ do
  #simula a visita do cliente à página principal, onde temos um link escrito &quot;Quero me cadastrar&quot;
  get '/'
end</pre>
<p>Ao executar <code>cucumber</code> novamente, veremos a seguinte saída:</p>
<pre>(...)
  Scenario: Add new user              # features/manage_users.feature:6</pre>
<pre style="color:lightgreen;">    Given the Visitor wants to signup # features/manage_users.feature:7</pre>
<pre style="color:#B8860B;">
    When the Visitor clicks signup    # features/manage_users.feature:8
    Then open the signup page         # features/manage_users.feature:9</pre>
<p>Vemos a linha do step que escrevemos na cor verde, ou seja, o teste passou. </p>
<p>O modo correto de se trabalhar com Cucumber é, assim como em TDD, escrever o teste, dentro de um step, executar e vê-lo falhar. Ao falhar, a linha será apresentada em vermelho. Programe somente o necessário para o teste passar (ficar verde), e passe imediatamente para o próximo step.</p>
<p>Existem formas de se trabalhar com Cucumber em outros idiomas, gerar documentação em HTML e PDF e outros macetes, mas isso vai ficar para um próximo post.</p>
<p>Enjoy <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </div>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pindureta.wordpress.com/341/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pindureta.wordpress.com/341/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pindureta.wordpress.com/341/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pindureta.wordpress.com/341/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pindureta.wordpress.com/341/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pindureta.wordpress.com/341/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pindureta.wordpress.com/341/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pindureta.wordpress.com/341/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pindureta.wordpress.com/341/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pindureta.wordpress.com/341/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pindureta.wordpress.com&blog=4701067&post=341&subd=pindureta&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://pindureta.wordpress.com/2009/11/03/bdd-com-rails-e-cucumber/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Developer</media:title>
		</media:content>
	</item>
		<item>
		<title>Melhorando a expressividade dos testes unitários com JUnitXtension &#8211; Parte 2</title>
		<link>http://pindureta.wordpress.com/2009/10/26/melhorando-a-expressividade-dos-testes-unitarios-com-junitxtension-parte-2/</link>
		<comments>http://pindureta.wordpress.com/2009/10/26/melhorando-a-expressividade-dos-testes-unitarios-com-junitxtension-parte-2/#comments</comments>
		<pubDate>Mon, 26 Oct 2009 16:03:09 +0000</pubDate>
		<dc:creator>Developer</dc:creator>
				<category><![CDATA[posts]]></category>

		<guid isPermaLink="false">http://pindureta.wordpress.com/?p=367</guid>
		<description><![CDATA[Na Parte 1 eu apresentei a motivação da biblioteca JUnitXtension. Recomendo a leitura.
Por que assertNotEquals ao invés de assertDifferent?
Eu poderia ter usado assertDifferent ao invés de assertNotEquals, mas isso poderia nos levar a um problema semântico. Em Java, == (operador de comparação de igualdade) tem um comportamento diferente de equals (método utilizado para checar a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pindureta.wordpress.com&blog=4701067&post=367&subd=pindureta&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><div style="text-align:justify;">Na <a href="http://pindureta.wordpress.com/2009/10/23/melhorando-a-expressividade-dos-testes-unitarios/" target="_blank">Parte 1</a> eu apresentei a motivação da biblioteca JUnitXtension. Recomendo a leitura.</p>
<p><b>Por que assertNotEquals ao invés de assertDifferent?</b></p>
<p>Eu poderia ter usado assertDifferent ao invés de assertNotEquals, mas isso poderia nos levar a um problema semântico. Em Java, == (operador de comparação de igualdade) tem um comportamento diferente de equals (método utilizado para checar a igualdade de valores). </p>
<p>No caso de uma String, por exemplo, <code>"foo" == "foo"</code>, ou seja, uma String é sempre igual a ela mesma. Porém, se tivermos uma variável foo, contendo &#8220;foobar&#8221; e outra bar, também contendo &#8220;foobar&#8221;, estaremos falando de variáveis diferentes, posicionadas em locais diferentes da memória e, na maioria das vezes, com valores também armazenados em endereços diferentes, fazendo com que o uso do operador == retorne falso, mesmo quando ambas contém o valor &#8220;foobar&#8221;. </p>
<p>Por conta de situações como essa, os objetos Java contém o método equals, que verifica se o conteúdo é igual, e não o endereço onde o conteúdo está guardado. Usando o exemplo do parágrafo anterior, foo.equals(bar) retornaria verdadeiro.</p>
<p>Sendo assim, para comparação entre objetos, assertDifferent deveria checar se o objeto informado é exatamente o mesmo do objeto esperado, o que até hoje ainda não vi acontecer. assertEquals checa se o valor da objeto informado é igual ao valor esperado, o que respeita a idéia inicial de uma asserção.</p>
<p>Por outro lado, em Java existe o conceito de tipos primitivos, que são números, bytes, caracteres e valores booleanos (true, false). Como um tipo primitivo não é um objeto, não existe a preocupação de termos um mesmo valor em endereços de memória diferentes, então uma comparação entre <code>foo=42</code> e <code>bar=42</code> é sempre verdadeira. Nesse caso sim o uso de assertDifferent faria sentido, mas causaria uma bela confusão por causa da sujeira que mais e mais asserções redundantes traria. Quando tratamos de números, podemos tanto dizer que <i>42 é diferente de 0</i> como podemos dizer também que <i>42 não é igual a 0</i>. Então fica o assertNotEquals e não se fala mais nisso =)</p>
<p>Se interessou pela idéia? Você encontra os mesmos problemas e quer conhecer mais? A biblioteca está na versão 0.1.1 e pode ser encontrada no <a href="http://code.google.com/p/junitxtension/" target="_blank">Google Code</a>. Críticas construtivas são sempre bem vindas.</p>
<p>Keep testing =)</p>
<p><i>P.S.: Agradecimentos públicos à minha esposa e ao <a href="http://twitter.com/fabiophms" target="_blank">Fábio Serra</a> pelas revisões nesse post</i>
</div>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pindureta.wordpress.com/367/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pindureta.wordpress.com/367/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pindureta.wordpress.com/367/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pindureta.wordpress.com/367/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pindureta.wordpress.com/367/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pindureta.wordpress.com/367/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pindureta.wordpress.com/367/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pindureta.wordpress.com/367/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pindureta.wordpress.com/367/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pindureta.wordpress.com/367/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pindureta.wordpress.com&blog=4701067&post=367&subd=pindureta&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://pindureta.wordpress.com/2009/10/26/melhorando-a-expressividade-dos-testes-unitarios-com-junitxtension-parte-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Developer</media:title>
		</media:content>
	</item>
		<item>
		<title>Melhorando a expressividade dos testes unitários com JUnitXtension &#8211; Parte 1</title>
		<link>http://pindureta.wordpress.com/2009/10/23/melhorando-a-expressividade-dos-testes-unitarios/</link>
		<comments>http://pindureta.wordpress.com/2009/10/23/melhorando-a-expressividade-dos-testes-unitarios/#comments</comments>
		<pubDate>Sat, 24 Oct 2009 02:31:12 +0000</pubDate>
		<dc:creator>Developer</dc:creator>
				<category><![CDATA[posts]]></category>
		<category><![CDATA[best practices]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[tdd]]></category>

		<guid isPermaLink="false">http://pindureta.wordpress.com/?p=352</guid>
		<description><![CDATA[
Qual dos códigos é mais simples de ler?
Código A

assertFalse(foo.equals(bar));

assertFalse(foobar == 2);

Código B

assertNotEquals(foo, bar);

assertNotEquals(foobar, 2);

Inicialmente criado apenas como um projeto para me auxiliar no trabalho a escrever testes mais simples de ler, resolvi compartilhar no Google Code a biblioteca, atualmente na versão 0.1.1.
A principal motivação foi de criar novas asserções que melhorem a expressividade, mesmo que [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pindureta.wordpress.com&blog=4701067&post=352&subd=pindureta&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><div style="text-align:justify;">
Qual dos códigos é mais simples de ler?</p>
<p><b>Código A</b></p>
<pre class="brush: plain;">
assertFalse(foo.equals(bar));

assertFalse(foobar == 2);
</pre>
<p><b>Código B</b></p>
<pre class="brush: plain;">
assertNotEquals(foo, bar);

assertNotEquals(foobar, 2);
</pre>
<p>Inicialmente criado apenas como um projeto para me auxiliar no trabalho a escrever testes mais simples de ler, resolvi compartilhar no <a href="http://code.google.com/p/junitxtension/" target="_blank">Google Code</a> a biblioteca, atualmente na versão 0.1.1.</p>
<p>A principal motivação foi de criar novas asserções que melhorem a expressividade, mesmo que redundantes, para que o desenvolvedor não tenha que escrever códigos auxiliares limitados à API padrão do JUnit.</p>
<p>Internamente o próprio JUnit trabalha dessa maneira. Praticamente todas as demais asserções são abstrações sobre assertTrue, no máximo adicionando alguma formatação diferenciada para que o resultado e um teste falho seja legível.</p>
<p>Ao invés de, por exemplo, escrevermos <code>assertFalse(0 == 1)</code>, podemos escrever <code>assertNotFalse(0, 1)</code>. Ao invés de <code>assertTrue(x &gt; 0)</code>, podemos simplesmente escrever <code>assertGreaterThanZero(x)</code> e assim por diante.</p>
<p>Outra vantagem diz respeito à cobertura de testes. Em alguns casos, quando se usa <code>assertFalse(x == 0)</code>, o algoritmo que calcula a cobertura vai informar que essa linha foi apenas parcialmente testada. Na verdade queremos apenas testar se x é igual a zero, mas se você persegue os 100% de cobertura, esse tipo de problema obriga a criar código extra apenas para manter a cobertura do código satisfatória. Utilizando <code>assertNotEquals(0, x)</code>, ou o teste passa ou não passa, reduzindo para apenas duas as opções possíveis, limpando o código e aumentando automagicamente a cobertura.</p>
<p>Se interessou pela idéia? Você encontra os mesmos problemas e quer conhecer mais? A biblioteca está na versão 0.1.1 e pode ser encontrada no <a href="http://code.google.com/p/junitxtension/" target="_blank">Google Code</a>. Críticas construtivas são sempre bem vindas.</p>
<p>Keep testing <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p><i>P.S.: Agradecimentos públicos à minha esposa e ao <a href="http://twitter.com/fabiophms" target="_blank">Fábio Serra</a> pelas revisões nesse post</i>
</div>
 Tagged: best practices, development, tdd <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pindureta.wordpress.com/352/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pindureta.wordpress.com/352/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pindureta.wordpress.com/352/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pindureta.wordpress.com/352/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pindureta.wordpress.com/352/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pindureta.wordpress.com/352/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pindureta.wordpress.com/352/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pindureta.wordpress.com/352/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pindureta.wordpress.com/352/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pindureta.wordpress.com/352/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pindureta.wordpress.com&blog=4701067&post=352&subd=pindureta&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://pindureta.wordpress.com/2009/10/23/melhorando-a-expressividade-dos-testes-unitarios/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Developer</media:title>
		</media:content>
	</item>
		<item>
		<title>Detox</title>
		<link>http://pindureta.wordpress.com/2009/08/21/detox/</link>
		<comments>http://pindureta.wordpress.com/2009/08/21/detox/#comments</comments>
		<pubDate>Sat, 22 Aug 2009 00:33:58 +0000</pubDate>
		<dc:creator>Developer</dc:creator>
				<category><![CDATA[posts]]></category>
		<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://pindureta.wordpress.com/?p=344</guid>
		<description><![CDATA[Desenvolvedor também tem vida pessoal.
Finalmente tirei férias e vou aproveitar o tempo livre para casar, ter um(a) filho(a), tomar um pouco de sol, escrever um artigo, montar uma palestra e, se sobrar tempo, escrever uma aplicação de OCR só pelo tesão de programar.
Bom final de Agosto e bom início de Setembro a todos e lembrem-se, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pindureta.wordpress.com&blog=4701067&post=344&subd=pindureta&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><div style="text-align:justify;">Desenvolvedor também tem vida pessoal.</p>
<p>Finalmente tirei férias e vou aproveitar o tempo livre para casar, ter um(a) filho(a), tomar um pouco de sol, escrever um artigo, montar uma palestra e, se sobrar tempo, escrever uma aplicação de OCR só pelo tesão de programar.</p>
<p>Bom final de Agosto e bom início de Setembro a todos e lembrem-se, crianças: <strong><em>Winners write tests</em></strong> <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </div>
 Tagged: general <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pindureta.wordpress.com/344/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pindureta.wordpress.com/344/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pindureta.wordpress.com/344/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pindureta.wordpress.com/344/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pindureta.wordpress.com/344/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pindureta.wordpress.com/344/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pindureta.wordpress.com/344/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pindureta.wordpress.com/344/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pindureta.wordpress.com/344/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pindureta.wordpress.com/344/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pindureta.wordpress.com&blog=4701067&post=344&subd=pindureta&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://pindureta.wordpress.com/2009/08/21/detox/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Developer</media:title>
		</media:content>
	</item>
		<item>
		<title>RESTful Rails automático</title>
		<link>http://pindureta.wordpress.com/2009/07/02/restful-rails-automatico/</link>
		<comments>http://pindureta.wordpress.com/2009/07/02/restful-rails-automatico/#comments</comments>
		<pubDate>Thu, 02 Jul 2009 17:41:11 +0000</pubDate>
		<dc:creator>Developer</dc:creator>
				<category><![CDATA[posts]]></category>
		<category><![CDATA[best practices]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[rest]]></category>

		<guid isPermaLink="false">http://pindureta.wordpress.com/?p=328</guid>
		<description><![CDATA[Solução OO para fazer sua aplicação Rails trabalhar de modo RESTful:
application_controller.rb:

  def index
    begin
      if request.post?
        create
      elsif request.get?
        read
      elsif request.put?
 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pindureta.wordpress.com&blog=4701067&post=328&subd=pindureta&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><div style="text-align:justify;">Solução OO para fazer sua aplicação Rails trabalhar de modo RESTful:</p>
<p><code>application_controller.rb</code>:</p>
<pre>
  def index
    begin
      if request.post?
        create
      elsif request.get?
        read
      elsif request.put?
        update
      elsif request.delete?
        delete
      end
    rescue NameError
      respond_to do |format|
        format.html {render :text =&gt; "&lt;h1&gt;Forbidden&lt;/h1&gt;", :status =&gt; 403}
      end
    end
  end
</pre>
<p>E no arquivo <code>routes.rb</code>:</p>
<pre>
  map.connect ':controller/:id'
  # map.connect ':controller/:action/:id'
</pre>
<p><b>Como funciona?</b></p>
<p>Uma aplicaçao Rails RESTful funciona, basicamente, utilizando o método HTTP como <i>verbo</i> e a URI como substantivo.</p>
<p>Ao invés de algo do tipo <code>http://application:3000/user/view/1</code>, com REST você usa <code>http://application:3000/user/1</code> para pegar os dados, atualizar ou apagar, mudando apenas o método HTTP da chamada.</p>
<p>Porém, por padrão, o Rails entende as requisições como sendo <code>/controller/action/id</code>, por isso a alteração no arquivo <code>routes.rb</code>, para fazer com que o segundo parâmetro seja o ID, já que quem define a action é o próprio método HTTP.</p>
<p>Dependendo do método utilizado, será executada uma action padronizada que será escrita no seu próprio controller, usando o conceito de sobrescrita de métodos. Caso você não escreva qualquer uma das actions, será exibida uma mensagem de erro padrão, permitindo que você foque somente no desenvolvimento do que for necessário.
</p></div>
 Tagged: best practices, development, rails, rest <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pindureta.wordpress.com/328/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pindureta.wordpress.com/328/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pindureta.wordpress.com/328/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pindureta.wordpress.com/328/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pindureta.wordpress.com/328/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pindureta.wordpress.com/328/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pindureta.wordpress.com/328/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pindureta.wordpress.com/328/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pindureta.wordpress.com/328/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pindureta.wordpress.com/328/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pindureta.wordpress.com&blog=4701067&post=328&subd=pindureta&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://pindureta.wordpress.com/2009/07/02/restful-rails-automatico/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Developer</media:title>
		</media:content>
	</item>
		<item>
		<title>Scott Adams was right</title>
		<link>http://pindureta.wordpress.com/2009/06/03/scott-adams-was-right/</link>
		<comments>http://pindureta.wordpress.com/2009/06/03/scott-adams-was-right/#comments</comments>
		<pubDate>Wed, 03 Jun 2009 21:03:27 +0000</pubDate>
		<dc:creator>Developer</dc:creator>
				<category><![CDATA[posts]]></category>
		<category><![CDATA[management]]></category>
		<category><![CDATA[rants]]></category>

		<guid isPermaLink="false">http://pindureta.wordpress.com/?p=321</guid>
		<description><![CDATA[

De volta ao Brasil, e de volta à programação normal.
A propósito, um desafio geek. Refatore o código abaixo:
do {
} while (window[++scan] == window[++match] &#38;&#38; window[++scan] == window[++match] &#38;&#38; window[++scan] == window[++match] &#38;&#38; window[++scan] == window[++match] &#38;&#38; window[++scan] == window[++match] &#38;&#38; window[++scan] == window[++match] &#38;&#38; window[++scan] == window[++match] &#38;&#38; window[++scan] == window[++match] &#38;&#38; scan &#60; strend);
Simples [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pindureta.wordpress.com&blog=4701067&post=321&subd=pindureta&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><div style="text-align:justify;">
<img src="http://pindureta.files.wordpress.com/2009/06/dilbert2.gif?w=450&#038;h=201" alt="dilbert2" title="dilbert2" width="450" height="201" class="aligncenter size-full wp-image-322" /></p>
<p>De volta ao Brasil, e de volta à programação normal.</p>
<p>A propósito, um desafio geek. Refatore o código abaixo:</p>
<p><code>do {<br />
} while (window[++scan] == window[++match] &amp;&amp; window[++scan] == window[++match] &amp;&amp; window[++scan] == window[++match] &amp;&amp; window[++scan] == window[++match] &amp;&amp; window[++scan] == window[++match] &amp;&amp; window[++scan] == window[++match] &amp;&amp; window[++scan] == window[++match] &amp;&amp; window[++scan] == window[++match] &amp;&amp; scan &lt; strend);</code></p>
<p>Simples <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />
</div>
 Tagged: management, rants <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pindureta.wordpress.com/321/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pindureta.wordpress.com/321/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pindureta.wordpress.com/321/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pindureta.wordpress.com/321/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pindureta.wordpress.com/321/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pindureta.wordpress.com/321/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pindureta.wordpress.com/321/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pindureta.wordpress.com/321/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pindureta.wordpress.com/321/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pindureta.wordpress.com/321/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pindureta.wordpress.com&blog=4701067&post=321&subd=pindureta&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://pindureta.wordpress.com/2009/06/03/scott-adams-was-right/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Developer</media:title>
		</media:content>

		<media:content url="http://pindureta.files.wordpress.com/2009/06/dilbert2.gif" medium="image">
			<media:title type="html">dilbert2</media:title>
		</media:content>
	</item>
		<item>
		<title>Choque cultural</title>
		<link>http://pindureta.wordpress.com/2009/05/27/choque-cultural/</link>
		<comments>http://pindureta.wordpress.com/2009/05/27/choque-cultural/#comments</comments>
		<pubDate>Wed, 27 May 2009 17:45:58 +0000</pubDate>
		<dc:creator>Developer</dc:creator>
				<category><![CDATA[posts]]></category>
		<category><![CDATA[rants]]></category>
		<category><![CDATA[thoughts]]></category>

		<guid isPermaLink="false">http://pindureta.wordpress.com/?p=319</guid>
		<description><![CDATA[Diferenças culturais são bem difíceis de conciliar quando você trabalha em outro país, com outros povos. E sob pressão isso só tende a piorar.
 Tagged: rants, thoughts      <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pindureta.wordpress.com&blog=4701067&post=319&subd=pindureta&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><div style="text-align:justify;">Diferenças culturais são bem difíceis de conciliar quando você trabalha em outro país, com outros povos. E sob pressão isso só tende a piorar.</div>
 Tagged: rants, thoughts <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pindureta.wordpress.com/319/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pindureta.wordpress.com/319/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pindureta.wordpress.com/319/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pindureta.wordpress.com/319/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pindureta.wordpress.com/319/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pindureta.wordpress.com/319/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pindureta.wordpress.com/319/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pindureta.wordpress.com/319/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pindureta.wordpress.com/319/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pindureta.wordpress.com/319/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pindureta.wordpress.com&blog=4701067&post=319&subd=pindureta&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://pindureta.wordpress.com/2009/05/27/choque-cultural/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Developer</media:title>
		</media:content>
	</item>
		<item>
		<title>Rated R</title>
		<link>http://pindureta.wordpress.com/2009/05/26/rated-r/</link>
		<comments>http://pindureta.wordpress.com/2009/05/26/rated-r/#comments</comments>
		<pubDate>Tue, 26 May 2009 18:33:25 +0000</pubDate>
		<dc:creator>Developer</dc:creator>
				<category><![CDATA[posts]]></category>
		<category><![CDATA[best practices]]></category>
		<category><![CDATA[thoughts]]></category>

		<guid isPermaLink="false">http://pindureta.wordpress.com/?p=317</guid>
		<description><![CDATA[
&#8220;Fazer refactoring sem testes é o mesmo que pegar puta no calçadão e depois dizer &#8216;eu não sabia&#8217; quando as coisas não saem como esperado.&#8221;
Pensamento antigo, mas válido.
 Tagged: best practices, thoughts      <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pindureta.wordpress.com&blog=4701067&post=317&subd=pindureta&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><div style="text-align:justify;">
<blockquote><p>&#8220;Fazer refactoring sem testes é o mesmo que pegar puta no calçadão e depois dizer &#8216;eu não sabia&#8217; quando as coisas não saem como esperado.&#8221;</p></blockquote>
<p>Pensamento antigo, mas válido.</p></div>
 Tagged: best practices, thoughts <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pindureta.wordpress.com/317/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pindureta.wordpress.com/317/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pindureta.wordpress.com/317/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pindureta.wordpress.com/317/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pindureta.wordpress.com/317/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pindureta.wordpress.com/317/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pindureta.wordpress.com/317/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pindureta.wordpress.com/317/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pindureta.wordpress.com/317/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pindureta.wordpress.com/317/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pindureta.wordpress.com&blog=4701067&post=317&subd=pindureta&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://pindureta.wordpress.com/2009/05/26/rated-r/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Developer</media:title>
		</media:content>
	</item>
		<item>
		<title>Viajando de novo</title>
		<link>http://pindureta.wordpress.com/2009/05/18/viajando-de-novo/</link>
		<comments>http://pindureta.wordpress.com/2009/05/18/viajando-de-novo/#comments</comments>
		<pubDate>Mon, 18 May 2009 03:44:09 +0000</pubDate>
		<dc:creator>Developer</dc:creator>
				<category><![CDATA[posts]]></category>
		<category><![CDATA[general]]></category>
		<category><![CDATA[rants]]></category>

		<guid isPermaLink="false">http://pindureta.wordpress.com/?p=313</guid>
		<description><![CDATA[Estou na prosaica cidade de Santiago de León de Caracas, capital da Republica Bolivariana da Venezuela. Sim, povo aqui é megalomaníaco.
Mais duas semanas sem postar, sem dormir e sem comer direito.
E há quem pense que eu viajo para ficar esquiando por aí.
 Tagged: general, rants      <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pindureta.wordpress.com&blog=4701067&post=313&subd=pindureta&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><div style="text-align:justify;">Estou na prosaica cidade de Santiago de León de Caracas, capital da Republica Bolivariana da Venezuela. Sim, povo aqui é megalomaníaco.</p>
<p>Mais duas semanas sem postar, sem dormir e sem comer direito.</p>
<p>E há quem pense que eu viajo para ficar esquiando por aí.</p></div>
 Tagged: general, rants <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pindureta.wordpress.com/313/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pindureta.wordpress.com/313/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pindureta.wordpress.com/313/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pindureta.wordpress.com/313/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pindureta.wordpress.com/313/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pindureta.wordpress.com/313/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pindureta.wordpress.com/313/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pindureta.wordpress.com/313/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pindureta.wordpress.com/313/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pindureta.wordpress.com/313/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pindureta.wordpress.com&blog=4701067&post=313&subd=pindureta&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://pindureta.wordpress.com/2009/05/18/viajando-de-novo/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Developer</media:title>
		</media:content>
	</item>
		<item>
		<title>Entrevista de emprego</title>
		<link>http://pindureta.wordpress.com/2009/05/15/entrevista-de-emprego/</link>
		<comments>http://pindureta.wordpress.com/2009/05/15/entrevista-de-emprego/#comments</comments>
		<pubDate>Fri, 15 May 2009 03:33:48 +0000</pubDate>
		<dc:creator>Developer</dc:creator>
				<category><![CDATA[posts]]></category>
		<category><![CDATA[human resources]]></category>
		<category><![CDATA[ideas]]></category>
		<category><![CDATA[management]]></category>

		<guid isPermaLink="false">http://pindureta.wordpress.com/?p=299</guid>
		<description><![CDATA[
Há seis meses fiz uma entrevista de emprego totalmente improvisada e despreparada. O carinha não entrou na empresa, o que não considero necessariamente negativo, e eu não participei de nenhuma outra entrevista de emprego, o que foi muito positivo. Para ser bem honesto, eu nem mesmo acho que o resultado daquela entrevista serviu pra alguma [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pindureta.wordpress.com&blog=4701067&post=299&subd=pindureta&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><img src="http://pindureta.files.wordpress.com/2009/05/dilbert-1.gif?w=450&#038;h=151" alt="dilbert-1" title="dilbert-1" width="450" height="151" class="aligncenter size-full wp-image-302" /></p>
<div style="text-align:justify;">Há seis meses fiz uma <a href="http://pindureta.wordpress.com/2008/12/10/entrevistando/" target="_blank">entrevista de emprego</a> totalmente improvisada e despreparada. O carinha não entrou na empresa, o que não considero necessariamente negativo, e eu não participei de nenhuma outra entrevista de emprego, o que foi muito positivo. Para ser bem honesto, eu nem mesmo acho que o resultado daquela entrevista serviu pra alguma coisa.</p>
<p>As vezes, mais como um exercício mental, eu penso como seria uma entrevista de emprego para minha empresa fictícia, para uma vaga de desenvolvedor. Vamos supor que seja para trabalhar com Java, que é meu atual ambiente natural.</p>
<p>Primeiro aquela olhada no currículo. O cara tem meia dúzia de certificações, um emprego numa fábrica de software conhecida, formado numa faculdade da moda e chega de gravata para a entrevista. Sem julgamentos precipitados, lembre-se que esse é o perfil padrão de qualquer entrevista de emprego. Pode apostar, pelo menos um candidato vai aparecer nesses moldes. Numa empresa comum, ele estaria muito bem cotado a entrar.</p>
<p>Mas vamos à parte que interessa. </p>
<p>Antes de aplicar qualquer prova escrita, vou fazer algumas perguntas. Poucas, e em português mesmo. Considere que a entrevista é um momento tenso por natureza, e que não vai ajudar em nada piorar essa situação. Lembre-se de que a vaga é para desenvolvedor Java, e não para atirador de elite da SWAT.</p>
<p>Você gosta de ler? Qual a sua média de livros técnicos por mês? Você dá preferência a livros <a href="http://pindureta.wordpress.com/2008/11/13/livros-tecnicos-em-portugues/" target="_blank">traduzidos ou em inglês</a>?</p>
<p>Caso responda &#8216;não&#8217; à primeira pergunta, podemos encerrar a entrevista por aqui mesmo. Preferência por livros traduzidos ao invés de livros em inglês, para mim, pode denotar preguiça e comodismo. Mas não acredito que esse ponto seja fundamental para definir a qualidade do profissional nesse ponto da entrevista.</p>
<p>Você já leu &#8220;Effective Java&#8221; (Joshua Bloch), &#8220;Test-Driven Development&#8221; (Kent Beck) e &#8220;Refactoring&#8221; (Martin Fowler)? O candidato ganha bônus se também já leu &#8220;Practices of an Agile Developer&#8221; (Venkat Subramaniam e Andy Hunt), &#8220;The Art of UNIX Programming&#8221; (Eric Raymond). Claro, pergunte também o que ele pensa dos livros e, principalmente, em que pontos ele discorda.</p>
<p>Eu considero os três primeiros leituras obrigatórias para qualquer programador que se considere profissional. Os seguintes são leituras importantes que não podem ser ignoradas. Se bem que, atualmente, se eu entrevistar um sujeito que realmente leu e consiga levar uma discussão rápida sobre todos eles, é bem provável que eu encerre a entrevista ali mesmo e o contrate de imediato. Novamente, se o candidato não leu nenhum deles, podemos encerrar por aqui para evitar mais perda de tempo.</p>
<p>O candidato conhece o Manifesto Ágil? Não estamos cobrando aqui nenhuma certificação-papel-de-bobo de Scrum ou coisa parecida (acalmem-se trolls, eu também tenho uma). Também não quero que o cara tenha o Manifesto decorado na ponta da língua. Importante é conhecê-lo e entender o que significa. Conhece TDD (ok, mesmo lendo o livro) e consegue usar essa abordagem de forma pragmática? Por pragmática entenda-se: sim, você tem que escrever testes antes de codificar. Não, você não pode perder tempo tentando alcançar utópicos 100% de cobertura de código. A tarefa do programador não é entregar as Obras Completas de Shakespeare em Java, mas sim código de qualidade em tempo relativamente curto. Utópico, mas que entrevista de emprego não é?</p>
<p>O candidato tem algum pet-project? Participa ou participou de algum projeto open source? (tradução de arquivos de i18n não conta). Programa porque gosta ou apenas porque alguém disse que dava dinheiro? Estuda tecnologias, linguagens ou abordagens que não estão necessariamente relacionadas ao trabalho? Conhecer Lisp, Erlang, Haskell e/ou linguagens dinâmicas ajuda a enxergar maneiras novas e até mesmo mais simples e limpas de se resolver um mesmo problema.</p>
<p>Na seqüência, se ainda não foi encaminhado à porta de saída, o candidato deve escrever uma dissertação breve, de vinte linhas, sobre algum assunto relacionado à área. A idéia aqui é apenas avaliar a clareza de raciocínio ao passar idéias para o papel e evitar futuros problemas com analfabetos funcionais. Seco e direto assim.</p>
<p>Agora a sobremesa. A hora preferida do verdadeiro desenvolvedor: a prova prática.</p>
<p>O candidato deve resolver um code kata em tempo pré-determinado (aqui a pressão faz parte do jogo), previamente definido e exibido todo o tempo. Um relógio na parede ajudaria nesse ponto. O desenvolvedor deve conviver com prazos definidos, que geralmente são curtos, e pressão. Nada de anormal. É exigido que o candidato utilize TDD ao resolver. Se ele chegou até aqui, pode apostar que ele consegue.</p>
<p>Ah sim. Arranje uma máquina decente com um ambiente semelhante ao real para que ele faça essa parte da entrevista. Codificar em folha de papel é uma das coisas mais ridículas de uma entrevista. Só perde para dinâmica de grupo e entrevista com psicóloga (note o gênero).</p>
<p>Avalie a expressividade do código. Isso é importante. Você não vai querer pegar um código suíço pela frente, cheio de variáveis enigmáticas e abreviações que não querem dizer nada.</p>
<p>Como eu disse no início desse texto, que saiu mais longo do que eu esperava, isso é apenas um exercício mental. Mas no momento está me parecendo um modo bem mais honesto e efetivo do que passar um dia inteiro numa empresa escrevendo redações sobre minhas férias, sendo entrevistado por psicólogas (de novo o gênero) que mal sabem o que a empresa faz, e para terminar, com fome e dor de cabeça, uma entrevista técnica com um sujeito que não acha a própria bunda usando as duas mãos (do tipo que briga com você jurando de pés juntos que C# aceita herança múltipla). Ouviu, sevencomm?</p>
<p>Bom fim de semana,</p></div>
 Tagged: human resources, ideas, management <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pindureta.wordpress.com/299/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pindureta.wordpress.com/299/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pindureta.wordpress.com/299/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pindureta.wordpress.com/299/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pindureta.wordpress.com/299/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pindureta.wordpress.com/299/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pindureta.wordpress.com/299/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pindureta.wordpress.com/299/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pindureta.wordpress.com/299/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pindureta.wordpress.com/299/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pindureta.wordpress.com&blog=4701067&post=299&subd=pindureta&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://pindureta.wordpress.com/2009/05/15/entrevista-de-emprego/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Developer</media:title>
		</media:content>

		<media:content url="http://pindureta.files.wordpress.com/2009/05/dilbert-1.gif" medium="image">
			<media:title type="html">dilbert-1</media:title>
		</media:content>
	</item>
	</channel>
</rss>