ESPACO

REVISTA / EDIÇÃO 251


Saca a POG?

Tem algum programador rindo por perto? Pode apostar que é por conta da POG, a Programação Orientada a Gambiarras. Aquele trechinho de código meio porco que fez o software funcionar — e provocou a risada — é pura POG. Claro que as gambiarras são tão velhas quanto a computação. O novo é a dedicação dos colaboradores da Desciclopédia, a enciclopédia online “livre de conteúdo”, em produzir uma metodologia POG que seja reconhecida pelo mundo acadêmico. Os textos e suas ilustrações são de rolar de rir. Veja alguns deles aqui. Creative Commons. Estas páginas têm livre acesso no endereço www.info.abril.com.br/edicoes/251/pog.shl.
Definição de POG A POG — Programação Orientada a Gambiarras ou WOP — Workaround-Oriented Programming é um paradigma de programação de sistemas de software que integra-se perfeitamente a qualquer grande padrão de programação atual. É uma evolução natural do uso do Programa Bacalhau, também conhecido como ATND — Artifício Técnico Não Documentado —, e vem da antiga expressão brasileira “Para quem é, bacalhau basta” (época em que o peixe seco ainda era barato). Programadores preocupados em usar buzzwords utilizam o termo workaround para impor respeito. Para que um desenvolvedor possa exercer a Programação Orientada a Gambiarras, são necessários alguns fatores específicos, facilmente encontrados em ambientes de desenvolvimento (veja quadro ao lado). Reunidos, esses fatores transformam o programador em gambiarrizador, espécie mais evoluída.
Fatores favoráveis à POG
  • 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 pararam no tempo)
  • Arquiteto de software achando que é o máximo (normalmente pessoas, altas, loiras, chatas, arrogantes e metidas 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 MPs que entrem em vigor imediatamente sem dar tempo de atualizar sistemas
  • Requisitos dinâmicos
    Mega Zord Programadores dos anos 1980 o conhecem como Daileon. Semelhante ao padrão Lone Wolf. Motivo: criar várias funções, cada uma executando um passo de um algoritmo, causa lentidão no sistema por este ter de interromper seu fluxo para chamá-las. Esse problema pode ser resolvido com uma única e gigante guerreira função, que recebe vários parâmetros que definirão o que deverá fazer. Geralmente usado em conjunto com Nonsense Flag.
    Método MacGyver É um avançado método de criação de sistemas no qual o programador (ou gambiarrizador), de posse de recursos e informações limitadas, consegue desenvolver um complexo sistema por completo e em questão de horas. O método recebe esse nome pois, fazendo-se um comparativo com o mundo cotidiano, é equivalente a pegar um sabonete, um clipe e um chiclete e, com esses ingredientes, construir uma bomba atômica, metodologia exaustivamente utilizada por MacGyver. Sua principal característica é a de ser infalível, não importando as condições e o tempo disponível. O Método MacGyver é indispensável emqualquer projetoPOG.
    BCDR Pattern O Black Cat in a Dark Room Pattern (padrão gato preto em um quarto escuro) consiste na criação de métodos que recebem um Map só como parâmetro. O argumento que você precisa está no Map, mas não sabe exatamente onde. Esse padrão permite passar quantos argumentos forem necessários a um método,sem poluir o código. Permite criar métodos cujas assinaturas seriam, de outra forma, extremamente longas (vide padrão Generic Processor). Evita a alteração de assinaturas de métodos no momento da manutenção do código, tornando desnecessário qualquer tipo de refactoring.
    Programa Bacalhau O Programa Bacalhau começou em 1960, quando Juscelino Kubitschek, com sua doutrina de desenvolvimentismo, resolveu dar o primeiro passo rumo à futura ERP. Naquele ano, as frotas de pesca do bacalhau estavam decrementando, pois o estado do bacalhau era undefined. Assim, com cartões perfurados e um disco magnético RAMAC, desenvolveram-se as primeiras técnicas de POG num bureau de serviços, que determinava as cotas máximas da pesca. Para evitar que o bacalhau fosse escondido na cueca dos pescadores, marcava-se nos cartões perfurados o peso deles antes e depois da pesca. Em seguida, os cartões eram recolhidos e ficavam em spool até todos serem processados.
    Lone Wolf Também conhecido por Highlander(só pode haver um), esse é a boa e velha “classe-faz-tudo”. O sistema todo está concentrado numa “classe procedural”que faz tudo, geralmente usando opadrão Static Spree.
    Nonsense Flag Por um legítimo impulso gambiarrizador solucionador de problemas, o programador salpica um monte de variáveis comnomes sensacionais como “newCounter2”, “jaTrocouDeAba”, “passouPorAqui”, “numeroMagico”, “naoAchou” etc.
    PPOG - Princípios da POG comentados Se funciona, então tá certo Acoplado ou não, txt ou sql, mil funções ou dez, design patterns... Nada disso tem valor para o usuário, que só precisa de um software funcional. O termo “escalável” é falacioso.
    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 outros desenvolvedoresa entender melhor o código. Deixe o amanhã para o otá... err...
    Comentários são para amadores Um desenvolvedor deve ser treinado para ser fluente na linguagemde programação que utiliza, sem precisardos comentários,não importando a conseqüente ruína de sua vida social. Isso também é conhecido como “sétimo sentido”.
    Fé em Deus A informática é levianamente definida como ciência exata, quando, na verdade,é uma ciência holística. Vários casos reais de Divina Providência foram testemunhados em ambientes fiéis aos princípios POG, espíritos ruins foram exorcizados,e a paz instalou-se graças à fé dos gambiarrizadores.
    1337 h4x0r5dud3 lol Quanto menos legível, mais respeitado o código é. Conseqüentemente, menos alterado ele será, e muito mais estávelo sistema ficará.
    A ocasião fazo ladrão Em determinados momentos não conseguimos escapar dessa máxima.
    Capacidade de abstração O programador deve abstrair tudo o que lhe faça perder tempo, como regras de negócio desnecessárias ou tratamento de erros.
    C.H.U.T.E Conclusão Hipotética Universal Técnica Explicativa — Quando nenhum dos outros conceitos se aplica, utiliza-se esse até funcionar ou o programador jogara toalha no chão.
    Murphy Para lidar com Murphye seu exército só com POG. Murphy é sagaze ligeiro, tá só esperando você dar mole. Nada mais rápido do que uma gambiarrazinha pra acertar o que a lei de Murphy destrói.



  • PUBLICIDADE


    + BAIXADOS
    [an error occurred while processing this directive]
    INFO Online - Copyright © 2012, Editora Abril S.A. - Todos os direitos reservados. All rights reserved.