Ferramentas do usuário

Ferramentas do site


ti_publica:desenvolvimento_de_sistemas:boas_praticas

Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Próxima revisão
Revisão anterior
Próxima revisãoAmbos lados da revisão seguinte
ti_publica:desenvolvimento_de_sistemas:boas_praticas [2019/04/02 17:42] – created cartolati_publica:desenvolvimento_de_sistemas:boas_praticas [2019/04/06 17:52] cartola
Linha 8: Linha 8:
  
 ====Geral==== ====Geral====
-  * Use um lint(ou linter) pra checar vários aspectos do código. Ex: [https://www.pylint.org/]+  * Use um lint(ou linter) pra checar vários aspectos do código. Ex: [[https://www.pylint.org/]]
   * Criar testes automatizados   * Criar testes automatizados
   * Não usar linhas maiores que 80 caracteres   * Não usar linhas maiores que 80 caracteres
Linha 33: Linha 33:
   * Evitar efeitos colaterais   * Evitar efeitos colaterais
   * Evitar variáveis globais!!!! (vale repetir)   * Evitar variáveis globais!!!! (vale repetir)
 +
 +===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.
 +  * Indente sempre bem ou pode entender errado que comandos estão dentro de que estruturas. Com uma IDE isso é bem fácil
 +  * O uso de um lint(er) pode ajudar a identificar algumas faltas de padrão
 +  * Um formatador, [[https://github.com/ambv/black|como o black pra Python]], ajuda a manter o código coerente (formatando coisas opcionais sempre da mesma forma) e legível
  
 ===Testes automatizados=== ===Testes automatizados===
 +  * Algumas linguagens já tem frameworks prontos para adiantar esse trabalho, como o [[https://docs.pytest.org/en/latest/|pytest para Python]], [[https://github.com/kward/shunit2|shUnit2 para Shell]] etc
   * Criar funções ou classes que recebam e retornem parâmetros testáveis   * 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__)+  * Criar outro programa que teste, com os testes programados ou preparar trecho do programa para atuar nos testes 
 +  * Uso de <code python>if __name__ == "__main__":</code> no Python para diferenciar quando o script está sendo chamado diretamente e quando está sendo carregado por outro, visando não executar o programa principal se estiver sendo testado
  
 ===IDE=== ===IDE===
Linha 72: Linha 80:
   * Vídeo [[https://www.youtube.com/watch?v=HTLu2DFOdTg|Python's Class Development Toolkit]] - bom para programar classes reutilizáveis, muitas dicas próprias de python.   * Vídeo [[https://www.youtube.com/watch?v=HTLu2DFOdTg|Python's Class Development Toolkit]] - bom para programar classes reutilizáveis, muitas dicas próprias de python.
   * [[https://en.wikipedia.org/wiki/Zen_of_Python|Zen of Python]]   * [[https://en.wikipedia.org/wiki/Zen_of_Python|Zen of Python]]
 +  * Cursos gratuitos da USP no Coursera:
 +    *  [[https://www.coursera.org/learn/ciencia-computacao-python-conceitos|Introdução à Ciência da Computação com Python Parte 1]]
 +    * [[https://www.coursera.org/learn/ciencia-computacao-python-conceitos-2|Introdução à Ciência da Computação com Python Parte 2]]
ti_publica/desenvolvimento_de_sistemas/boas_praticas.txt · Última modificação: 2020/09/21 16:12 por cartola