Excelente vídeo! Apenas para acrescentar, é uma boa prática utilizar substantivos no plural quando criamos recursos da API. Ex: /api/categories ... /api/products Enfim, apenas um adendo. No mais, parabéns pelo canal!!!!!
Ai Fernanda que bom que você falou essa dica aí no final de caso não dê certo pode ser por conta que não foi as permissões, aí eu me reencrevi no tópico e deu certo, eu com certeza não ia conseguir descobrir isso, diva
Mandou demais nesse vídeo Fe, estou cursando Eng Software e trabalho como Estagiário de BackEnd, estou usando seus vídeos pra não só reforçar alguns pontos, como para me preparar para novas vagas. Sua didática e muito boa e esses desafios técnicos são uma puta mão na roda, traga mais sempre que possível. Parabéns
de longe, um dos melhores canais que pude conhecer de conteúdos sobre dev na prática e sobre carreira. Fê teu canal é essencial!! parabéns pelo empenho e pelo conteúdo excepcional que nos traz aqui.
Que aula incrível!! Como Backend Pleno estou fascinado com a facilidade para você transmitir o assunto, tirou muitas duvidas minhas e me ajudou muito com o Cloud. Muitíssimo obrigado!!
tenho muita vontade de mexer com java, especialmente spring boot. legal q vc fez com java por justamente ter pouco conteudo em portugues... infelizmente minha situacao atual nao me permite ficar pulando de linguagem, mas algum dia quero brincar com isso sim.
Parabéns pelo video, Fernanda! Aprendi bastante coisas do mundo do Java com esse video (eu sou do mundo do Python e Go). Uma coisa, porém, que eu acrescentaria é o retorno das requests de update e delete de ambos objetos para que o retorno seja identificado com o http code 404 (Not found) quando o ID não existe, ao invés de uma exception genérica, pois isso está gerando um 500 (Internal Server Error), o que não deixa claro ao client o que está acontecendo de fato.
Estava dando uma procurada e parece que há uma annotation (@ResponseStatus) que pode ser posta em ambas exceptions (ProductNotFoundException e CategoryNotFoundException).
Eu estou como backend pleno onde eu trabalho e estou fazendo um curso para aumentar meus conhecimentos de cloud, assim que terminar o curso vou pegar esse desagio e implementar, muito obrigado, ótimo conteúdo.
Muito bom, consegui realizar todas as etapas, o final também me ajudou pois havia tido problemas com o SNS e a dica de conferir as permissões foi essencial!
Ola, tudo bem? Enquanto a Fe nao faz um desafio desse ... existe um canal que eu gosto muito tambem chamado @amigoscode, e la tem algumas APIs utilizando Spring Security, inclusive tokenizacao com jwt... da uma olhada.
Oii Lari, posso trazer sim. Mas enquanto não trago, dá pra você dar uma olhada no vídeo que tem sobre Spring Security aqui no canal, espero que te ajude 💜 ruclips.net/video/5w-YCcOjPD0/видео.html
Olá pessoal tudo bem? Parabéns Fernanda pelos seus conteúdos, têm sido bastantes úteis para nós que somos desenvolvedores(engenheiros de software). Gostaria de saber quais sites encontro esses desafios para eu poder fazê-los e praticar também. Um abraço!!
Que conteúdo top. Continua trazendo pra gente por favor (ainda mais em Java kk) que as lógicas de negócio ajudam bastante a gente criar/reestruturar as nossas APIs, abraço Fer!
Top conteúdo ! Uma dica na criação dos construtores dentro do intelliJ é usar o atalho alt+insert, assim você cria os construtores (principalmente quando existem muitos atributos dentro de um objeto) de forma muito mais rápida =] Além disso, talvez fosse interessante utilizar o modificador final em cada um dos parâmetros dentro do controller como boa pratica, já que ali cada um desses parâmetros tem apenas o objetivo de passar informações recebidas para o próximo passo (nesse caso o service) e não devem ser alterados na camada de controller.
Parabéns Fé continua com o trabalho. Sou de Angola e acomopanho todos os seus videos. No ano passado entendi o básico do Java com spring em apenas uma aula sua, és muito didática.
Pra quem teve problemas com a fila não recebendo mensagem, tente assinar o tópico pelo sqs e não do sns pro sqs, quando fiz o reverso as politicas de acesso da fila não atualizaram e as mensagens não chegavam mesmo tudo aparecendo certinho.
Primeiramente parabéns pelo conteúdo, isso ajuda demais quem esta iniciando e quem é véio de código, da aquela relembrada em boas praticas. Percebi que vc usa o inteliJ e o vscode na sua maquina como IDE, mas vc já experimentou usar o Neovim?
Cara, seu conteúdo é muito bom, sério mesmo. Eu tento reproduzir os desafios que você posta mas em Python usando FastAPI que é o framework que eu tenho mais familiaridade. Mas vou tentar um dia arriscar usar o Spring pra ver como que é. Sucesso!
Cai de paraquedas no seu vídeo e estou amando. É muito difícil achar esse tipo de conteúdo tão bem explicado. Ja ganhasse mais um inscrito. Aproveitando o tópico, você tem alguma dica pra quem quer começar a utilizar aws em conjunto com Java? Eu tentei começar um curso há alguns anos atrás, mas fiquei um pouco traumatizado com os valores que a aws me cobrou e agora sempre fico um pouco apreensivo quando quero aprender algo que envolva aws 😅
Fernanda (ou alguém), sabe se dá pra fazer esse projeto com IA, por exemplo jogar as necessidades do projeto e ele colocar todas as classes separadas e a gente só montar o projeto? Conhece alguma IA que leia isso ou tem que fazer meio que classe a classe mesmo e a IA só ajuda a programar junto contigo? Espero que tenha ficado bem explicado hehe, obrigado pelos vídeos, muito bom! :D
Parabéns pelo conteúdo, mandou muito nessa! Se me permite comentar, dicas para quem for fazer o teste real (valendo uma vaga mesmo hehehe) eu consideraria: - Subiria um container docker de Mongo e Container de UI - Provisionaria os recursos AWS via local stack ou com IaC (terraform ou cloudformation) - Adicionaria um lifecycle rule no bucket do s3 para economizar no custo de armamento dos arquivos antigos - criaria uma DLQ para reprocessar os itens com falha na fila do SQS - Nos responses dos recursos de criação eu retornaria 201 ao invés de 200 - Faria os unitários pra fazer uma média 😅 - e o mais importante, um readme bonitão explicando tecnicamente os principais pontos e com diagramas de fluxo
Que pena Daniel, mas não desanime! Bola pra frente, você vai conseguir! 🚀 E espero que o vídeo tenha ajudado a se preparar um pouco mais para os próximos desafios 😊
Obrigada Marcelo! Realmente, esqueci totalmente dessa possibilidade! Na parte 2 vou ajustar para evitar que a categoria dentro do produto fique desuatualizada!
24:45 não seria mais prático e seguro tratar como bigdecimal no Java e serializar como string no mongodb? Assim vc fica protegida de variações de ponto flutuante e evita operações matemáticas ao recuperar e gravar informações monetárias. Abraço.
Fiquei com uma dúvida pq não trabalhar com numeros com ponto flutuante, já vi essa abordagem em outras aplicações Java, existe algum motivo específico, trabalho com C# só uma dúvida mesmo 😅
Eu sei que vai depender do o que você está fazendo, se for um sistema que precisa de uma certa precisão, se usar tipo inteiro vai ter perda de dados, agora se utilizar números com ponto flutuante não.
essa prática visa garantir uma representação mais precisa e consistente de valores monetários, reduzindo as chances de imprecisões numéricas ao trabalhar com cálculos financeiros em uma aplicação Java Spring com MongoDB.
Quando se usa inteiro é pra armazenar valor monetário em moedas. Isso vem do passado onde aplicações financeiras tinham requisitos restritos sobre cálculos e precisão. Calcular valor monetário em moedas remove o erro de ponto flutuante. O arredondamento pode causar perdas consideráveis em alguns casos.
Uma dúvida. Estou iniciando tecnólogo em análise de sistemas. Estou estudando Python assim como você fez no seu início. Porém você foi pra JS. A dúvida é. Porque migrou do Python para js e quais as diferenças de mercado de trabalho entre Python e js ( salário wise) . Grande abraço.
Oie Fer :). Uma dúvida. Pq não enviar o evento diretamente para o SQS, em vez de enviar para o SNS e depois para o SQS? Aqui onde trabalho enviamos diretamente para o SQS
acredito que foi para deixar mais genérico, estando num tópico SNS isso permite que a mensagem seja distribuída para outros lugares além da fila criada no SQS
Oii Regis O principal motivo de usarmos o SNS, é para dar mais flexibilidade para a nossa arquitetura. Quando enviamos diretamente para o SQS acabamos acoplando as duas estruturas, mesmo que elas fiquem async. E se a gente quiser que, a partir de agora, a nossa aplicação avise não só esse serviço, mas outros 5 também? Ou quem sabe outros 15? Tendo o SNS configurado, nada muda, apenas cadastramos os nossos novos SQS's no nosso SNS e pronto. Se não tivermos ele configurado, teríamos que enviar 5 requisições para 5 SQS's diferentes. Além disso, o SNS nos permite não só fazer envios ao SQS, mas também fazer envios de emails, mensagens de telefone, entre várias outras coisas. Caso isso virasse um requisito na aplicação, poderíamos facilmente aplicá-lo!
Dica: quando estiver criando algum component, controller ou service e com dependencias e estiver usando lombok, vc pode colocar essas dependências como final e usar a anotação @RequiredArgsConstructor. Assim ele vai gerar o construtor exato q vc precisa e vc n vai precisar ficar editando o construtor manualmente toda vez a adiciona uma nova dependência
Obrigada pela dicaa! Mas nesse caso eu não usei por que eu preciso de um construtor vazio, por isso o NoArgsConstructor, e precisava de um construtor que aceitasse um objeto do tipo CategoryDTO e não todos os parâmetros um a um, desestruturando o objeto DTO e salvando nas propriedades correta da entidade! Mas costumo usar bastante o RequiredArgsConstructor em outros casoss 😊
@@kipperdev Oi, acho q o youtube deletou meu comentario anterior por que tinha o link da PR :( Mas só pra deixar o registro, acho q não consegui me explicar bem no comentario anterior então decidi abrir a Pull Request para o seu repo. Desculpe a demora para responder, o RUclips nunca me notifica de respostas aos meus comentarios. Parabéns pelo video!
Otimo conteudo como sempre. Uma duvida, nao seria melhor instanciar o CategoryService inves do CatergoryRepository dentro do ProductService? Edit: Ela corrigiu kkkkk 👏
Foram necessário 15 dias pra fechar a playList. Entre ver e rever foi mais que necessario para agregar conhecimento e praticar o conteudo; se tive erro sim com certeza, mais são eles que vão lapitando os conhecimentos adquiridos.... todoConteudo() -> valeMuitoAPena(obrigado); ...Tem mais😃😃😃
Muito bom o conteúdo Fernanda, me surgiu uma duvida, como seria a questão de segurança nas keys da aws caso a gnt queira colocar um projeto assim no nosso git?
Obrigadaa! Como o @ilikecats5396 falou, ai é legal a gente usar variaveis de ambiente. E ai a gente carrega essas vars de ambiente no nosso application.properties. Algo tipo isso: aws.secretKey=${AWS_SECRETET_KEY}
Legal. Mas o principal fator do desafio que eu julgo é: "Keep in mind that this is an online product catalog, which means there will be multiple requests for editing items/categories per second, as well as accessing the catalog search endpoint.". Geralmente isso passa batido pela maioria das pessoas. Espero que no próximo vídeo você mostre como lidar com concorrência.
@@matheusrmartinezexato. Como o exercicío é simples e não envolve transações complexas e que poderiam ter chance de falha alta, Optimistic seria sensacional. Acredito que hoje o que mais faz ter gente reprovada nas entrevistas na empresa que trabalho é um conhecimento extremamente baixo em concorrência. Todo pleno já deveria saber pelo menos o básico.
Excelente vídeo!
Apenas para acrescentar, é uma boa prática utilizar substantivos no plural quando criamos recursos da API. Ex: /api/categories ... /api/products
Enfim, apenas um adendo. No mais, parabéns pelo canal!!!!!
Ai Fernanda que bom que você falou essa dica aí no final de caso não dê certo pode ser por conta que não foi as permissões, aí eu me reencrevi no tópico e deu certo, eu com certeza não ia conseguir descobrir isso, diva
Mandou demais nesse vídeo Fe, estou cursando Eng Software e trabalho como Estagiário de BackEnd, estou usando seus vídeos pra não só reforçar alguns pontos, como para me preparar para novas vagas. Sua didática e muito boa e esses desafios técnicos são uma puta mão na roda, traga mais sempre que possível.
Parabéns
Obrigada Marcos!! Fico feliz que gosta desse tipo de vídeo, pode deixar que vou trazer mais sim!
E boa sorte na facul e estágio! 💜
de longe, um dos melhores canais que pude conhecer de conteúdos sobre dev na prática e sobre carreira. Fê teu canal é essencial!! parabéns pelo empenho e pelo conteúdo excepcional que nos traz aqui.
Como sempre entregando conteúdos de altíssima qualidade. Já dei o meu like!
Obrigadaa Renan! 💜💜
Que aula incrível!! Como Backend Pleno estou fascinado com a facilidade para você transmitir o assunto, tirou muitas duvidas minhas e me ajudou muito com o Cloud. Muitíssimo obrigado!!
Estou replicando em NodeJs com Nest. Conteúdo muito bom, parabéns! Fiquei até mais motivado a estudar mais com seus vídeos!
tem repo? to pensando em fazer isso pra praticar
tenho muita vontade de mexer com java, especialmente spring boot. legal q vc fez com java por justamente ter pouco conteudo em portugues... infelizmente minha situacao atual nao me permite ficar pulando de linguagem, mas algum dia quero brincar com isso sim.
06:33 cache com redis ou algo assim nao serviria tambem?
Parabéns pelo video, Fernanda! Aprendi bastante coisas do mundo do Java com esse video (eu sou do mundo do Python e Go). Uma coisa, porém, que eu acrescentaria é o retorno das requests de update e delete de ambos objetos para que o retorno seja identificado com o http code 404 (Not found) quando o ID não existe, ao invés de uma exception genérica, pois isso está gerando um 500 (Internal Server Error), o que não deixa claro ao client o que está acontecendo de fato.
Estava dando uma procurada e parece que há uma annotation (@ResponseStatus) que pode ser posta em ambas exceptions (ProductNotFoundException e CategoryNotFoundException).
Eu estou como backend pleno onde eu trabalho e estou fazendo um curso para aumentar meus conhecimentos de cloud, assim que terminar o curso vou pegar esse desagio e implementar, muito obrigado, ótimo conteúdo.
Poderia me informar qual o curso você está fazendo sobre cloud?
@@ruhtra6865 Eu comprei um curso na udemy mesmo, para ter uma introdução mais teorica
@@ruhtra6865 o curso se chama certificação Amazon AWS Cloud Practitioner CLF - C02(2024)
Conteúdo de qualidade e de graça, muito bom.
Que vídeo maravilhoso!! Obrigada por compartilhar conteúidos tão bons gratuitamente! Sou muito fã sua!
Muito bom, consegui realizar todas as etapas, o final também me ajudou pois havia tido problemas com o SNS e a dica de conferir as permissões foi essencial!
Boa noite, muito obrigado pelo material. 👏👏
Oii Fê, você poderia fazer um vídeo resolvendo um desafio em Java Spring utilizando Spring Security? Vai me ajudar bastante no meu TCC! 💖
Ola, tudo bem? Enquanto a Fe nao faz um desafio desse ... existe um canal que eu gosto muito tambem chamado @amigoscode, e la tem algumas APIs utilizando Spring Security, inclusive tokenizacao com jwt... da uma olhada.
Oie @larissanunes 2838, veja na playlist.
ela ja fez, da uma olhada no canal
Oii Lari, posso trazer sim. Mas enquanto não trago, dá pra você dar uma olhada no vídeo que tem sobre Spring Security aqui no canal, espero que te ajude 💜
ruclips.net/video/5w-YCcOjPD0/видео.html
Oi , poderia lista os cursos de java q vc ja fez/faz? Obg
up
Eu recomendo um aqui do RUclips da Devdojo - ruclips.net/p/PL62G310vn6nFIsOCC0H-C2infYgwm8SWW
Queria saber tbm
@@franciscoalexandrepaixaodo7929perguntaram pra Fernanda e não pra esse aí!
Da uma procurada nos cursos da Loiane Groner tbm. Tem aulas no youtube, livros tbm.
Olá pessoal tudo bem? Parabéns Fernanda pelos seus conteúdos, têm sido bastantes úteis para nós que somos desenvolvedores(engenheiros de software).
Gostaria de saber quais sites encontro esses desafios para eu poder fazê-los e praticar também. Um abraço!!
Que conteúdo top. Continua trazendo pra gente por favor (ainda mais em Java kk) que as lógicas de negócio ajudam bastante a gente criar/reestruturar as nossas APIs, abraço Fer!
Top conteúdo ! Uma dica na criação dos construtores dentro do intelliJ é usar o atalho alt+insert, assim você cria os construtores (principalmente quando existem muitos atributos dentro de um objeto) de forma muito mais rápida =]
Além disso, talvez fosse interessante utilizar o modificador final em cada um dos parâmetros dentro do controller como boa pratica, já que ali cada um desses parâmetros tem apenas o objetivo de passar informações recebidas para o próximo passo (nesse caso o service) e não devem ser alterados na camada de controller.
Que conteúdo incrivel Fernanda, parabéns pelo trabalho que você vem fazendo
Muito obrigada Edu!! 💜
Essa mina é braba que só. Parabéns Fernanda.
Você tem uma didática muito boa
Parabéns Fé continua com o trabalho. Sou de Angola e acomopanho todos os seus videos. No ano passado entendi o básico do Java com spring em apenas uma aula sua, és muito didática.
Hehehehe já estou ansioso pela parte 2, Fê!!!! Mandou muito bem aqui nesse tutorial, vc é talentosíssima e muito simpática!!!!
Boaaa! Hahaha já estou finalizando a parte 2, logo logo sai aqui no canal
Valeu demais 💜
Pra quem teve problemas com a fila não recebendo mensagem, tente assinar o tópico pelo sqs e não do sns pro sqs, quando fiz o reverso as politicas de acesso da fila não atualizaram e as mensagens não chegavam mesmo tudo aparecendo certinho.
Valeu! Deu certo desse jeito.
Hahah deu certo! Valeuu
conteúdo muito top oh, sou fã dessa mulher, manda muito bem !!!
Gosto bastante dessas resoluções de problemas, vou acompanhar. Parabéns! 👏🏾👏🏾🤘🏾
Representa os DEV's Java do Brasil! Parabéns.
Ahahaha obrigada demais!! 💜
Um dos melhores canais de conteudo Java, parabens!!!
Primeiramente parabéns pelo conteúdo, isso ajuda demais quem esta iniciando e quem é véio de código, da aquela relembrada em boas praticas. Percebi que vc usa o inteliJ e o vscode na sua maquina como IDE, mas vc já experimentou usar o Neovim?
Cara, seu conteúdo é muito bom, sério mesmo. Eu tento reproduzir os desafios que você posta mas em Python usando FastAPI que é o framework que eu tenho mais familiaridade. Mas vou tentar um dia arriscar usar o Spring pra ver como que é.
Sucesso!
Mais um vídeo de qualidade e mão na massa! Parabéns Fé, uma aula! Já to esperando a parte 2 pra editar! Ahahahahhaha
Ahahahaha não seria possível sem você, valeu José! 🫶🏼
Logo logo tem parte 2!
Incrível, parabéns pelo trabalho!!
Conteúdo muito raro hoje. Adorei o vídeo! Vou acompanhar para a parte 2 :))
Simplesmente perfeito! Amei esse tipo de conteúdo e aprendi demais. Muito obrigdo! Parabéns!
Muito obrigadoo, Elia 💜
Fico muito feliz em saber que você está aprendendo e gostando do conteúdo
Cai de paraquedas no seu vídeo e estou amando. É muito difícil achar esse tipo de conteúdo tão bem explicado. Ja ganhasse mais um inscrito. Aproveitando o tópico, você tem alguma dica pra quem quer começar a utilizar aws em conjunto com Java? Eu tentei começar um curso há alguns anos atrás, mas fiquei um pouco traumatizado com os valores que a aws me cobrou e agora sempre fico um pouco apreensivo quando quero aprender algo que envolva aws 😅
LocalStack
Show, excelente video!!
Valeuu, Kermes 💜
Guria!!! eu sou de Rio Grande e estou fazendo ADS e achei do nada teus videos \o/
que video
Muito bom! Conteúdo de muita qualidade, como sempre.
cai de para-quedas no canal... muito bom o conteudo...
MUITO BOM. Esperando a parte 2 haha
Muito bom, esperando a segunda parte.
Fernanda (ou alguém), sabe se dá pra fazer esse projeto com IA, por exemplo jogar as necessidades do projeto e ele colocar todas as classes separadas e a gente só montar o projeto? Conhece alguma IA que leia isso ou tem que fazer meio que classe a classe mesmo e a IA só ajuda a programar junto contigo? Espero que tenha ficado bem explicado hehe, obrigado pelos vídeos, muito bom! :D
Obrigado por sempre criar conteúdos atuais e de qualidade! Virei membro! 💜
Muito obrigada pelo apoio Leo! 💜💜
Ela faz parecer fácil, quero ser tão bom quanto você um dia Fernanda
víteo legal!
parabéns pelo trabalho!
Parabéns pelo conteúdo, mandou muito nessa! Se me permite comentar, dicas para quem for fazer o teste real (valendo uma vaga mesmo hehehe) eu consideraria:
- Subiria um container docker de Mongo e Container de UI
- Provisionaria os recursos AWS via local stack ou com IaC (terraform ou cloudformation)
- Adicionaria um lifecycle rule no bucket do s3 para economizar no custo de armamento dos arquivos antigos
- criaria uma DLQ para reprocessar os itens com falha na fila do SQS
- Nos responses dos recursos de criação eu retornaria 201 ao invés de 200
- Faria os unitários pra fazer uma média 😅
- e o mais importante, um readme bonitão explicando tecnicamente os principais pontos e com diagramas de fluxo
exato
Era o video que eu precisava assistir. Essa semana fui reprovado nessa mesma empresa por não ter experiência com AWS. :(
Que pena Daniel, mas não desanime! Bola pra frente, você vai conseguir! 🚀
E espero que o vídeo tenha ajudado a se preparar um pouco mais para os próximos desafios 😊
muito bom! obrigado pelo conteudo!! s2
parabéns pelo vídeo, só fala mais sobre o lance do price, de onde vc tirou essa estrategia de x100?
Ao invés de adicionar os repositories no construtor das classes service, não daria para usar a anotação @Autowired ?
Ótimo vídeo!
Vi que você salvou a categoria"completa" em produto. Fiquei curioso quando alterar a categoria, se irá refletir no produto.
Obrigada Marcelo!
Realmente, esqueci totalmente dessa possibilidade! Na parte 2 vou ajustar para evitar que a categoria dentro do produto fique desuatualizada!
Top demais esses conteúdos de javinha. Parabéns👏👏👏
Obrigadaa Anthony! 💜
Aula incrível, esse "Mâs"/ mas 😂😂 me quebra.
Onde eu consigo um site para pegar desafios de sql e power bi (se é que tem)?
Sensacional .. ótimo conteúdo como sempre!
Muito obrigadaa, Emerson 💜
Como encontrar os desafios? :( Quero encontrar desafios mais voltados para fintech, qual você recomenda?
Conteúdo perfeito, saindo das mesmice de crud, aguardando a parte 2
Oii Ricardo
Muito obrigadaa, fico muito feliz que goste do conteúdo
Aqui está a parte 2
ruclips.net/video/rqOi8h1GDb8/видео.htmlsi=qd35AagxYia2-UyB
Mandou bem... super clara em suas explicações.....abrç
Muito obrigada Marcos! 😊
Sem palavras. Muito obrigado pelo seu trabalho.
@Fe, tira uma duvida, utilizar o redis ao inves do s3 não ficaria melhor (Obs: sei que é o que desafio pede)
Conteúdo Top das Galaxias...
24:45 não seria mais prático e seguro tratar como bigdecimal no Java e serializar como string no mongodb? Assim vc fica protegida de variações de ponto flutuante e evita operações matemáticas ao recuperar e gravar informações monetárias. Abraço.
Ansioso pela parte 2 haha 😃
Ja saiuu hehe
ruclips.net/video/rqOi8h1GDb8/видео.html
Fiquei com uma dúvida pq não trabalhar com numeros com ponto flutuante, já vi essa abordagem em outras aplicações Java, existe algum motivo específico, trabalho com C# só uma dúvida mesmo 😅
Como assim?
Eu sei que vai depender do o que você está fazendo, se for um sistema que precisa de uma certa precisão, se usar tipo inteiro vai ter perda de dados, agora se utilizar números com ponto flutuante não.
essa prática visa garantir uma representação mais precisa e consistente de valores monetários, reduzindo as chances de imprecisões numéricas ao trabalhar com cálculos financeiros em uma aplicação Java Spring com MongoDB.
Quando se usa inteiro é pra armazenar valor monetário em moedas. Isso vem do passado onde aplicações financeiras tinham requisitos restritos sobre cálculos e precisão. Calcular valor monetário em moedas remove o erro de ponto flutuante. O arredondamento pode causar perdas consideráveis em alguns casos.
conteúdo excelente.
Boa noite!
Não manjo de Java, esses métodos da service, não seria melhor se fossem Async? Ou já é padrão no Java?
Fico imaginando se em alguns meses esses testes ainda vão existir, com a IAs dando códigos cada vez mais facilmente.
Ficou muito legal "Prima"❤
obrigadaaa Rian! 💜
Show! Obrigado.
Mais um excelente vídeo
Valeuu demais Luis! 💜💜
Uma dúvida. Estou iniciando tecnólogo em análise de sistemas. Estou estudando Python assim como você fez no seu início. Porém você foi pra JS. A dúvida é.
Porque migrou do Python para js e quais as diferenças de mercado de trabalho entre Python e js ( salário wise) .
Grande abraço.
Parabéns pelo conteúdo.
Porque enviar a msg para um SNS e não diretamente pro SQS?
up
Onde você consegue essas ideias de projeto ?
sensacional 👏
Oie Fer :). Uma dúvida. Pq não enviar o evento diretamente para o SQS, em vez de enviar para o SNS e depois para o SQS? Aqui onde trabalho enviamos diretamente para o SQS
acredito que foi para deixar mais genérico, estando num tópico SNS isso permite que a mensagem seja distribuída para outros lugares além da fila criada no SQS
Oii Regis
O principal motivo de usarmos o SNS, é para dar mais flexibilidade para a nossa arquitetura. Quando enviamos diretamente para o SQS acabamos acoplando as duas estruturas, mesmo que elas fiquem async. E se a gente quiser que, a partir de agora, a nossa aplicação avise não só esse serviço, mas outros 5 também? Ou quem sabe outros 15? Tendo o SNS configurado, nada muda, apenas cadastramos os nossos novos SQS's no nosso SNS e pronto. Se não tivermos ele configurado, teríamos que enviar 5 requisições para 5 SQS's diferentes.
Além disso, o SNS nos permite não só fazer envios ao SQS, mas também fazer envios de emails, mensagens de telefone, entre várias outras coisas. Caso isso virasse um requisito na aplicação, poderíamos facilmente aplicá-lo!
@@kipperdev a sim entendi agora. faz todo sentido :)
Kipper, onde você costuma pegar esses desafios? Queria saber para poder praticar.
claro, com a sua área/lang após o "técnico"
Muito útil, desafios da vida real, não pokedex , muito obrigado
achei muita coisa pra um dev pleno, mas tá valendo o desafio
Top!
Dica: quando estiver criando algum component, controller ou service e com dependencias e estiver usando lombok, vc pode colocar essas dependências como final e usar a anotação @RequiredArgsConstructor. Assim ele vai gerar o construtor exato q vc precisa e vc n vai precisar ficar editando o construtor manualmente toda vez a adiciona uma nova dependência
Obrigada pela dicaa!
Mas nesse caso eu não usei por que eu preciso de um construtor vazio, por isso o NoArgsConstructor, e precisava de um construtor que aceitasse um objeto do tipo CategoryDTO e não todos os parâmetros um a um, desestruturando o objeto DTO e salvando nas propriedades correta da entidade!
Mas costumo usar bastante o RequiredArgsConstructor em outros casoss 😊
@@kipperdev Oi, acho q o youtube deletou meu comentario anterior por que tinha o link da PR :(
Mas só pra deixar o registro, acho q não consegui me explicar bem no comentario anterior então decidi abrir a Pull Request para o seu repo.
Desculpe a demora para responder, o RUclips nunca me notifica de respostas aos meus comentarios.
Parabéns pelo video!
Seria perfeito se você fizesse a resolução "correta" usando nodejs, estou focado nos estudos de backend graças aos seus vídeos!
Otimo conteudo como sempre. Uma duvida, nao seria melhor instanciar o CategoryService inves do CatergoryRepository dentro do ProductService?
Edit: Ela corrigiu kkkkk 👏
só não entendi o pq de usar string no id. seria por conta do mongo?
Foram necessário 15 dias pra fechar a playList. Entre ver e rever foi mais que necessario para agregar conhecimento e praticar o conteudo; se tive erro sim com certeza, mais são eles que vão lapitando os conhecimentos adquiridos.... todoConteudo() -> valeMuitoAPena(obrigado); ...Tem mais😃😃😃
É fácil achar esses desafios de vagas no Github? Acho uma boa para treinar pra quem já está a milênios no mercado (muitas vezes em legado)
pq optou por instalar o mongo? n é mais fácil rodar no docker-compose?
não recebia a mensagem no sqs até mudar sua policy, alguém mais teve esse problema?
Excelente vídeo, Fernanda! Uma dúvida, onde você encontra esses desafios para resolver? Gostaria de resolver também kkkkkkk
Muito bom o conteúdo Fernanda, me surgiu uma duvida, como seria a questão de segurança nas keys da aws caso a gnt queira colocar um projeto assim no nosso git?
eu normalmente uso as variáveis de ambiente
Obrigadaa! Como o @ilikecats5396 falou, ai é legal a gente usar variaveis de ambiente. E ai a gente carrega essas vars de ambiente no nosso application.properties.
Algo tipo isso:
aws.secretKey=${AWS_SECRETET_KEY}
Pra esse desafio serve usar o mongoDB no docker?
Por que tu tem um DTO se Category e CategoryDTO são essencialmente iguais?
Na verdade não são, com o DTO ela fugiu de expor o ID
Maravilha
Ótimo videoooo 👏👏👏👏
Obrigadaaa John! 💜
Eu com o fone de ouvido e ela: FALA, GALERA!
Dei um pulo e falei "Eita, poha"
Porque ela nao usa o AutoWired do spring ?
Usar constructor injection é mais recomendado, inclusive por facilitar a escrita de testes unitários
Que desafio toop!
onde trabalho uso algo parecido usando serverless com node.js
Simmm, gostei muito do desafio tb! Bem parecido com cenários reais de uso
muito bom !!
Legal.
Mas o principal fator do desafio que eu julgo é: "Keep in mind that this is an online product catalog, which means there will be multiple requests for editing items/categories per second, as well as accessing the catalog search endpoint.". Geralmente isso passa batido pela maioria das pessoas. Espero que no próximo vídeo você mostre como lidar com concorrência.
Talvez utilizar um mecanismo de Optimistic Lock, podendo criar versões dos itens/categorias.
@@matheusrmartinezexato. Como o exercicío é simples e não envolve transações complexas e que poderiam ter chance de falha alta, Optimistic seria sensacional. Acredito que hoje o que mais faz ter gente reprovada nas entrevistas na empresa que trabalho é um conhecimento extremamente baixo em concorrência. Todo pleno já deveria saber pelo menos o básico.
Massa demais!
Valeuuu Thiago! 😊