Feature Folder em C#
Alguém já utilizou a separação de projetos chamada Feature Folder em C#? Estamos iniciando um projeto e iremos utilizar esta abordagem para separar nossas pastas e projetos. A ideia principal é separar o projeto primariamente pelas features principais do sistema, e não pela abordagem clássica do Clean Arch: Api/Application/Domain/Infra.
Já utilizei a estrutura de Feature Folder em um projeto pequeno e gosto dela. No entanto, acredito que a escolha entre Feature Folder e Clean Arch, que você mencionou, depende muito do gosto pessoal. O padrão mais comum na comunidade dotnet é o Clean Arch, com as camadas Api/Application/Domain/Infra.
Às vezes, o projeto é tão pequeno, um microserviço realmente pequeno, e temos o hábito de criar um arquivo .csproj para cada "camada". Será que para algo tão pequeno, separar em pastas já não é suficiente? A resposta, como em muitas coisas em nossa jornada como programadores, é: Depende.
Independentemente da escolha da estrutura, o mais importante é pensar em algumas questões:
1 - Está havendo consenso entre toda a equipe? Está claro como as coisas devem ser implementadas e mantidas? 2 - A longo prazo, seremos capazes de sustentar o padrão escolhido? 3 - Como iremos garantir esse padrão? Talvez um checklist nos pull requests possa ser uma opção.
Isso faz sentido? Contem-me o que vocês decidirem depois.