Conhecimento em SOLID deveria ser mais aprofundado nas faculdades, porém o que temos hoje é coisas rasas sobre POO e acabamos tendo que aprender por fora ou na pratica ao ingressar no mercado de trabalho. Obrigado por mais esse compartilhamento conosco mestre Balta, curto bastante seus videos
Em toda entrevista de emprego que participo/participei pedem isso pesadamente, de entrevistas p pleno até a entrevista para tech lead. Mas raras empresas que trabalhei utilizam de maneira contundente. Os conceitos do solid vão se perdendo ou sendo desvirtuados fortemente com o tempo de existência de um sistema com seu crescimento e manutenção.
No caso de uso do Discout discount2, já é usado o "L" do SOLID, o principio da substituição de Liscow(não sei se é assim que se escreve Liscow), correto?
Não por que não estamos falando de contratos e sim de estender funcionalidades de uma classe... como uma interfaces não tem comportamento (Até tem mais é papo longo) ele não se aplica. Temos um vídeo aqui falando sobre classes abstratas vs interfaces!
Uma dúvida, na plataforma do Balta, onde tem essa questão das arquiteturas? E é utilizado o .net 8 nelas? Estou querendo assinar. Estou atrás de algo novo e avançado.
Vídeo incrível mestre. Mas tenho uma duvida, o principio OCP se aplica a classes de serviço? Ex: uma classe ProductService que faz um CRUD basico de produtos. Quero adicionar a funcionalidade para retornar todos os produtos com algum critério (produtos por pedido, produtos por categorias, produtos que estão em falta…). Nesse caso podemos apenas criar novos metodos dentro da classe de serviço ou é melhor estender de alguma forma? Se fosse necessário estender, eu fico meio confuso em como isso seria feito.
Você pode criar um ProductServiceCustom que herda de ProductService e adicionar seu método. Outra alternativa mais invasiva: Você pode alterar seu ProductService pra Partial e criar um segundo arquivo para a classe partial ProductService e adicionar seu método. Ao compilar, o C# "junta os métodos em uma classe só, ProductService.
Classes abstratas podem definir comportamentos, interfaces não (***).. Então em alguns casos, derivar de uma classe base pode ser melhor do que apenas implementar um contrato. *** - Nas versões mais recentes do .NET, é permitido ter implementação nas interfaces 😅 Mas eu particularmente não gosto!
já trabalhei em sistemas que o sistema "base" era inteiramente de classes abstratas e personalizávamos as funcionalidades dando overrides, criando sistemas personalizados para os clientes sob o base existente, funcionava fino esse processo. Já no sistema onde trabalho atualmente acho BASTANTE difícil ir lendo o que o sistema tá fazendo ou p onde a função tá indo quando se está lendo um código de uma classe abstrata com mais de 10 overrides, que chama outra com mais 60 overrides e por ai vai... Na arquitetura onde trabalho atualmente prefiro utilizar Interfacezinhas, que facilitam a navegabilidade.
BLACK FRIDAY 2024 ⚡ Está chegando a maior e melhor da nossa história! Não perca.
INSCREVA-SE NA LISTA DE ESPERA: go.balta.io/black-friday?TH-cam&
Parabéns Balta por essa série sobre SOLID! Excelente conteúdo!
Muito obrigado 😁
Excelente Conteúdo!
🚀
Conhecimento em SOLID deveria ser mais aprofundado nas faculdades, porém o que temos hoje é coisas rasas sobre POO e acabamos tendo que aprender por fora ou na pratica ao ingressar no mercado de trabalho. Obrigado por mais esse compartilhamento conosco mestre Balta, curto bastante seus videos
Muito obrigado!!!
Em toda entrevista de emprego que participo/participei pedem isso pesadamente, de entrevistas p pleno até a entrevista para tech lead. Mas raras empresas que trabalhei utilizam de maneira contundente. Os conceitos do solid vão se perdendo ou sendo desvirtuados fortemente com o tempo de existência de um sistema com seu crescimento e manutenção.
Uma das primeiras vezes que vejo o OCP ser apresentado na prática. Parabéns pelo excelente conteúdo Balta!
Muito obrigado🚀🚀🚀
estudando OCP e ficou tão claro como depois desse video. obrigado pelo conteudo estou aguardando a blackfriday.
Sucesso!
Sempre tive duvida no OCP na prática, muito obrigado balta
Espero ter ajudado
Excelente conteúdo. Valeu.
🚀
No caso de uso do Discout discount2, já é usado o "L" do SOLID, o principio da substituição de Liscow(não sei se é assim que se escreve Liscow), correto?
Sim, falei isso no vídeo de LSP!
Balta, o uso de Interfaces seria mais uma opção para aplicar o OCP?
Não por que não estamos falando de contratos e sim de estender funcionalidades de uma classe... como uma interfaces não tem comportamento (Até tem mais é papo longo) ele não se aplica.
Temos um vídeo aqui falando sobre classes abstratas vs interfaces!
@@baltaio beleza. Obrigado
Uma dúvida, na plataforma do Balta, onde tem essa questão das arquiteturas?
E é utilizado o .net 8 nelas?
Estou querendo assinar.
Estou atrás de algo novo e avançado.
Temos uma carreira só sobre arquitetura, este novo curso vai entrar lá!
Vídeo incrível mestre.
Mas tenho uma duvida, o principio OCP se aplica a classes de serviço?
Ex: uma classe ProductService que faz um CRUD basico de produtos. Quero adicionar a funcionalidade para retornar todos os produtos com algum critério (produtos por pedido, produtos por categorias, produtos que estão em falta…).
Nesse caso podemos apenas criar novos metodos dentro da classe de serviço ou é melhor estender de alguma forma? Se fosse necessário estender, eu fico meio confuso em como isso seria feito.
O SOLID no geral não está relacionado a "onde"... não está limitado a entidades ou mesmo a camada de domínio... podem ser aplicados até no Front!
Você pode criar um ProductServiceCustom que herda de ProductService e adicionar seu método.
Outra alternativa mais invasiva: Você pode alterar seu ProductService pra Partial e criar um segundo arquivo para a classe partial ProductService e adicionar seu método. Ao compilar, o C# "junta os métodos em uma classe só, ProductService.
Pergunta, mestre: porque usar classes abstratas e não interfaces?
Valeu, Balta!
Classes abstratas podem definir comportamentos, interfaces não (***).. Então em alguns casos, derivar de uma classe base pode ser melhor do que apenas implementar um contrato.
*** - Nas versões mais recentes do .NET, é permitido ter implementação nas interfaces 😅
Mas eu particularmente não gosto!
@baltaio muito obrigado, Professor!
já trabalhei em sistemas que o sistema "base" era inteiramente de classes abstratas e personalizávamos as funcionalidades dando overrides, criando sistemas personalizados para os clientes sob o base existente, funcionava fino esse processo. Já no sistema onde trabalho atualmente acho BASTANTE difícil ir lendo o que o sistema tá fazendo ou p onde a função tá indo quando se está lendo um código de uma classe abstrata com mais de 10 overrides, que chama outra com mais 60 overrides e por ai vai... Na arquitetura onde trabalho atualmente prefiro utilizar Interfacezinhas, que facilitam a navegabilidade.