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

Ambos lados da revisão anteriorRevisão anterior
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/08 10:41] – [Geral] cartolati_publica:desenvolvimento_de_sistemas:boas_praticas [2019/11/21 10:59] – [Geral] cartola
Linha 4: Linha 4:
 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 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. 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 [[:boas_praticas_de_programacao_shell_script|Boas práticas de programação shell]]
  
 =====Para escrever bom código===== =====Para escrever bom código=====
  
 ====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/|Pylint]] (python), [[https://www.shellcheck.net/|shellcheck]] (shell) 
-  * Criar testes automatizados +  * Crie testes automatizados 
-  * Não usar linhas maiores que 80 caracteres +  * Não use linhas maiores que 80 caracteres 
-  * Crie e use bibliotecas de funções+  * Crie e use bibliotecas de funções: não faça blocos de código longos 
 + 
 +===Documentação=== 
 +  * Use um cabeçalho em cada arquivo de código: 
 +    * Descrição do propósito, parâmetros, requisitos, etc 
 +    * Autor 
 +    * Histórico 
 +    * A fazer 
 +  * Comente os blocos: funções, classes, métodos, loops, variáveis ... 
 +    * Pylint pede doc para o arquivo, funções e classes, por exemplo 
 +    * vim-youcompleteme fornece as docs de funções ao digitar seus nomes 
 + 
 +**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 (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=== ===Variáveis===
-  * Dar nomes descritivos a variáveis e funções +  * Dar nomes descritivos a variáveis e funções, usar sempre mesmos verbos e substantivos 
-  * Adotar camelCase ou snake_case para nomear variáveis e funções+  * Adotar camelCase ou snake_case para nomear variáveis e funções e manter coerência num mesmo código
   * Adotar maiúsculas para constantes   * 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)   * Não usar números diretamente, crie uma constante que diga no nome o que ele é (ex: PI, RAIO_DA_TERRA, etc)
Linha 22: Linha 51:
  
 ===Funções / Objetos=== ===Funções / Objetos===
-  * Descrever todas as funções+  * Descrever todas as funções nelas mesmas
   * Criar funções pequenas, segmentando o código   * Criar funções pequenas, segmentando o código
   * Eliminar flags booleanos   * Eliminar flags booleanos
Linha 48: Linha 77:
 ===IDE=== ===IDE===
  
-  Use checagem de sintaxe no VIM e auto compleção +Eu uso o vim, mas essas funcionalidades provavelmente poderão ser encontradas em outras IDEs. 
-    * vim-syntastic + 
-    * vim-youcompleteme+  Checagem de sintaxe e auto complemento no VIM 
 +    * [[https://github.com/vim-syntastic/syntastic|vim-syntastic]] 
 +    * [[https://github.com/ycm-core/YouCompleteMe|vim-youcompleteme]] 
 +  * Configurações no .vimrc: 
 +    * set textwidth=80 
 +    * set wrapmargin=8 
 +    * set columns=80
  
 ===Reuso=== ===Reuso===
   * Ao criar classes/códigos reusáveis, defina a versão (no nível da classe, não da instância)   * 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   * 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ências=====
ti_publica/desenvolvimento_de_sistemas/boas_praticas.txt · Última modificação: 2020/09/21 16:12 por cartola