O que são e como utilizar Value Objects?

  Рет қаралды 27,356

Rodrigo Branas

Rodrigo Branas

Күн бұрын

Os Value Objects são fundamentais para a construção de um Domain Model consistente em um design orientado a objetos
Inscrições abertas para o curso de Clean Code e Clean Architecture, saiba mais em branas.io

Пікірлер: 38
@diegocosta3750
@diegocosta3750 9 ай бұрын
Pra ficar melhor, só se tivesse uma dessas por dia!! Parabéns Branas, suas lives são sempre enriquecedoras.
@gabrielreis8422
@gabrielreis8422 9 ай бұрын
Que aula boa do caralho véi !!!! Porra, um conteúdo desse de graça é ouro demais! Admito que quando ele começou a trocar o DAO por Repository comecei a coringar e ainda vou ter q rever essa live umas 3x pra entender tudo kkkkkkk contador: 4x
@LucianoLuciano-j2t
@LucianoLuciano-j2t Жыл бұрын
Branas, que aula mano... vc é muito generoso, você realmente muda nossas vida. Abração.
@RodrigoBranas
@RodrigoBranas Жыл бұрын
Obrigado meu amigo!
@PHP4FUN
@PHP4FUN Жыл бұрын
Impossível não aprender Clean Arch e Clean Code com suas aulas e o seu curso. Obrigado Branas por todas as suas ajudas!!!
@RodrigoBranas
@RodrigoBranas Жыл бұрын
Valeu meu amigo!
@kauanmocelin
@kauanmocelin Жыл бұрын
Assistir qualquer conteúdo técnico/prático teu é muito prazeroso, parabéns Branas!
@migueldaipre10
@migueldaipre10 Жыл бұрын
QUE AULA 😮🎉 voce é fera, obrigado por tanto conteudo bom.
@RodrigoBranas
@RodrigoBranas Жыл бұрын
Obrigado! Grande Abraço!
@mthsena
@mthsena Жыл бұрын
fera demais, mais um aulão top pra refrescar os conceitos
@RodrigoBranas
@RodrigoBranas Жыл бұрын
Obrigado!!
@ohervis
@ohervis Жыл бұрын
Que aula fera demais!!!!
@RodrigoBranas
@RodrigoBranas Жыл бұрын
Valeu Hervis!
@danilodcn
@danilodcn Жыл бұрын
Live muito boa! Parabéns
@gaiveknopf
@gaiveknopf Жыл бұрын
Branas, que aula meu amigo, planejo refazer o clean code para reforçar. Obrigado pelo excelente conteúdo sempre.
@RodrigoBranas
@RodrigoBranas Жыл бұрын
Obrigado!!! Tamo junto!
@aoli_lab
@aoli_lab 6 ай бұрын
Muito obrigado!
@iuribrindeiro5009
@iuribrindeiro5009 Жыл бұрын
Muito legal essa aula! Outro assunto muito bacana que não vejo com muita frequencia, principalemente na comunidade BR, é "Making impossible states impossible" Ta bem relacionado a ValueObjects mas ficaria mais ligado com o estado de um aggregate, em vez de o que compoe aquele aggregate. Ótima live! 👏
@RodrigoBranas
@RodrigoBranas Жыл бұрын
Obrigado!!
@iuribrindeiro5009
@iuribrindeiro5009 Жыл бұрын
Outro ponto: Vi uns exemplos muito bacanas de como usar um ValueObject de maneira mais global ainda no blog do fsharpforfunandprofit, onde ele mostra um ValueObject de por exemplo: "NonEmptyStr" ou "ReqStrMaxLen2000". Estou utilizando nos meus projetos e curti demais os resultados. Quando vejo aquele tipo posso ter a certeza (e paz de espirito) de que aquele tipo vai ter um valor valido.
@micaelcosta1549
@micaelcosta1549 Жыл бұрын
Branas, mais uma aula fantástica. Gostaria de propor um assunto que pode ser do interesse de muita gente e que poderia ser uma boa live. Como validar objetos de dominio (Entidades, value objects) utilizando uma biblioteca externa. Por exemplo, tendo um value object email (sei que existem regex simples para validar), faz sentido criar uma dependencia direta de uma biblioteca de terceiros para validar se o valor do email é válido ou existe alguma forma de criar um email como por exemplo um factiory method ou mesmo um builder que criaria um email válido mas estaria numa camada mais externa? Bom fim de semana e obrigado pelo excelente conteúdo ;)
@RodrigoBranas
@RodrigoBranas Жыл бұрын
você pode utilizar a biblioteca externa dentro do VO, sem problemas, assim como você utilizaria a API da linguagem com Data ou Math. Se você utilizar um Domain Model, esses conceitos ficam na camada de domínio, eu não pulverizaria fora dela... eventualmente no frontend por questões de usabilidade, mas nesse caso existe uma visão de domain em ambos os sistemas (frontend e backend), não com o mesmo nível de detalhes. Obrigado! Grande Abraço!
@micaelcosta1549
@micaelcosta1549 Жыл бұрын
@@RodrigoBranas estive posteriormente a fazer este comentário a ver possibilidades de como abstrair a validação do value object e ficaria algo tão complexo ou na realidade chato de se fazer que realmente torna-se mais prático depender de uma biblioteca exteran e fazer testes que passem pela biblioteca ou então utilizar funções do jest para crias mocks da biblioteca. Também andei a tentar no react fazer o mesmo que mostrou no VUE, mas o react trabalha com o conceito de imutabilidade de estado o que torna dificil de usar um objeto de dominio com as suas funções. Muito obrigado pela sua resposta e por esta magnifica partilha de conhecimento. Continuação de excelentes videos ;)
@wevertontsousa
@wevertontsousa Жыл бұрын
Aulas incríveis! Branas, eu tenho uma dúvida quanto a Construtores em geral. Com a sua experiência (no dia a dia), você passa os valores diretamente no construtor, ou deixa o construtor vazio e define os atributos através dos "Setters", ou mesmo que possa passar os valores pelo construtor, o construtor chama o setter de cada atributo? No cenário real eu queria entender se a lógica de validação diretamente no construtor é válida, sendo que as vezes cada atributo vai ter uma regra diferente e assim o construtor poderia ter uma lógica enorme. Essa minha dúvida é muito por conta que já ouvi em vários lugares que classes e/ou funções não devem ter muitos parâmetros, e não vejo como isso seja possível na realidade haha...
@RodrigoBranas
@RodrigoBranas Жыл бұрын
O construtor tem o papel de ser um ponto central de construção do objeto, ajudando a preservar a invariância. Não vejo muito sentido em usar "Setters" porque eventualmente seria a combinação de propriedades que faria com que o objeto estivesse em estado válido. Dessa forma, eu acho interessante ter o construtor, métodos fábrica ou builders e modificar o estado por meio de diferentes comportamentos.
@michelljose6426
@michelljose6426 Жыл бұрын
Ótimo conteúdo!!! Uma dúvida, tem algum problema colocar customização no get,set de um DTO???
@RodrigoBranas
@RodrigoBranas Жыл бұрын
Não vejo problemas, mas o papel do DTO é só de transferir informações de uma camada pra outra mesmo, não tem papel no domínio
@arozendojr
@arozendojr Жыл бұрын
57:00 Bem legal a definição VO
@RodrigoBranas
@RodrigoBranas Жыл бұрын
Valeu!
@lucasarieiv
@lucasarieiv Жыл бұрын
Conteúdo muito bomm. Outro nível! Consegue disponibilizar o Github?
@artu_almeida
@artu_almeida Жыл бұрын
uns meses atras comecei a atuar em um novo projeto e percebi que as classes de contrato das apis estavam com "VO" no final: AccountVO, PaymentVO etc... eu achei estranho, estavam utilizando Value Objects de forma errada, quando eu tive a oportunidade perguntei para o Tech Lead se podíamos trocar o pattern para Dto, pois Value Objects não são utilizados nesse contexto, são objetos de domínio, para contratos o correto é utilizar Data Transfer Object, ele concordou na hora
@RodrigoBranas
@RodrigoBranas Жыл бұрын
Perfeito! Isso mesmo, nesse caso é um DTO, não é um objeto de domínio e por isso não tem uma participação em Aggregates. O DTO é apenas um transportador de dados de entrada e saída. Grande Abraço!
@vicentino09
@vicentino09 Жыл бұрын
👏👏👏
@xsamuelx3603
@xsamuelx3603 Жыл бұрын
:)
@principe.borodin
@principe.borodin Жыл бұрын
o repositorio nao subiu....
@marcosmacielgodinho9776
@marcosmacielgodinho9776 11 ай бұрын
No caso está variante o compilador não aceita em linguage c flot .
@felipeklafke
@felipeklafke Жыл бұрын
sou absolutamente tarado por objetos de valor. eles sao os primitivos do negócio e da solucao. vale pra todos contextos e tamanhos de solução pq eles forçam voce a entender a linguagem ubiqua e contextualmente na aplicacao da solucao do problemas. fora que ele vale tanto p oo quanto pra qualquer outro paradigma
@mariapimentel3099
@mariapimentel3099 11 ай бұрын
Maria❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤fkl❤❤❤pl❤❤❤❤❤❤❤❤❤❤❤😂
Um use case pode chamar o outro?
1:45:19
Rodrigo Branas
Рет қаралды 33 М.
10 perguntas sobre Domain-Driven Design
1:14:55
Rodrigo Branas
Рет қаралды 8 М.
😜 #aminkavitaminka #aminokka #аминкавитаминка
00:14
Аминка Витаминка
Рет қаралды 223 М.
Зу-зу Күлпаш 2. Бригадир.
43:03
ASTANATV Movie
Рет қаралды 684 М.
Epic Reflex Game vs MrBeast Crew 🙈😱
00:32
Celine Dept
Рет қаралды 39 МЛН
РОДИТЕЛИ НА ШКОЛЬНОМ ПРАЗДНИКЕ
01:00
SIDELNIKOVVV
Рет қаралды 3,7 МЛН
Descomplicando Clean Architecture - O que é a Arquitetura Limpa?
1:23:10
Fernanda Kipper | Dev
Рет қаралды 37 М.
Entendendo Event-driven Architecture - Rodrigo Branas
2:20:52
Full Cycle
Рет қаралды 18 М.
Domain Driven Design: Agregados, Entidades e Value Objects
27:52
ENTENDENDO ARQUITETURA LIMPA com JAVA
1:58:25
Fernanda Kipper | Dev
Рет қаралды 31 М.
Kubernetes para Devs com Fabricio Veronez
2:10:24
Rodrigo Branas
Рет қаралды 2 М.
Clean Code com Rodrigo Branas
1:43:06
Full Cycle
Рет қаралды 22 М.
😜 #aminkavitaminka #aminokka #аминкавитаминка
00:14
Аминка Витаминка
Рет қаралды 223 М.