quinta-feira, 16 de maio de 2013

POG: Programando Eficientemente com Comentários #sqn

Quem nunca precisou fazer pequenas mudanças no código para testar algo e usou comentários para isso que jogue o primeiro teclado.

Vadiando Lendo meus feeds durante a tarde eu me deparei com uma solução, no mínimo, intrigante para o bom e velho problema de comentar partes do código para testar alguma coisa. Eu normalmente uso as diretivas #define #ifdef e #ifndef para isolar esses pedaços de código de teste.

O truque abaixo, no entanto, usa comentários especialmente organizados para alternar entre dois conjuntos de códigos diferentes, trocando somente um símbolo e sem menhuma dependência adicional no código.

Toda e qualquer linguagem que aceitar comentários usando as notações /* */ e // pode ser "afetada" pela gambiarra solução.

AVISO: Não use isso em nenhum código profissional, por amor de gezuis negão, pois isso não é coisa que você vai querer mostrar para seu futuro empregador quando ele te pedir pra fazer aqueles algoritmos ridículos de FizzBuzz. Então, estamos combinados?


Veja como funciona:
Antes:                   Depois:
//*                      /*
gambiarra_a();           gambiarra_a();
/*/                      /*/
gambiarra_b();           gambiarra_b();
//*/                     //*/
E aqui uma versão que simplesmente permite comentar e descomentar uma parte do código:

Ativado:
//*
gambiarra();
//*/
Desativado:
/*
gambiarra();
//*/
Essa solução é bastante similar a uma outra que eu utilizava para comentar partes de código sem precisar ficar marcando o início e o fim dos comentários. A minha solução é assim:

Ativado:
/** /
gambiarra();
/**/
Desativado:
/**/
gambiarra();
/**/
O truque é simples, é só adicionar um espaço entre o sinal * e o sinal / no primeiro comentário, desfazendo o marcador de fim de comentário. Agora, a solução de alternar entre dois sets é realmente algo brilhante! Eu gostei tanto que vou transformar isso em uma tatuagem, junto com as futuras :(){ :|:&};: e :(){ . & };

Fonte:
The //* /*/ //*/ comment toggle trick