irmaos-dev / mural

20 stars 14 forks source link

Implement ESLint rule for client architecture #79

Closed Juninhoww2 closed 2 weeks ago

Juninhoww2 commented 2 weeks ago

Mudanças propostas

Seria bom se quando um desenvolvedor criar uma importação que viola a hierarquia da arquitetura (por exemplo, importar algo da infraestrutura no domínio), o ESLint imediatamente destacasse essa linha com um erro no editor, mostrando uma mensagem clara como 'A camada de domínio não pode depender da camada de infraestrutura'. Isso funcionaria assim:

O desenvolvedor tenta importar um módulo de uma camada superior O ESLint detecta automaticamente e sublinha a linha em vermelho Ao passar o mouse sobre o erro, aparece uma mensagem explicativa O comando 'eslint --fix' não conseguiria corrigir automaticamente (pois é uma decisão arquitetural) O dev precisaria corrigir manualmente respeitando a arquitetura

Além disso, essas regras impediriam que o CI/CD passasse caso existam violações, garantindo que o código em produção sempre respeite a hierarquia definida.

Tipo de mudança

Checklist

Issues

Issue resolvida por esse PR:

Issues relacionada a esse PR:

Instruções de testes

Descreva como testar sua funcionalidade

Evidências

Cole aqui uma screenshot da nova funcionalidade ou correção.

marcelaodev commented 2 weeks ago

Infelizmente essa modificação faz muito mais coisas do que pedido. Além disso, as restrições de imports estão em pastas que nem ao menos nós temos. Minha única hipótese quanto a isso é que as modificações foram todas feitas pelo GPT e você não testou e nem ao menos interpretou o que ele fez. Mas nem tudo está perdido. A modificação mostra um caminho claro. Veja que ele adicionou um novo atributo "zones" no objeto. Acho que a solução é por aí. Um import "from" a pasta 3 não pode referenciar um "to" na pasta 2 e nem 1; 4 não pode importar da 3 nem da 2 nem da 1 e assim por diante. A atualização das dependências também me deixa desconfiado... tem certeza que é uma minor version que contém essa funcionalidade de restrição de imports? Já temos uma versão relativamente nova das duas bibliotecas. Favor testar sem atualizá-las. A pull request vai ser aceita se apenas os restricts de import forem adicionados, sem mudar nada do arquivo de configuração do linter (a não ser que apresente uma justificativa para modificações extras).