Seu navegador poderá apresentar uma certa lentidão durante o processamento e decodificação de gambiarras digitadas nesse artigo.

Com o gigantesco aumento do número e porte das empresas do setor de TI em cerca de 0,5% no mundo nos últimos 50 anos, a demanda por novas tecnologias cresceu absurdamente. Como as técnicas de programação seqüencial, por botão, procedural e orientada por objetos não conseguem mais suprir a qualidade máxima esperada pelos softwares geradores de relatórios que necessitam de massiva quantidade de recursos como desempenho, performance e throughput, a Programação Orientada a Gambiarras foi desenvolvida.

A Programação Orientada a Gambiarras (POG ou WOP – Workaround-oriented programming) é um paradigma de programação de sistemas de software que integra-se perfeitamente a qualquer grande Paradigma de Programação atual.

Por definição, Gambiarra é aquilo que é de difícil concepção, de inesperada execução para tornar fácil o uso de algo que sequer deveria existir.

Quem nunca teve que recorrer a uma gambiarra que atire a primeira pedra.

O que antes era uma arma de sobrevivência, finalmente se tornou uma metodologia e não poderia ter sido melhor.
É a primeira metodologia de programação que surgiu a partir da experiência dos programadores e agora se infiltra nos meios acadêmicos.

Origem
O primeiro POG que se tem notícia é datado de 1582 d.C. O nome deste POG hoje é chamado de Ano Bissexto, foi criado pelo Papa Gregório XIII, isso prova que aquela música dos Engenheiros do Havaí está correta: “O Papa é POG”. Este POG foi aplicado quando descoberto que a Terra leva 365,25 dias para dar uma volta no Sol, porém nosso calendário tem apenas 365 dias, o que leva a uma diferença de 6 horas por ano.

Ao invés de corrigir o “sistema” para que não houvesse essa diferença, a solução adotada pelo Papa foi: “A cada quatro anos, é só colocar mais um dia ali”. E então foi criado o primeiro POG de que se tem notícia. Por este motivo, em 1930 foi instituído o “Dia Internacional da POG” como o dia 29 de fevereiro.

Definição
A Programação Orientada a Gambiarras foi uma evolução natural do uso do Programa Bacalhau, também conhecido como ATND – “Artifício Técnico Não Documentado” ( na Química, também conhecido como MTEDM – “Manutenção Técnica com Elementos Disponíveis no Momento” e na Engenharia Civil como STCT – “Solução Técnica de Cunho Temporário”, nome pouco apropriado, uma vez que, todos sabemos, as soluções se tornam permanentes). Programadores e analistas mais preocupados em usar “business words” costumam utilizar o termo workaround para impor respeito.

Para que um programador possa exercer a Programação Orientada a Gambiarras, são necessários alguns fatores específicos, facilmente encontrados em ambientes de desenvolvimento:

– Sistemas originalmente mal projetados
– Clientes chatos
– Usuários chatos
– Falta de vontade
– Falta de tempo
– Gente que pensa que é DBA (normalmente são pessoas chatas, gordas, feias, sem certificação nenhuma e que fizeram um curso de SQL Básico)
– Arquiteto de software achando que é o máximo (normalmente pessoas altas, loiras, chatas, arrogantes e metidos a sabe-tudo)
– Término do estoque de café/chá
– Aproximação do final da tarde
– Véspera de feriado/fim-de-semana
– Ter o Jackie Chan como chefe
– Ter o MacGyver como coordenador de projeto (ver Método MacGyver)
– Governo defecando regras ou MP’s que entram em vigor imediatamente sem dar tempo de atualizar sistemas.
– Requisitos dinâmicos e/ou instáveis
– Produto com implementação pré-determinada que se torna personalizado (leia-se mutante) para angariar “aquela grande licitação”
– Área comercial vendendo ou pré-vendendo produtos imaginários ou inacabados com “entrega garantida em 30 minutos ou seu dinheiro de volta!”

Reunidos, todos estes fatores transformam o programador em um gambiarrizador, espécie mais evoluída de programador, que possui curva de aprendizado e produtividade muito mais acentuadas. Os códigos dos gambiarrizadores podem ser chamados de CACA (Código Avançado Complexo e Adaptável) que possuem, dentre outras qualidades, reusabilidade e legibilidade em seu auge.

