Skip to content

Commit aca5fe3

Browse files
authored
Merge pull request #1587 from ZeusAutomacao/chore/atualizacao_diretrizes_de_contribuicao
chore: atualizado CONTRIBUTING.md para incluir diretrizes presentes na wiki
2 parents df68fe4 + 606b3ff commit aca5fe3

File tree

1 file changed

+34
-13
lines changed

1 file changed

+34
-13
lines changed

CONTRIBUTING.md

Lines changed: 34 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -140,26 +140,47 @@ Após concluir as alterações na sua branch, abra um Pull Request (PR) da branc
140140

141141
### Convenções de código, padrões e boas práticas
142142

143-
Para garantir clareza, consistência e qualidade, adote as seguintes diretrizes: (Adicionar links para as documentações dos conceitos)
144-
143+
Para garantir clareza, consistência e qualidade no código, adote as seguintes diretrizes:
144+
145+
- Os nomes de métodos, atributos e classes auxiliares devem ser escritos em português;
146+
- Os nomes das classes e atributos constantes no Manual de Orientação do Contribuinte devem ser escritos exatamente como constam na documentação, respeitando a diferenciação entre maiúsculas e minúsculas (case sensitive). Exemplo: se o atributo ou classe começar com letra minúscula, ele deve ser mantido dessa forma no código C#.
147+
- Todas as classes devem conter um cabeçalho com a licença e os direitos de uso;
148+
- Ao referenciar objetos ou métodos na documentação XML, utilize `<see cref="">`. Exemplo:
149+
```csharp
150+
/// <summary>
151+
/// Obtém o certificado digital.
152+
/// <para>
153+
/// Se <see cref="ConfiguracaoCertificado.Arquivo"/> for informado, será usado o método <see cref="ObterDeArquivo(string,string)"/>.
154+
/// Caso contrário, será usado <see cref="ObterDoRepositorio()"/>.
155+
/// </para>
156+
/// <para>Após o uso, invoque <see cref="X509Certificate2.Reset()"/>.</para>
157+
/// </summary>
158+
```
159+
- Todas as classes, atributos e métodos devem ser documentados no formato XML. A documentação dos atributos e classes do projeto `*.Classes` deve incluir o código e a descrição conforme especificado no Manual de Orientação do Contribuinte, seguindo o padrão adotado no projeto `NFe.Classes`. Exemplo:
160+
```csharp
161+
/// <summary>
162+
/// PR06 - Versão do Aplicativo que processou a consulta.
163+
/// </summary>
164+
public string verAplic { get; set; }
165+
```
145166
- Siga as convenções da Microsoft, conforme definido em:
146167
- [Regras e Convenções de Nomenclatura do Identificador C#](https://learn.microsoft.com/pt-br/dotnet/csharp/fundamentals/coding-style/identifier-names)
147168
- [Convenções Comuns de Código C#](https://learn.microsoft.com/pt-br/dotnet/csharp/fundamentals/coding-style/coding-conventions)
148169
- Testes automatizados:
149-
- Implemente testes automatizados para validar fluxos positivos e cenários de falha.
150-
- Organize os testes de forma a refletir a estrutura do código, garantindo isolamento e reprodutibilidade.
170+
- Implemente testes automatizados para validar fluxos positivos e cenários de falha;
171+
- Organize os testes de forma a refletir a estrutura do código, garantindo isolamento e reprodutibilidade;
151172
- Utilize o padrão de nomenclatura [Given-When-Then](https://martinfowler.com/bliki/GivenWhenThen.html).
152173
- Princípios [S.O.L.I.D.](https://medium.com/desenvolvendo-com-paixao/o-que-%C3%A9-solid-o-guia-completo-para-voc%C3%AA-entender-os-5-princ%C3%ADpios-da-poo-2b937b3fc530):
153-
- Responsabilidade Única: cada classe ou método deve ter uma responsabilidade clara.
154-
- Aberto/Fechado: projete o sistema para permitir novas funcionalidades sem alterar o comportamento existente.
155-
- Substituição de Liskov: componentes derivados devem substituir os genéricos sem comprometer a integridade.
156-
- Segregação de Interfaces: mantenha interfaces focadas e específicas.
157-
- Inversão de Dependência: estruture dependências em abstrações, não em implementações concretas.
158-
- [KISS](https://dev.to/suspir0n/kiss-mantenha-a-simplicidade-estupido-24lh) (Keep It Simple, Stupid): opte por soluções simples e diretas, evitando complexidade desnecessária.
159-
- [DRY](https://medium.com/@rafaelsouzaim/n%C3%A3o-se-repita-dry-dont-repeat-yourself-40da33289bcf) (Don't Repeat Yourself): centralize a lógica repetitiva para um código mais sustentável e menos propenso a erros.
174+
- Responsabilidade Única: cada classe ou método deve ter uma responsabilidade clara;
175+
- Aberto/Fechado: projete o sistema para permitir novas funcionalidades sem alterar o comportamento existente;
176+
- Substituição de Liskov: componentes derivados devem substituir os genéricos sem comprometer a integridade;
177+
- Segregação de Interfaces: mantenha interfaces focadas e específicas;
178+
- Inversão de Dependência: estruture dependências em abstrações, não em implementações concretas;
179+
- [KISS](https://dev.to/suspir0n/kiss-mantenha-a-simplicidade-estupido-24lh) (Keep It Simple, Stupid): opte por soluções simples e diretas, evitando complexidade desnecessária;
180+
- [DRY](https://medium.com/@rafaelsouzaim/n%C3%A3o-se-repita-dry-dont-repeat-yourself-40da33289bcf) (Don't Repeat Yourself): centralize a lógica repetitiva para um código mais sustentável e menos propenso a erros;
160181
- Outras boas práticas:
161-
- Use nomes autoexplicativos.
162-
- Mantenha responsabilidades bem definidas em métodos e classes.
182+
- Use nomes autoexplicativos;
183+
- Mantenha responsabilidades bem definidas em métodos e classes;
163184
- Escreva código de fácil leitura e manutenção, minimizando a necessidade de comentários para esclarecer a intenção.
164185

165186

0 commit comments

Comments
 (0)