Início > Atitude, Programação > Não Complica Minha Vida

Não Complica Minha Vida

A maior parte do sistema que estamos “evoluindo” foi escrita em C muitos anos atrás. O core não foi reescrito; apenas inchou. A interface gráfica foi refeita em Java/Swing, mas as integrações continuam presas aos grilhões do legado C e dos muitos scripts que deixam o software chumbado na plataforma em que executa.

Durante a manutenção de uma parte do sistema, vi um código mais ou menos assim (alteramos os nomes para não comprometer os culpados):

(...)
     for(int i; i < widgets.length; i++)
        lstWidgets.get(i).setStatus(widgets[i] == 1);
(...)

Os nomes das variáveis e outras coisas que vi estavam bem pouco inteligíveis. Falei um pouco sobre o tipo de trabalho que ando fazendo aqui.

Pensando em clareza, esse pedacinho singelo de código chega a ser pavoroso. Como não entendi a intenção do método, fui conversar com o pessoal do C. Me explicaram que eram enviados 4 bytes onde cada bit representava o estado de um “widget”: “1” para ativado e “0” para desativado. Eles argumentaram que poderiam enviar até 32 “widgets” mantendo essa estrutura. Uma solução típica de quem vive no e do passado.

Com as informações que colhi, fiz uma pequena alteração para que outras pessoas entendam o significado de “0” e “1” no contexto dos “widgets”:

     private boolean isActivated(int widgetStatusIndex){
         return widgets[widgetStatusIndex] == 1; // 1 para ativado e 0 para desativado
     }

Também melhorei um pouco e adicionei um comentário explicativo ao parser do “array de bits”. Poderia ter utilizado um tipo enumerado para dar mais significado aos números cabalísticos “0” e “1”, mas achei que seria preciosismo. Como estamos finalizando uma fase do projeto, é o que dá pra fazer. Refactorings e, se possível, redefinição das interfaces, ficam para a próxima fase.

Anúncios
Categorias:Atitude, Programação
  1. Nenhum comentário ainda.
  1. No trackbacks yet.

Deixe um comentário

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

%d blogueiros gostam disto: