Código salsicha: Por que é importante saber do que ele é feito?

O seu professor de programação dirá para você desenvolver, algoritmos que você provavelmente vai pensar: “Mas eu nunca vou precisar desenvolver isso! Existem bibliotecas que fazem isso pra mim!!!”

Uma vez eu ouvi alguém falar que estávamos nos tornando programadores de framework. Isso tem um pouco de verdade. Se eu sei muito bem programar em Javascript e quero fazer um app para Android e para iOS, eu não preciso mais ter a curva de aprendizagem em Java ou Object-C para fazer um app nativo. Agora eu posso desenvolver meu app com a linguagem que eu estou acostumado e deixar que o framework faça o trabalho de transformar o meu código em nativo.

Se vamos desenvolver um sistema web, temos um framework MVC que cria as nossas classe, que separa em camadas. Para o banco de dados, um framework que cria as tabelas a partir das nossas classes. E a aparência? Basta utilizar Bootstrap ou o PrimeFaces e você terá páginas bonitas, sem precisar fazer muita coisa. Geralmente essas ferramentas são utilizadas há um bom tempo e possuem uma estrutura sólida. Mas elas tem as suas limitações.

Procurar uma biblioteca no Github ou um trecho de código em um fórum, ajuda bastante em ganhar tempo em um prazo de projeto apertado.

Mas o que tem de errado nisso?

O problema é quando pegamos aquela caixa preta que outra pessoa desenvolveu e utilizamos em nosso sistema. Claro que nós sempre corremos contra o tempo para terminar um projeto, mas simplesmente copiar e colar uma função que você achou no primeiro link do Stack OverFlow, não é uma boa ideia.

Esse trecho de código que você achou e que promete resolver o seu problema é como uma salsicha, um hambúrguer ou qualquer alimento processado. Eles cumprem com o papel, mas não sabemos se farão mal futuramente. Se soubéssemos do que eles são feitos, talvez deixaríamos de consumi-los.

Por que devo me preocupar com isso?

Pense no programador como um chefe de cozinha. Se ele for trabalhar em um rede de fast-food, ele não precisa preparar cada componente do sanduíche. Basta ele pegar o hambúrguer, alface, queijo, molho especial, cebola, picles e um pão com gergelim. O que conta nesse caso, não é tanto a qualidade, mas a agilidade para produzir um produto. Mas se ele precisar fazer o hambúrguer, com carne de cordeiro, por exemplo? Ele não saberá fazer, por que ele não sabe como escolher a carne, como limpa-la ou que tempero ficaria melhor com a carne. Ele nunca passou por essa experiência, pois sempre usou hambúrguer pronto.

Conclusão

A moral de tudo isso, é dar um valor maior em entender o código que estamos implementando e que foi feito por terceiros. Não ter que “ reinventar a roda” é ótimo, mas o mais importante, é saber se aquela “roda” aguentará o projeto em que você está trabalhando. Quando a ferramenta não estiver atendendo ao que você precisa, terá conhecimento suficiente para construir sua própria ferramenta e quem sabe, disponibiliza-la para outros.