Duas programadoras aprendendo boas práticas para iniciantes
Desenvolvimento

Boas práticas de programação para iniciantes

Duas programadoras aprendendo boas práticas para iniciantes
Comunicação DB1
25 de março de 2019
Duas programadoras aprendendo boas práticas para iniciantes

Sou estagiário na DB1 desde novembro, meu primeiro emprego como Desenvolvedor. Com a ajuda dos meus mentores tenho evoluído muito a cada dia, e como todos nós desenvolvedores percebemos um dia, notei a gritante diferença do que é aprendido na faculdade e do que é realmente usado no dia a dia do programador. 

O DB1 Start, curso gratuito com processo seletivo oferecido pela DB1, foi onde eu tive o meu primeiro contato com a programação nesse lado mais profissional. O professor já nos ensinou a importância de se ter um bom código 

Mostrarei nesse artigo conceitos simples, que os programadores mais experientes já estão cansados de saber, mas que são muito importantes para quem está entrando nessa área. 

Observando que darei uma breve explicação desses conceitos, deixarei também links com explicações mais profundas de cada um. 

Comece a usar Testes 

Imagine você comprar um carro que não foi testado nenhuma vez em sua etapa de produção. Nem motor, nem câmbio, e nem mesmo as rodas. Qual confiança você terá nesse automóvel? Claro que nada garante que ele não irá funcionar, mas caso não funcione, você não ficará nada feliz. 

Assim também é no mundo da programação. Um código sem teste não terá muita credibilidade do cliente. Claro que para isso temos nossa equipe de testes, mas podemos ajudá-la com a criação de testes unitários. 

Teste unitário é uma das formas de teste, que trata-se da validação do comportamento de trechos do seu código. Essa validação é criada pelo desenvolvedor, usando sua criatividade para conseguir testar as partes mais importantes do seu projeto. 

Testando o código, o programador garante que as partes do código testadas funcionam. Dessa forma, garante também a confiabilidade do código, e maior facilitação do trabalho da equipe de testes. 

Portanto, como consequência dessa cultura de testes, conheci o TDD (Test-Driven Development). Essa técnica orienta seu desenvolvimento a ter pequenas entregas, alto feedback do comportamento e consequentemente cobertura de testes (que também servem como documentação em alguma medida).  

Essa prática consiste em dividir o trabalho em pequenas etapas (prática também conhecida como baby steps): Escrever um teste que estimule um comportamento, implemente a funcionalidade, assim que estiver OK, vá para a próxima etapa. 

Para mim, o TDD foi muito útil para a quebra de complexidade do código. Percebi também que não é necessário seguir ao pé da letra essa ordem. Começar a desenvolver um problema é complexo, fica bem mais fácil abstrair, dividindo-o em pequenas partes, não precisando construir todo aquele monstro de uma vez. 

Me refiro ao termo cultura ao falar de testes unitários, pois eles devem se tornar um hábito para o programador, e não apenas uma prática obrigatória, dando mais naturalidade ao seu desenvolvimento. 

Veja aqui um estudo mais aprofudando sobre esse tema.  

 

Não reinvente a roda 

Um ditado bem enfatizado no meio da programação é: “não reinvente a roda”. Ou seja, não seja redundante ao escrever seu código. Ao pensar em um problema, certifique-se de que alguém já não tenha tido esse problema antes de você (e acredite, isso acontecerá na maioria dos casos).

Com uma simples pesquisa no Google podemos resolver esse tipo de problema, conhecendo várias bibliotecas nativas das linguagens de programação (como por exemplo a biblioteca stream de Java, que auxilia muito no uso de listas). Com essas pesquisas, adquirimos mais ferramentas e ideias para poder usar em problemas posteriores, aumentando nossa experiência em programação. 

O que me ajudou muito foi aprender a fazer pesquisas dos meus problemas em inglês. Isso aumenta o leque de dicas e materiais disponíveis, portanto, uma dica que deixo é exercitar essa prática, pois pesquisas apenas em português são limitadas. 

Pratique o reuso 

Em uma empresa que trabalha com milhares de linhas de código, executando vários serviços simultaneamente, cada linha de código a mais se torna muito cara. Por isso, deve sempre se programar visando o reuso. 

Há vários modos de reuso na programação, como os explícitos nas linguagens de programação, por exemplo: herança e interface. Além desses, outras formas, como a identificação de números mágicos, e também métodos com responsabilidade única. 

Acima, podemos ver um exemplo de número mágico. O que seria esse 0.065? No caso, é a taxa selic, que multiplicada com a quantidade de seu investimento, retorna o lucro adquirido. Mas o próximo programador que ver seu código pode não saber disso. Portanto, uma dica importante é extraí-lo para uma constante, como no exemplo abaixo: 

Assim, o próximo programador que ver seu código, entenderá de onde vem esse valor, além de poder usá-lo em outras partes do programa, ocupando menos espaço na memória, pois não precisará declarar o valor outra vez. 

Acima, temos um exemplo de uma função com várias responsabilidades. Outra forma de reuso na programação é cada método ter apenas uma responsabilidade, ou seja, fazer apenas uma coisa, também conhecido como responsabilidade única. 

Responsabilidade única é um dos cinco princípios SOLID. São princípios, identificados por Robert C. Martin e destinados a fazer projetos de software mais compreensíveis, flexíveis e de fácil manutenção.  

Veja aqui uma vídeo de aula SOLID 

Claro que isso é apenas um simples exemplo, mas em um código maior, essa prática pode aumentar muito a legibilidade e as chances de reuso. Um dos passos a seguir para começar essa refatoração, seria identificar os códigos duplicados e os isolar em métodos, criando uma generalização, podendo assim, reusá-los futuramente. 

Existem nas IDEs, como Eclipse e NetBeans, atalhos para extrair códigos para métodos, variáveis e constantes, facilitando esse processo. 

Conclusão

Portanto, sempre se preocupe com seu código, aplicando esses e outros conceitos, que deixam seus projetos mais organizados, e melhoram a arquitetura do seu projeto, facilitando a manutenção posteriormente.

Com esse artigo, quis passar para você que tem interesse ou está começando na carreira de programador, um pouco que estou aprendendo nessa fase de aprendizado aqui na DB1. Sucesso pra vocês galera!!

“Gostaria de agradecer ao meu gestor Leonardo Conchon, e também ao meu mentor Sérgio Lacerda pelo apoio no artigo e pelos ensinamentos. Valeu o/.

Sobre o autor

Lucas Viana é graduando em Informática na UEM. Atualmente faz parte do time Sicoob da unidade IT Services, atuando como Estagiário no cargo de Desenvolvedor. Começou recentemente sua carreira, portanto busca conhecimento e evolução pessoal e profissional diariamente.


Escrito por

Comunicação DB1

Inscreva-se e receba nossa newsletter!

Estamos sempre gerando conteúdos inéditos para compartilhar conhecimento com você, além das últimas notícias de tecnologia.