Vertical slice eu só conheço no ramo do game dev, que é onde junta 80% das features do jogo em uma demonstração curta.
Читать полностью…[.NET + Design Patterns: +15 horas conteúdos gratuitos]
Fala galera! Segue post em que agrupo mais de 15 horas de vídeos gratuitos sobre a implementação de diferentes patterns em .NET. Vocês encontrarão aqui o uso de vários padrões com tecnologias como .NET, ASPNET Core, Minimal APIs, Azure Functions, Swagger/Open API, Polly, k6 (Testes de Carga) e Visual Studio Code:
https://renatogroffe.medium.com/net-design-patterns-15-horas-de-v%C3%ADdeos-gratuitos-24a5e60fed91
Há uma segunda discussão, que não tenho opinião formada, sobre a possibilidade de entidades de domínio com estados inválidos.
Se puder em algum momento ter estado inválido, essa regra que eu citei é basicamente essa mesma.
Senão, aí até coisas bobas como um CPF inválido deveria lançar uma exception já no construtor.
Assumindo que a validação "cordial" seria feita previamente, e supondo que nunca deveria chegar ao construtor um CPF inválido, e se chegou, estamos falando de um bug
Provavelmente não seria na entidade cliente, mas em alguém que usa ess entidade e precisa que haja um CPF válido
Читать полностью…Isso é outra coisa, não há relação com Exceptions.
Notifications é uma cordialidade, para evitar isso.
Mas quem é obrigatório é exception. Se vão implementar o mecanismos que traz cordialidade ao fluxo ou não, é uma decisão de design.
Mas pra foda validação que não houver uma exception, há uma fragilidade e bugs.
Se vocês entendessem esse princípio, ao invés de repetir aquilo que sequer entendem, fariam software muito melhor.
exceptions me fazem perder o sono. se lança exception as validações ficam "picadas" (nome nao informado, cpf inválido, etc.) se nao lança exception, tem que ficar verificando em varios lugares as mesmas regras e ai pode ser que esqueça em algum lugar e pode haver problemas. exemplo é o cpf. se colocar a validação do cpf na entidade cliente e gerar exception para nao permitir cliente com cpf invalido tem que duplicar a validação em um DTO para o cpf nao chegar invalido na entidade e poder exibir uma mensagem "amigavel" para controller ou coisas do tipo. para mim é td muito complicado. 😭
Читать полностью…Ou seja, só tenho dois projetos, um projeto de serviço (seja api, Windows service, Azure Functions) e o de testes. Agora agrupo todas as entidades em volta de uma feature em uma pasta
Читать полностью…Não que o meu projeto seja referência de alguma coisa. Mas eu uso bastante coisa de DDD aí.
https://github.com/MarcosCostaDev/TDD-DDD-Eventsourcing-Mediator
Mo clean architecture (livro) aparece tbm este estilo de separação de componentes de alto nivel
Читать полностью…"Vertical slice" e "onion architecture" são puro suco da comunidade dotnet que gosta de complicar as coisas
Читать полностью…Interessante, tb comecei a fazer isso depois de me incomodar de ficar navegando entre controller, service e repositorio.
Читать полностью…Essa é uma discussão sobre estados inválidos, tem pros e contras, vai depender da abordagem.
Читать полностью…Alguém que não tenha ciência se há ou não capacidade de recuperar o dado correto, cianuma interação com o usuário, um serviço de emissão de nota fiscal, por exemplo
Читать полностью…mas sendo notification uma cordialidade, pensando de maneira bem simplista, deve ser gerada uma exception na entidade de cliente caso cpf seja invalido e no controller da webapi deve ser validado o cpf e retornado uma mensagem mais amigavel caso cpf seja inválido, evitando assim chegar informação inválida na entidade cliente. é isso ou eu entendi errado?!
Читать полностью…sem contar os benditos valueobjects que dizem ser boa prática mas tmb para mim é confuso. se criei o valueobjects foi para ter por exemplo as validações necessárias dentro dele. pegando o exemplo do cpf, se ele é um valueobject, a validação se cpf é válido ou nao para mim tem que estar nele e nao poderia criar o cpf se fosse invalido. para isso, entendo que tem que ter uma exception. mas ai a pessoa cria o cpf como valueobject e qdo precisa validar faz um cpf.isvalid().
para mim nao faz sentido algum isso. basicamente so esta criando uma maneira diferente (bonita) para usar uma string. outro exemplo seria email. cria um valueobjects para email e depois fica chamando em varios lugares email.isvalid(). 🙈
Por exemplo, ao invés de ter uma pasta "Controllers", eu teria uma pasta "produto" que teria o controller, a entidade e o repositório
Читать полностью…Mas isso aí é um super resumido projeto artificial que usa apenas classes e organização de projeto. DDD não necessariamente precisa seguir essa estrutura. Inclusive, eu, agora, estou usando uma abordagem onde eu agrupo controllers e entidades por feature e não mais por tipo como tá nesse projeto
Читать полностью…Boa noite, era isso mesmo. Troquei para a versao "9.2.0-alpha1" e tudo funcionou, valeu pela ajuda galera!
Читать полностью…