You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+34-13Lines changed: 34 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -140,26 +140,47 @@ Após concluir as alterações na sua branch, abra um Pull Request (PR) da branc
140
140
141
141
### Convenções de código, padrões e boas práticas
142
142
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 <seecref="ConfiguracaoCertificado.Arquivo"/> for informado, será usado o método <seecref="ObterDeArquivo(string,string)"/>.
154
+
/// Caso contrário, será usado <seecref="ObterDoRepositorio()"/>.
155
+
/// </para>
156
+
/// <para>Após o uso, invoque <seecref="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
+
publicstringverAplic { get; set; }
165
+
```
145
166
- Siga as convenções da Microsoft, conforme definido em:
146
167
-[Regras e Convenções de Nomenclatura do Identificador C#](https://learn.microsoft.com/pt-br/dotnet/csharp/fundamentals/coding-style/identifier-names)
147
168
-[Convenções Comuns de Código C#](https://learn.microsoft.com/pt-br/dotnet/csharp/fundamentals/coding-style/coding-conventions)
148
169
- 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;
151
172
- Utilize o padrão de nomenclatura [Given-When-Then](https://martinfowler.com/bliki/GivenWhenThen.html).
- 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;
160
181
- 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;
163
184
- Escreva código de fácil leitura e manutenção, minimizando a necessidade de comentários para esclarecer a intenção.
0 commit comments