Resumo
Continuidade no desenvolvimento do Morpho Board
Esta aula faz parte da série Vibe Coding, um projeto contínuo de desenvolvimento de um sistema de gestão de tickets usando tecnologias modernas de frontend e backend. O foco desta live é implementar uma funcionalidade essencial em qualquer sistema colaborativo: a capacidade de usuários se inscreverem em tickets específicos para receber notificações sobre atualizações. Esta abordagem prática permite aos desenvolvedores acompanhar o processo completo de evolução de uma aplicação real, desde o design inicial até ajustes de produção.
Modelagem de dados com Hibernate
O coração técnico da aula concentra-se na criação de uma relação Many-to-Many entre a entidade Ticket e a entidade User. Essa modelagem permite que múltiplos usuários se inscrevam em um mesmo ticket e que um usuário acompanhe vários tickets simultaneamente. A implementação usa Hibernate como ORM, facilitando o mapeamento das tabelas relacionais e gerenciamento automático das associações. A definição correta dessa relação é fundamental para evitar problemas de integridade de dados e para garantir performance adequada em cenários com alto volume de subscrições.
Endpoints REST para gerenciamento de subscrições
Após modelar os dados, o desenvolvimento implementa endpoints REST específicos para adicionar e remover subscrições. Esses endpoints seguem princípios de design REO moderno, garantindo que as operações sejam idempotentes sempre que possível. A idempotência é crucial em APIs públicas, pois permite que clientes repitam requisições sem efeitos colaterais indesejados, aumentando a confiabilidade do sistema em ambientes de rede instável. Os endpoints retornam códigos HTTP apropriados e tratam casos de erro com mensagens descritivas, prática essencial para sistemas em produção.
Migração de banco de dados com Flyway
Para manter a evolução do schema do banco de dados sincronizada com o código da aplicação, utiliza-se Flyway como ferramenta de versionamento e migração. Flyway permite rastrear todas as alterações estruturais do banco de forma controlada e reproduzível, facilitando deploys em múltiplos ambientes. A aula discute como estruturar corretamente os arquivos de migração, nomeação de versões e as boas práticas para evitar conflitos e rollbacks problemáticos. O versionamento semântico também é mencionado como estratégia complementar para manter clareza sobre mudanças na API.
Integração no frontend com Angular
No lado do cliente, o Angular é ajustado para permitir que usuários interajam com a nova funcionalidade através de um botão de observar ou ignorar tickets. A integração envolve chamadas HTTP aos endpoints recém-criados, tratamento de estados de carregamento e feedback visual adequado ao usuário. O TypeScript garante tipagem segura das requisições e respostas, reduzindo bugs em tempo de execução. A aula demonstra como conectar camadas de serviço Angular com a API backend de forma limpa e mantível.
Reflexão sobre LLMs e geração de código
Um aspecto interessante da live é a discussão crítica sobre o uso de assistentes de inteligência artificial, como Cursor, na geração de código. O instrutor reflete sobre as limitações dessas ferramentas, destacando que embora sejam úteis para acelerar tarefas repetitivas, não substituem o entendimento profundo da arquitetura e das boas práticas. Essa reflexão é valiosa para desenvolvedores que buscam equilibrar produtividade com qualidade e aprendizado genuíno.
Design de APIs e tratamento de erros
A live aborda princípios fundamentais de design de APIs REST, incluindo versionamento, status codes apropriados e estratégias de tratamento de erros. Em ambientes de produção, essas práticas garantem que a API seja intuitiva para clientes, resiliente a mudanças futuras e capaz de fornecer diagnósticos claros quando algo falha. O stack utilizado (Quarkus, PostgreSQL, Hibernate) oferece mecanismos robustos para implementar essas práticas de forma eficiente.
Contexto da série Vibe Coding
Esta aula é parte de uma série extensa que documenta a evolução iterativa de um sistema real de gestão de tickets. Assistir às aulas anteriores oferece contexto maior sobre decisões arquiteturais e evolução das funcionalidades. O repositório Git do projeto está disponível para consulta, permitindo que interessados clonem o código, executem localmente e acompanhem commits que correspondem aos pontos cobertos na live. Essa abordagem educacional conecta teoria com prática de forma imersiva.
O que você vai aprender
- Implementar relações Many-to-Many com Hibernate em Java
- Criar endpoints REST idempotentes para subscrições
- Versionar e executar migrações de banco de dados com Flyway
- Integrar funcionalidades de notificação em Angular
- Aplicar boas práticas de design de APIs REST e tratamento de erros
- Avaliar criticamente o uso de LLMs no desenvolvimento de software
Conceitos abordados
Tecnologias utilizadas
Capítulos 8 marcações
Próximo vídeo sugerido
Avaliações
Ainda não há avaliações. Seja o primeiro a avaliar esta aula.