ti_publica:desenvolvimento_de_sistemas:boas_praticas
Essa é uma revisão anterior do documento!
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 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.
Para escrever bom código
Geral
- Use um lint(ou linter) pra checar vários aspectos do código. Ex: [https://www.pylint.org/]
- Criar testes automatizados
- Não usar linhas maiores que 80 caracteres
- Crie e use bibliotecas de funções
Variáveis
- Dar nomes descritivos a variáveis e funções
- Adotar camelCase ou snake_case para nomear variáveis e funções
- Adotar maiúsculas para constantes
- Não usar números diretamente, crie uma constante que diga no nome o que ele é (ex: PI, RAIO_DA_TERRA, etc)
- Evitar variáveis globais
- Para definir valores default pode usar a passagem de parâmetro pra função
Funções / Objetos
- Descrever todas as funções
- Criar funções pequenas, segmentando o código
- Eliminar flags booleanos
- Ordem das funções de acordo com uso
- Nomes
- Nomes bem descritivos, como com as variáveis
- Procurar usar sempre os mesmos verbos pras mesmas ações, não usar obter, pegar, get, … escolher um.
- Evitar parâmetros desnecessários
- DRY (evitar ser repetitivo)
- Evitar efeitos colaterais
- Evitar variáveis globais!!!! (vale repetir)
Testes automatizados
- Criar funções ou classes que recebam e retornem parâmetros testáveis
- Criar outro programa que teste, com os testes programados ou preparar trecho do programa para atuar nos testes (python pode usar o artifício do main)
IDE
- Use checagem de sintaxe no VIM e auto compleção
- vim-syntastic
- vim-youcompleteme
Reuso
- Ao criar classes/códigos reusáveis, defina a versão (no nível da classe, não da instância)
- Ao criar número de versão no código use tipo string
ETC
Exemplo de cabeçalho padrão (python):
#!/usr/bin/python3 # -*- coding: UTF-8 -*- # # <Descrição> A segunda linha acima permite o uso de acentuação no arquivo # # # Historico # 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
Referências
- Referência boa de livros de algumas linguagens populares: https://goalkicker.com/
- Vídeo Python's Class Development Toolkit - bom para programar classes reutilizáveis, muitas dicas próprias de python.
ti_publica/desenvolvimento_de_sistemas/boas_praticas.1554237766.txt.gz · Última modificação: 2019/04/02 17:42 por cartola