295 - LOCK otimista no CASO DE USO | theWiseDev CleanArch

  Рет қаралды 1,808

Otavio Lemos

Otavio Lemos

Күн бұрын

Nesse vídeo eu te mostro uma implementação de lock otimista no caso de uso de uma aplicação de aluguel de bikes com Arquitetura Limpa.
E o mais legal: escrevi um teste que simula o problema de concorrência!
Chega mais para ver que massa...

Пікірлер: 11
@geisonflores
@geisonflores Жыл бұрын
Agora sim ficou massa, cada responsabilidade no seu devido lugar. Valeu pela referencia @otaviolemos!
@lucasfrancaid
@lucasfrancaid Жыл бұрын
Bacana, usamos uma abordagem parecida onde trabalho. Quando tivemos de lidar com erros passamos a criar generic exceptions por RepositoryInterfaces que são utilizadas pelos Adapters e assistidas pelos UseCase, assim conseguimos isolar o Use Case a casos sensíveis de Adapters. Muito bom.
@rc_campos
@rc_campos Жыл бұрын
Caramba, que video sensacional. Ainda não tenho esse problema aqui, mas é bom aprender.
@mauricioaniche
@mauricioaniche Жыл бұрын
Vídeo bem legal! Nesse tipo de problema, uma outra maneira de resolver é implementando um processo parecido com o de reconciliação. Vc basicamente procura por inconsistências de tempos em tempos, e quando achar, resolve ela. Por exemplo, cancelando a reserva, e mandando um e-mail de desculpas pro usuário hahaha
@otaviolemos
@otaviolemos Жыл бұрын
Boa, Aniche, essa eu não conhecia! Para um ambiente em que isso acontece raramente, pode funcionar mesmo. 😄
@pauloafpjunior
@pauloafpjunior Жыл бұрын
Otávio, parabéns pelo vídeo. Sei que estou fugindo um pouco do assunto, mas eu queria saber como você lida com projeções e views do banco de dados usando arquitetura limpa? Os repositórios vão devolver DTOs ao invés de entidades? Obrigado
@josebraz5856
@josebraz5856 Жыл бұрын
O que eu gosto de fazer separar as fontes de dados e injetar isso no repositório. Você teria um datasource específico para o banco prisma, com essa lógica do código de erro que ele emite quando da concorrência. Aí o repository não depende em nada da tecnologia de banco usada
@otaviolemos
@otaviolemos Жыл бұрын
O meu repository é só uma interface, não depende da tecnologia de banco. A implementação do adapter do Prisma depende do Prisma; logicamente.
@otaviolemos
@otaviolemos Жыл бұрын
Acho que entendi: você tem um repositório mais genérico com o código que serve para qualquer adapter e os adapters em si, é isso? Entendo mas acho que fica muita indireção no código. No meu caso não há quase nada que serviria tanto para um adapter quanto para outro.
@lucasmedeiros391
@lucasmedeiros391 Жыл бұрын
Seria possivel disponibilizar este codigo de forma publica no github?
@otaviolemos
@otaviolemos Жыл бұрын
Lucas, ñ posso porque a aplicação é utilizada no processo seletivo da Trio... :)
Как мы играем в игры 😂
00:20
МЯТНАЯ ФАНТА
Рет қаралды 1,4 МЛН
POV: Your kids ask to play the claw machine
00:20
Hungry FAM
Рет қаралды 16 МЛН
Остановили аттракцион из-за дочки!
00:42
Victoria Portfolio
Рет қаралды 3,2 МЛН
Пришёл к другу на ночёвку 😂
01:00
Cadrol&Fatich
Рет қаралды 10 МЛН
290 - SQL ou NoSQL: EIS A QUESTÃO! 🤔 | theWiseDev SQL
25:30
Otavio Lemos
Рет қаралды 2,9 М.
JavaScript Visualized - Event Loop, Web APIs, (Micro)task Queue
12:35
Dominando os Princípios SOLID: Exemplos práticos com Java
18:51
O que é Lock otimista e como evitar problemas de concorrência
19:24
Don't Use Websockets (Until You Try This…)
6:46
Code With Ryan
Рет қаралды 302 М.
285 - CUIDADO com o OVERENGINEERING! | theWiseDev Engineering
13:09
Otavio Lemos
Рет қаралды 1,4 М.
Turns out REST APIs weren't the answer (and that's OK!)
10:38
Dylan Beattie
Рет қаралды 158 М.
Как мы играем в игры 😂
00:20
МЯТНАЯ ФАНТА
Рет қаралды 1,4 МЛН