Antes de mais nada, muito obrigado por considerar contribuir com o Dext! São pessoas como você que fazem do Dext uma ferramenta incrível para a comunidade Delphi.
Ao participar deste projeto, você concorda em cumprir seus termos e diretrizes.
- Verifique o rastreador de problemas (issues) para ver se o bug já foi relatado.
- Caso contrário, abra uma nova issue. Descreva claramente o problema e inclua passos para reproduzi-lo.
- Abra uma issue com a tag
enhancement. - Explique por que essa funcionalidade seria útil para a maioria dos usuários do Dext.
- Faça um Fork do repositório.
- Crie uma nova branch para sua funcionalidade ou correção.
- Implemente suas alterações.
- Siga o Object Pascal Style Guide (consistente com o resto do projeto).
- Certifique-se de que todos os testes passem executando os scripts PowerShell no diretório
Tests/. - Envie um Pull Request direcionado à branch
mainoudevelop.
- Use espaços, não tabs (2 ou 4 espaços conforme o padrão do projeto).
- Siga as convenções de nomenclatura:
Tpara Classes,Ipara Interfaces,fpara campos privados. - Mantenha os métodos focados e siga os princípios SOLID.
- Desempenho & Segurança de Interfaces:
- Sempre passe parâmetros de interface como
constnas assinaturas de métodos (ex:procedure DoSomething(const AService: IMyService)). Isso evita chamadas desnecessárias a_AddRefe_Releasegeradas pelo compilador, eliminando sobrecarga com instruções atômicas de CPU. - Evite misturar ponteiros de objetos puros (raw objects) com referências de interfaces em limites públicos ou APIs visíveis ao usuário. Restrinja a desvirtualização (fazer typecast de interfaces de volta para objetos) estritamente a loops internos isolados onde o ciclo de vida do objeto é totalmente controlado e nunca exposto.
- Sempre passe parâmetros de interface como
- Novas funcionalidades devem, idealmente, vir acompanhadas de testes unitários.
- Consulte
Docs/Book.pt-br/08-testingpara orientações sobre como escrever testes para o Dext.
- Junte-se à nossa comunidade no Discord/Telegram (links no README).
- Respeite todos os colaboradores e mantenedores.
Construindo o futuro do Delphi juntos.