Exercitando a Programação Orientada a Gambiarra (POG)

Em Programação por Jonathan Maia

A Programação Orientada a Gambiarra (POG) é uma das técnicas que compõe o Body of Knowledge do eXtreme Go Horse (XGH), sobre o qual falamos na postagem Ainda no eXtreme Go Horse – Seja Ágil com Scrum – Parte 2.

Brincadeiras a parte, infelizmente, soluções a base de POG ou XGH são uma realidade em diversas organizações. Nestes treze anos de TI, deparei-me com algumas situações hilárias.

Função do_nothing

Navegando em um código legado para realizar uma manutenção, observo uma chamada à função com nome do_nothing(). Minha primeira pergunta foi: O que esse negócio faz ? Pergunta estúpida, resposta estúpida. Entrei na função e, voilà, ela simplesmente retornava null.

Do_nothing - Regras de negócio complexas devem ser encapsuladas

Do_nothing – Regras de negócio complexas devem ser encapsuladas

Isso que é encapsulamento de lógica. O que passou na cabeça do programador ? E por que raios ele chamava esse função no meio da lógica ? Até hoje me pergunto.

Comentários significativos

Em outro código, desta vez em Java, encontrei um comentário curto, singelo, objetivo, mas que significava muito:

XGH - Faça comentários significativos

XGH – Faça comentários significativos

O cara colocou no comentário uma referência direta ao amado eXtreme Go Horse. Isso mesmo, jovem gafanhoto! Pelo menos o programador foi sincero e me preparei para o que vinha pela frente.

Curso Gestão ágil pessoal e profissional

Schema do banco de dados

Se você fosse criar um novo sistema, qual nome daria para o schema do banco de dados ? Provavelmente, como pessoa normal, seria uma sigla ou o próprio nome do sistema, correto ? O que acha de colocar seu nome ?

Schemas de banco de dados com seu nome te eternizarão na empresa

Schemas de banco de dados com seu nome te eternizarão na empresa

Olha que select mais chique! 

Olha que select mais chique!

Tá lindo!!!Legal, né ? Também achei quando me deparei com a situação. Acho que vou começar a fazer assim. Schemas com meu nome ficariam muito mais legais. Já pensou, daqui a 30 anos, meu código legado lá rodando e meu nome eternizado.

Compila novamente que funciona

Essa POG trata de um problema do nosso cérebro.

Observe a situação: erro de sintaxe em um código C, você roda o compilador e, obviamente, não compila. O que você faz ? Sem alterar nada do código, nadinha mesmo, vai lá e executa o compilador novamente.

Em uma disciplina no meu terceiro semestre de Computação, um colega fez isso na frente do professor enquanto programávamos em C. O professor da disciplina era bem sério, olhou para meu colega e fez a pergunta fatal:

“Você acha que o compilador vai mudar de opinião ?”

Piada do professor sério: compilador mudando de opinião

Piada do professor sério: compilador mudando de opinião

Essa frase profunda ficou marcada em minha memória. Por que fazemos isso ? Processo de compilação é determinístico ou não ?

Melhores práticas da POG

Em janeiro de 2016, o Josenaldo Matos liberou no SlideShare um compêndio das melhores práticas da Programação Orientada a Gambiarra (POG), com exemplos práticos em Java. Faça uma leitura com atenção e prepare-se para boas gargalhadas. O Josenaldo conseguiu captar como poucos a essência da arte POG.

Boas práticas

Para depois você não sair por aí dizendo que eu só dei maus exemplos nesta postagem, segue um site muito legal com dicas práticas para implementar padrões de projeto em Java:

http://java-design-patterns.com/

É um bom começo para nos livrarmos da POG. Dá uma lida para limpar a mente dos exemplos aqui citados.
E você ? Compartilhe nos comentários a POG mais emblemática com a qual já se deparou. 🙂

Por favor, curta e compartilhe nossas páginas nas redes sociais e assine o feed de notícias para acompanhar nossas postagens.

Um forte abraço e até mais.

Olá, sou Jonathan Maia, marido, pai, apaixonado por tecnologia, gestão e produtividade. Atuo na gestão e desenvolvimento de sistemas de informação como analista de TI do TRT Ceará (servidor público federal).

Possuo as certificações em gerenciamento de projetos Project Management Professional (PMP) e Professional Scrum Master I (PSM I), além de especialização em gerenciamento de projetos de TI (2011) e bacharelado em ciências da computação pela UFC (2008). Também sou desenvolvedor Full Stack e possuo experiência em diversas arquiteturas / plataformas.

Fui aprovado e nomeado nos concursos públicos do TJ-CE, Dataprev, Serpro e TRT Ceará, assumindo nos três últimos. Já tive experiências profissionais em redes metropolitanas de alta velocidade (GigaFOR/RNP), business intelligence, desenvolvimento de sistemas e gestão de projetos (tradicionais e ágeis).

Como adepto da gestão ágil, desenvolvi o Organizador Ágil, um método ágil, simples e leve que auxilia no aumento da produtividade e organização pessoal, familiar ou profissional. Também mantenho o Blog Eu na TI.

Deixe uma resposta