Acesso rápido

20/01/2009

Razões para você não trabalhar com APIs (ou trabalhar com elas)

Sacumé gente, eu tenho o costume o colocar meu blog na categoria "tecnologia", por falta de categorização "pessoal" mesmo x)
Então melhor falar de tecnologia de vez em quando, pra fazer jus à visitação dos geeks gordos e esquisitóides que vem aqui geeks e programadores iniciantes.


APIs são excelentes ferramentas - elas simplesmente pegam toooodo aquele trabalho GIGANTE que você, nerd programador*, teria se fosse fazer um trabalho do zero e não tivesse a menor idéia de como fazer aquele maldito map trace ou aquele page flip filho da puta que se recusa a aceitar todas as suas funções direito.

APIs facilitam até pra quem não é programador, mas tem criatividade e quer enfiar um plus no projeto. Vide aquele códigozinho de colocar o google maps no site, ou coisa que o valha. Entretanto, APIs caíram naquele maldito lugar comum. Sim, o mesmo lugar comum que ser nerds, emos, metaleiros**, aqueles óculos de aro preto plástico que lhe deixa com uma cara de pseudo-intelectual, o iPhone, blogs que vendem posts, tua mãe... enfins, APIs estão no lugar comum que é só todo mundo chegar, meter a mão e pegar.

Igualzinho a gente faz com a sua mãe, como eu disse :D


Se por um lado APIs são populares, por outro é ruim, muito ruim. Ruim do nível de todo cliente / chefe / gerente de projetos wannabe*** quer ter uma dessas no projeto. Daí começa o inferno, porque geralmente essa espécie de gente não se toca de um problema pequeno, beeem pequeno: o código.

API tem uma coisa chamada "código". É tipo o DNA dela, tá ligado? Imagine o programador como um geneticista e o código como o DNA. Se você é um genetista. saberá o que cada par de hélices do genoma ali presente faz. Entretanto, se você não é um geneticista, não vai entender porra nenhuma do que aquelas hélices de fitas estarão fazendo, certo?

Agora, imagine que um geneticista pirou na batatinha da maionese e montou um genoma diferente do padrão. Uma alteração aqui, outra acolá e PRONTO, um homem com um pau de 45cm. Uma maravilha, né? As mulheres vão ADORAR! Pense no merchan disso: "Vendemos os maiores paus".

O mulherio ia cair matando.

Agora, imagine que o geneticista maluquinho ali (maluco E rico a uma altura dessas) resolveu deixar a sequencia do seu genoma aberto, disponível para qualquer um que quiser passar no seu "home-lab" e comprar por um preço módico (vai lá, uns 30 reais). Agora imagine que você é um geneticista e resolveu estudar esse código, va lá, para fazer seu filho nascer pausudo - pra compensar o principal defeito do pai. Esse geneticista vai ter que passar algumas noites acordado estudando o cógido do primeiro geneticista.

Esse primeiro geneticista fez uma API, o outro comprou uma. Simples de entender, certo?


Com programador é a mesma coisa. Você, chefe / administrador(ou cliente, o que costuma ser pior...) pede AQUELA API do pau gigante no seu projeto. Até aí, tudo bem: qualquer um que se defina programador sabe perfeitamente como trabalhar superficialmente com o código alheio.

Meu amigo, o problema mesmo pega quando você, caro cliente, resolve pedir modificações NAQUELA API. No nosso exemplo, você quer que o pau vire uma buceta com três bolas pra fora (!!!).

E um prazo de três semanas pra resolver o projeto. Sentiu o drama, né?


Programadores são perfeitamente capazes de resolver qualquer problema que lhes é dado. Desde que tenham tempo suficiente, podem até mesmo reinventar o mundo. O problema pega quando eles tem que entender a lógica de OUTRO programador. A lógica de um programador é algo muito pessoal, é mais íntima dele do que sua namorada; quando se é escrito um script qualquer em qualquer linguagem, é praticamente a intimidade do programador que está ali.

Então vem um cliente fdp ou um gerente de projetos wannabe e.. pede pra alterar essa intimidade. Como no exemplo da genética, TODO o código original está atrelado a diversas enzimas que o geneticista original não documentou, ou simplesmente esqueceu como funcionava. E aí o segundo geneticista, aquele nosso pobre coitado que vai mexer no código DNA da coisa, se fode pra descobrir como aquilo funciona.

E no plano de fundo, o tempo do projeto vai passando, passando... passando... passando, ouvindo o relógio fazer "tic-tac". Tiiiiiiic-Taaaaaaaaaaaaaaaaac

APIs são boas? Sim, são excelentes ferramentas, DESDE QUE você pegue e saia usando. Não cometa o pecado mais comum à todo chefe de projetos: achar que é só meter a mão e sair alterando. E se for, dê tempo de uns três meses pro programador se inteirar em todas as funções É como trepar: você não pode simplesmente arriar a calcinha da menina e sair enfiando o mr. stone dentro dela, tem que rolar uns beijinhos pelo menos pra deixar a menina excitada

Nenhum comentário: