Felipe Cesar
Como implementar um chat em tempo real com SSE no Next.js
Entendendo o Player Clappr
CORS Anti-Patterns e Headers de Segurança em Requisições
O que é Cross-Origin Resource Sharing (CORS)?
Como se prevenir de ataques Cross-Site Scripting (XSS)
Como proteger endpoints de API
Como implementar Logout em uma Single Page Application (SPA)
Como persistir estado com Local Storage
Como executar queries com Prisma
Introdução ao Prisma ORM
Como funcionam endpoints de login e cadastro com jwt
Boas Práticas no uso de JSON Web Tokens
Como assinar um JSON Web Token com jsonwebtoken
Entenda como funcionam JSON Web Tokens
Como nomear testes?
Como evitar re-renders desnecessários no React usando múltiplos contextos
Normalização de dados no Frontend
Como usar métricas de coverage
Por quê escrever testes automatizados é importante?
Introdução a Monorepos com Yarn Workspaces
Padrões de projeto em JavaScript: Observer
Estruturas de dados: Introdução as Listas Encadeadas
Vitest: A próxima geração dos frameworks de teste
Estilos de Testes de Unidade
Escrevendo Bons Testes com a Testing Library: Um Guia Prático
Comece do Zero: Entenda como testes funcionam com JavaScript
Chain of Responsibility
O que são Dublês de teste e como usá-los?
Como remover código duplicado nos testes?
Como usar a função describe do Jest?
Por quê um Singleton pode complicar os testes?
MVC Pattern
Como configurar o Prettier e ESLint em projetos React
Como criar testes de integração em aplicações React
Como criar funções puras com TDD
Como desenvolver um formulário em React com TDD
Simplificando testes com Testing Library
Como criar um componente React com TDD
Gerenciando dependências com Volta
React com TDD: Renderizando uma lista