Descasque o seu código

Programadores são seres criativos, que precisam expor a sua criatividade sempre, ou acabam ficando frustrados. Além disso, alguns possuem dificuldade para lidar com a criatividade alheia. Eu chamo esse tipo de programador de empacotador. Eles pegam, por exemplo um framework estabelecido no mercado, e criam uma “casca” por cima, apenas empacotando as funções básicas, mas com uma API ligeiramente diferente. Depois disso eles costumam dizer: “Pronto, agora temos a nossa própria implementação de XXX e não dependemos mais diretamente do framework XXX. Isso é fantástico!

De fantástica essa prática não tem nada. Alguns podem dizer que isso é um boa prática, já que realmente o código da sua aplicação passa a não depender de código alheio, interagindo somente com o seu próprio código. Penso que para se obter esse tipo de benefício basta encapsular o código que utiliza o framework ou API XXX em um método, mas não é necessário “esconder toda a implementação em algo, que de novo não tem nada“. E onde fica o aprendizado nesses casos? Como as outras pessoas no seu time irão aprender a trabalhar com o framework XXX? Isso é ruim para a evolução profissional dos desenvolvedores e ruim para a equipe como um todo.

Isso acaba causando um efeito “veja bem…“. Funciona assim, digamos que na empresa ZXY onde o Fulano trabalhava como desenvolvedor Java, o sujeito responsável pela arquitetura do sistema fosse um desses programadores empacotadores. Por baixo de todas as “cascas” eles usavam coisas como DWR, Quartz, JQuery e JSF, mas tudo era “empacotado”. Após 3 anos de empresa ZXY, o Fulano decide sair e buscar novos desafios porque se cansou de só programar com os bloquinhos da empresa ZXY. O Fulano então envia o seu currículo mostrando tudo aquilo que sabe e é chamado para uma entrevista. O entrevistador o questiona sobre a experiência dele com os frameworks citados anteriormente e ele responde: “Veja bem… eu não trabalhava diretamente com essas APIs, mas era praticamente a mesma coisa…“.

Se você já agiu como um “desenvolvedor empacotador”, repense o que está fazendo. Isso talvez tenha um efeito bom na sua relação com o seu chefe, já que vai parecer que você está economizando muito tempo de desenvolvimento para a empresa, empacotando todo aquele código e fazendo os programadores usar apenas o seu código maravilhoso. Porém no longo prazo isso se mostrará ruim, as pessoas se sentirão entediadas e desmotivadas. Se você não é o empacotador, mas o cara que tem que lidar com os pacotes, saia enquanto é tempo…

Comments (4)