Comunidade

Dicas de programação: melhore a qualidade e facilite a manutenção de softwares

14/04/20 por Simon Scudder

Como já disse Steve Maguire, em seu excelente livro Writing Solid Code, se você colocar um programador em cima de um penhasco com uma corda e uma asa delta e falar pra ele descer, não é possível adivinhar o que ele vai usar pra descer, mas pode ter certeza que ele vai pensar muito a respeito, antes de tomar a decisão. Contudo, o mesmo programador, quando for escrever um programa, é bastante provável que só irá pensar em tamanho e velocidade, mas não no risco do método que está utilizando. Se você aplicar a mesma metodologia na descida do penhasco, o jeito mais rápido (e mais arriscado) de descer seria pular!

Sendo assim, convido você a se atentar a todas as dicas de programação que citarei a seguir. Espero que elas ajudem a otimizar sua maneira de programar!

Dicas de programação que aprendi durante a minha trajetória

No começo da década de 90, eu fui contratado em um dos meus primeiros empregos porque eu conhecia a linguagem de programação C++. Apesar de ser uma empresa pequena, que tinha somente 5 funcionários, já contando comigo, ela tinha uma excelente base de clientes e um potencial muito bom na área. 

Nessa mesma época, eu me considerava um profissional bom, visto que conhecia muito da linguagem C++ e executava programas que eram verdadeiras obras de arte, com algoritmos muito inteligentes. Além disso, eu enxergava a qualidade no meu trabalho porque utilizava, em programas bastante enxutos, alguns comandos que só especialistas na linguagem seriam capazes de conhecer. 

Durante essa experiência, tive a oportunidade de trabalhar com um colega que tinha fama de ser um dos melhores programadores de C++ de toda a cidade. Pouco tempo depois da minha contratação, enquanto esse meu colega estava em uma viagem, precisei fazer algumas alterações em um código dele, pois um cliente estava fazendo essa solicitação com bastante urgência. 

Comecei a olhar o que ele havia escrito e fiquei muito surpreso. O pensamento que me veio na hora foi o seguinte: “Nossa, uma criança de 5 anos de idade poderia escrever um código assim”. Eu imaginava que uma pessoa com a experiência e fama que ele tinha, poderia escrever algo infinitamente melhor. Em poucos minutos consegui entender como funcionava o código dele, fiz as alterações solicitadas pelo cliente e tudo foi resolvido, de maneira rápida. 

Depois de poucas horas trabalhando no código do meu colega, ao voltar para meu próprio código, tive dificuldade em seguir o funcionamento e entender o que eu havia escrito antes! Esse episódio me ensinou uma lição muito importante, que há anos venho tentando seguir, e essa é a primeira das dicas de programação que quero trazer para vocês hoje: faça códigos simples. Não use técnicas avançadas para fazer seu código parecer mais moderno se você não precisa disso. Minha dica é que você programe pensando que amanhã uma criança de 5 anos de idade consiga realizar uma manutenção dentro do seu programa. 

É claro que, em alguns momentos, será necessário escrever algo um pouco mais complexo. Mas minha sugestão, para esses casos, é que você coloque comentários explicando o que esse código faz, o motivo deste método ter sido escolhido e o motivo de não ter utilizado outra técnica. Isso vai facilitar, e muito, a realização da manutenção deste código, principalmente caso ela aconteça em um futuro distante. Lembre-se: você está tentando escrever um código que funcione sem erros e de fácil manutenção. Você não está tentando mostrar aos seus colegas que conhece mais comandos do que eles - isso não é uma competição. 

Utilize chaves  

No caso das linguagens C, C++ e C Sharp, você pode colocar um bloco de código dentro de chaves {} e, assim, utilizar em um IF, por exemplo, se a condição for verdadeira, todos os comandos no bloco serão executados. 

if(condição) {

     comando 1

     comando 2

     ...

}

Durante minha trajetória profissional, observei muitos programadores experientes falando que em programações de um único comando, não há necessidade de utilizar chaves, que isso é coisa para iniciantes:

if (condição)

     comando 1