Estudos realizados neste segmento mostram que os programadores que evoluem para gambiarrizadores vivem melhor, saem as 18:00h, tem cabelos mais bonitos e esvoaçantes. Tudo pelo fato de que, em gambiarrizadores, eles entram em um estado alfa, onde tudo na vida funciona. Tudo que é impossível torna-se possível, de maneira totalmente obscura, mas possível.

Há correntes de programadores que discriminam a Programação Orientada a Gambiarras, alegando ser uma má técnica, que faz com que os sistemas fiquem lentos e ganhem bugs. Também ficou claro nas pesquisas que estes programadores só dizem isto por nunca terem evoluído para gambiarrizadores (e por isso nunca pegam mulher nenhuma). Com apenas uma evolução (ao contrário de ‘ como o Charmander, que necessitam de duas para atingir o ápice de seu desenvolvimento), 100% dos programadores admitem que a Programação Orientada a Gambiarras, definitivamente, é o melhor paradigma de todos.

Além disso, a Programação Orientada a Gambiarras, assim como outros paradigmas, deu origem a outros movimentos de pesquisa científica como Modelagem Orientada a Gambiarras (MOG ou WOM – Workaround-oriented modeling), Desenvolvimento de Sistemas Orientado a Gambiarras (DSOG ou WOSD – Workaround-oriented software development).

Os Mandamentos

  • Se funciona, então tá certo – Acoplado ou não, txt ou sql, mil funções ou 10, design patterns… Nada disso tem valor para o usuário, que só precisa de um software funcional. O termo “escalável” é falacioso.
  • My Way – Programador esperto, se é esperto mesmo é adepto do My Way. Se você está com dúvidas, faça do seu jeito pois se der merda é você quem vai se foder  resolver (e como).
  • Murphy ou Lei de Murphy ou Lady Murphy – Para lidar com Murphy e seu exército só com POG. Murphy é sagaz e ligeiro, tá só esperando você dar mole. Nada mais rápido do que uma gambiarrazinha pra acertar o que Murphy destrói.
  • Deixe o amanhã para amanhã – Muitos programadores atrasam projetos alegando que a demora de uma implementação para seguirem regras de design patterns ou comentários que ajudarão a outros entender melhor o código. Deixe o amanhã para o otário programador seguinte.
  • Comentários são para amadores – Um desenvolvedor deve ser treinado para ser fluente na linguagem de programação usada sem precisar de comentários, independente da consequente ruína de sua vida social. Isso também é conhecido como sétimo sentido.
  • Eficiência primeiro – Evite escrever em várias linhas o que pode ser feito em uma.
  • Fé em Deus – A informática é levianamente definida como ciência exata, quando esta é na verdade uma ciência holística. Vários casos reais de divina Providência foram testemunhados em ambientes fiéis aos princípios ruins, assim o mal foi exorcizado, e a paz instalou-se graças a fé dos gambiarrizadores. Vale dizer que: há mais mistérios entre o teclado e o monitor do que julga a sua vã filosofia.
  • 1337 h4x0r5 dud3 lol – Quanto mais ilegível, mais respeitado o código é. Consequentemente menos alterado ele é, e mais estável o sistema fica, garantindo a empregabilidade do gambiarrizador.
  • A ocasião faz o ladrão – Em determinados momentos não conseguimos escapar dela.
  • Capacidade de Abstração – Este conceito se baseia em focar-se no problema e desconsiderar conceitos e dados deios para atingir o objetivo, ou seja, o Programador deve abstrair tudo que lhe faça perder tempo como regras de negócio desnecessárias ou tratamentos de erros.
  • Conclusão Hipotética Universal Técnica Explicativa (aka. C.H.U.T.E) – Quando nenhum dos outros conceitos se aplica, utiliza-se este até funcionar ou desistir.
  • Criatividade acima de tudo – Uma pessoa criativa não é aquela que consegue chegar a diversos lugares, mas sim, aquela que chega no mesmo lugar por diversas maneiras. Portanto, o POGer não é nada mais do que um programador criativo, que faz a mesma coisa que outros, adotando técnicas não convencionais.
  • Simplicidade acima de tudo – Se o programa funciona sem o Tratamento de Exceções e a verificação de campos preenchidos pelo usuário porque complicá-lo ?
  • Faca nos dentes – O famoso “Vai fazendo ai!”


~\\|//~
 -(o o)- RODRIGO SILVA

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s