|
|
|
| [Home](home) | [**Escopo**](escopo) | [Git Workflow](git-workflow) | [Design/Mockups](design_mockups) | [Configuração](configuracao) | [Arquitetura](arquitetura) | [Gerência](gerencia) | [BD](Banco de Dados) | [Qualidade](qualidade) |
|
|
|
|
| :----------: | :-------------------------------: | :------------------: | :--------------: | :--------------------------: | :--------------------: | :------------------------: | :--------------: | :---------------: |
|
|
|
|
|
|
|
|
# Qualidade de Código
|
|
|
|
|
|
|
|
A qualidade de código refere-se a um conjunto de características que um código fonte deve possuir para ser considerado de alta qualidade.
|
|
|
|
|
|
|
|
## Sumário
|
|
|
|
|
|
|
|
1. [Princípios do Clean Code](#princípios-do-clean-code)
|
|
|
|
2. [Dicas para Produzir um Bom Código](#dicas-para-produzir-um-bom-código)
|
|
|
|
3. [Testes Unitários](#testes-unitários)
|
|
|
|
4. [Ferramentas e Recursos](#ferramentas-e-recursos)
|
|
|
|
5. [Referências](#referências)
|
|
|
|
|
|
|
|
## Princípios do Clean Code
|
|
|
|
|
|
|
|
### Nomes Significativos
|
|
|
|
- Utilize nomes descritivos para variáveis, funções, classes e módulos.
|
|
|
|
- Nomes devem revelar a intenção do código, facilitando a compreensão.
|
|
|
|
|
|
|
|
### Funções Pequenas
|
|
|
|
- Funções devem ser curtas e realizar apenas uma tarefa.
|
|
|
|
- Cada função deve ter um nível de abstração, facilitando a leitura e manutenção.
|
|
|
|
|
|
|
|
### Evitar Repetição
|
|
|
|
- Utilize o princípio DRY (Don't Repeat Yourself).
|
|
|
|
- Centralize a lógica comum em funções ou módulos reutilizáveis.
|
|
|
|
|
|
|
|
### Comentários Úteis
|
|
|
|
- Comentários devem explicar "por que" o código foi escrito de certa forma, não "como".
|
|
|
|
- Prefira escrever código autoexplicativo para minimizar a necessidade de comentários.
|
|
|
|
|
|
|
|
### Formatação Consistente
|
|
|
|
- Siga um padrão de formatação para todo o código.
|
|
|
|
- Utilize ferramentas de linting e formatação automática para manter a consistência.
|
|
|
|
|
|
|
|
### Trate Erros de Forma Adequada
|
|
|
|
- Utilize exceções para tratar erros de forma robusta.
|
|
|
|
- Evite capturar exceções genéricas; capture apenas as exceções que você pode tratar.
|
|
|
|
|
|
|
|
### Testes
|
|
|
|
- Escreva testes unitários para verificar o comportamento de pequenas partes do código.
|
|
|
|
- Garanta alta cobertura de testes para aumentar a confiabilidade do software.
|
|
|
|
|
|
|
|
## Dicas para Produzir um Bom Código
|
|
|
|
|
|
|
|
### Planejamento
|
|
|
|
- Antes de começar a codificar, planeje a estrutura do seu código.
|
|
|
|
- Desenhe diagramas ou esboços das principais partes do sistema.
|
|
|
|
|
|
|
|
### Refatoração Contínua
|
|
|
|
- Refatore o código regularmente para melhorar sua estrutura.
|
|
|
|
- Elimine código morto e simplifique a lógica onde possível.
|
|
|
|
|
|
|
|
### Feedback Constante
|
|
|
|
- Utilize revisões de código para obter feedback dos colegas.
|
|
|
|
- Integre feedback construtivo para melhorar continuamente a qualidade do código.
|
|
|
|
|
|
|
|
### Documentação
|
|
|
|
- Documente as principais decisões de design e as partes complexas do código.
|
|
|
|
- Mantenha a documentação atualizada conforme o código evolui.
|
|
|
|
|
|
|
|
### Utilização de Ferramentas
|
|
|
|
- Utilize ferramentas de análise estática, como SonarQube, para identificar problemas de código.
|
|
|
|
|
|
|
|
## Testes Unitários
|
|
|
|
|
|
|
|
Os testes unitários são essenciais para garantir a qualidade do código durante o desenvolvimento. Eles ajudam a verificar que cada unidade do código (função, método, classe) funciona como esperado.
|
|
|
|
|
|
|
|
### Benefícios dos Testes Unitários
|
|
|
|
- **Detecção Precoce de Bugs:** Identificação rápida de problemas no código.
|
|
|
|
- **Facilidade de Refatoração:** Refatoração segura do código com a garantia de que o comportamento esperado será mantido.
|
|
|
|
- **Documentação Viva:** Os testes servem como uma forma de documentação viva que descreve como o código deve funcionar.
|
|
|
|
|
|
|
|
### Boas Práticas para Testes Unitários
|
|
|
|
- **Escreva Testes Isolados:** Cada teste deve ser independente e não deve depender de outros testes.
|
|
|
|
- **Cobertura de Testes:** Esforce-se para cobrir a maior parte possível do código, incluindo casos de borda.
|
|
|
|
|
|
|
|
## Ferramentas e Recursos
|
|
|
|
- **Texto:** Texto.
|
|
|
|
|
|
|
|
## Referências
|
|
|
|
1. Martin, R. C. (2008). *Clean Code: A Handbook of Agile Software Craftsmanship*. Prentice Hall.
|
|
|
|
2. Fowler, M. (2018). *Refactoring: Improving the Design of Existing Code*. Addison-Wesley Professional.
|
|
|
|
3. Beck, K. (2002). *Test Driven Development: By Example*. Addison-Wesley Professional.
|
|
|
|
4. "The Importance of Code Quality." Codecademy. [Codecademy](https://www.codecademy.com/articles/code-quality). |
|
|
|
\ No newline at end of file |