Porém, quantos deles não esqueceram desse detalhe na hora de fazer uma manutenção no software? Assim, adicionaram mais comandos na programação que não ficaram dentro do IF, pois esqueceram de adicionar chaves. Depois disso, pense quanto tempo não levaram para descobrir o motivo de a manutenção não ter dado certo:

if (condição)

     comando 1

     comando 2

     ...

Neste terceiro exemplo, o comando 2 é executado independente da condição ser verdadeiro ou não.

Esse exemplo serve também para VB (Visual Basic), linguagem de programação produzida pela Microsoft. Pode-se colocar um IF seguido da condição e de um comando, tudo na mesma linha. Porém, a dica aqui é que você crie o hábito de colocar sempre o comando na linha seguinte e finalizar o bloco com END IF, isso irá facilitar a manutenção do seu software.

Não use

If condição Then comando


Use

If condição Then

     comando

End If

Comece a usar a linguagem a seu favor ao invés de brigar com ela!

Se atente às nomenclaturas

Independentemente da linguagem que você estiver trabalhando, uma das minhas dicas de programação é que você preste bastante atenção ao padrão que a empresa utiliza para criar nomes de rotinas, nomes de estruturas e variáveis. Existem empresas que preferem criar nomes somente em inglês, visto que, atualmente, vivemos em uma aldeia global. 

Durante um período da minha trajetória profissional, trabalhei em um projeto onde um módulo de atendimento ao cliente era chamado de Customer Attendance. Esse termo não tem nada a ver com atendimento ao cliente. A palavra Attendance significa comparecimento, quando traduzida de inglês para português. Porém, a empresa achou que estava correto ao encontrar esse termo na internet, mas não sabia que era um site nacional que possuía textos em inglês com diversos erros. Ou seja, no caso da preferência pela criação em inglês, a dica é que você pesquise qual seria a melhor palavra utilizando insights de origem inglesa, para não cometer erros desse tipo. 

Em poucas palavras, a minha dica é que você se familiarize com os padrões de programação impostos pela sua empresa e os siga à risca na hora de criar novos nomes. 

Separe, treine e aceite sugestões 

Se a função do programa que você está escrevendo está ficando pesada ou com uma lógica muito complexa, faça como os macedônios faziam 300 anos antes de Cristo. Divida e conquiste. Separe o seu problema em partes menores ou funções distintas quantas vezes for necessário para torná-lo mais fácil de compreender. Essa divisão ajuda bastante, principalmente se você estiver executando as mesmas funções em vários lugares distintos. Agrupe-as em uma função à parte!

Outra dica muito importante, e talvez uma das mais dolorosas, é que por mais que o programa seja seu filho e você tenha colocado um pedaço da sua alma dentro daquele código, ele sempre tem como ficar melhor! Muitas vezes, quem está lendo o seu código de fora enxerga uma forma completamente diferente de fazê-lo do que aquela que você utilizou. Nessas horas, é preciso deixar o orgulho de lado e escutar todas as sugestões que receber. Terão sugestões que não farão muito sentido e terão as que vale a pena ouvir, porque isso deixará o seu código ainda melhor. 

Por último, e não menos importante, está a nossa dica relacionada ao treinamento. Existem inúmeros sites na internet que apresentam quebra-cabeças de programação para que pessoas do mundo inteiro possam tentar suas soluções. Um desses sites é o Code Wars, onde são apresentados desafios de programação de todos os níveis possíveis - desde os mais simples até os extremamente complexos. 

Depois de completar um quebra-cabeças dentro do site, você pode ver as soluções de outros programadores do mundo inteiro. Eu já participei de inúmeros desses projetos e, depois, olhando o código das outras pessoas, aprendi como melhorar o meu próprio código! Muitas vezes, eu estava pensando de forma equivocada em como solucionar os problemas ou estava usando o comando errado. Porém, em ambos os casos eu aprendi uma forma de melhorar o meu programa. 

Todas essas dicas podem parecer um pouco simples mas, na verdade, são dicas muito importantes, que vão melhorar a qualidade do seu código, diminuir a quantidade de possíveis bugs e facilitar futuras manutenções. Espero que as dicas te ajudem e, para outras dúvidas sobre programação, basta entrar em contato conosco clicando aqui.

Tags: qualidade de software, manutenção