Tabela de conteúdos

Desenvolvimento de sistemas: boas práticas

Tentei reunir aqui boas práticas que gosto de usar para programar. São dicas pessoais que alguns podem preferir não usar, mas as obtive de várias fontes e muitas são de consenso geral. Algumas são avaliadas para considerar se o código é bom. Algumas dicas são genéricas, outras mais adequadas a uma ou outra linguagem. Quando comecei a escrever estava programando principalmente em python, mas também frequentemente em shell (principalmente bash) e as vezes em php. No passado já programei em C, pascal, perl, fortran e talvez alguma outra linguagem que não estou lembrando agora.

Veja também:

Dicas gerais

IDE

Eu uso o vim, mas essas funcionalidades provavelmente poderão ser encontradas em outras IDEs.

Reuso

Documentação

Um projeto de software certamente necessita de arquivos somente de documentação com temas como escopo, regras de negócio, cronograma, papéis e responsabilidades da equipe, requisitos, licenças etc. Em projetos menores muitas vezes isso tudo pode estar num único arquivo LEIAME.txt ou, seguindo a tendência do github, README.md, que pode ser escrito com Markdown e será apresentado ao acessar um diretório via web num repositório GIT.

Isso tudo, porém, não exclui uma boa documentação no próprio código, que é do que falo aqui.

Exemplo de cabeçalho padrão (python):

#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
#
# <Descrição> A segunda linha acima permite o uso de acentuação no arquivo
#
#
# Historico (mais recente em cima)
#       27.11.2018 - <identificação da pessoa> - Criação
#       13.12.2018 - <identificação da pessoa> - Lorem Ipsilum
#
# A Fazer
#       - Tarefa 1
#       - Tarefa 2
#               - subtarefa 2.1

Variáveis

Funções / Objetos

Formatação

Lembre-se que outra pessoa pode mexer no seu código mesmo que você não preveja isso inicialmente. Além disso você mesmo pode não lembrar mais o que você fez.

Testes automatizados

Senhas hardcoded

Em algumas situações seu programa precisa utilizar senhas. Se sua execução for agendada e não houver uma pessoa para passar a senha na hora, como fazer? Colocar a senha hardcoded? E se seu código estiver sendo guardado num sistema de controle de versão, o que é uma boa prática?

Na prática criei uma função numa biblioteca geral para carregar variáveis de configuração, por conta disso meu arquivo de configuração é homônimo ao programa original adicionado de uma extensão padrão.

Internacionalização de código

Referências