Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Desenvolvimento para o dia a dia

Essa arquitetura seria correto chamar de um Monolítico Modular? eu poderia aplicar isso para projetos reais? entendo que sempre depende do contexto, mas se fosse para um sistema simples bem parecido com o apresentado do curso, essa organização de pastas é utilizado no meio de trabalho? como os endpoints de CRUDS com EF core

1 resposta
solução!

Olá Robert! Como vai?

Você está no caminho certo ao pensar em modularizar a sua aplicação.

A arquitetura que você está utilizando pode, sim, ser chamada de "Monolítico Modular". Esse tipo de arquitetura é bastante comum em projetos reais, especialmente quando estamos lidando com sistemas que não são extremamente complexos e que podem ser mantidos de forma eficiente sem a necessidade de uma arquitetura de microserviços.

A organização das pastas e a separação das responsabilidades, como mostrado no curso, são práticas recomendadas para manter o código mais limpo e fácil de manter. Ao criar classes de extensão para os endpoints, você está aplicando um conceito importante de separação de responsabilidades, o que facilita a manutenção e a escalabilidade do código.

Para um sistema simples, como o apresentado no curso, essa abordagem é bastante válida. Por exemplo, ao separar os endpoints de artistas e músicas em classes distintas, você torna o código mais legível e facilita futuras manutenções ou expansões. Aqui está um exemplo prático de como isso pode ser útil:

Imagine que você precise adicionar novos endpoints para gerenciar álbuns no futuro. Com essa estrutura modular, você simplesmente criaria uma nova classe AlbunsExtensions e adicionaria os métodos de extensão para os endpoints de álbuns, sem precisar mexer nos endpoints de artistas ou músicas.

public static class AlbunsExtensions
{
    public static void AddEndPointsAlbuns(this WebApplication app)
    {
        app.MapGet("/Albuns", ([FromServices] DAL<Album> dal) =>
        {
            return Results.Ok(dal.Listar());
        });

        app.MapPost("/Albuns", ([FromServices] DAL<Album> dal, [FromBody] Album album) =>
        {
            dal.Adicionar(album);
            return Results.Ok();
        });

        // Outros endpoints de álbuns...
    }
}

E no Program.cs, você apenas adicionaria a chamada para essa nova extensão:

app.AddEndPointsAlbuns();

Essa abordagem modular facilita bastante a manutenção e a adição de novas funcionalidades ao sistema.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.