Continuous learning focused on scalable systems, clean architecture, and production-ready backend solutions.
Este repositório documenta minha jornada prática e contínua de estudos em desenvolvimento backend com Java e Spring Boot, utilizando como referência formações da DevSuperior e conteúdos avançados do ecossistema Java.
A proposta deste projeto é consolidar fundamentos técnicos, aplicar boas práticas de mercado e evoluir progressivamente por meio de capítulos organizados em branches, partindo de operações CRUD até tópicos como segurança, testes, Docker, deploy e arquitetura escalável.
Transformar estudo estruturado em experiência prática, consolidando competências relevantes para o desenvolvimento backend moderno e alinhado às exigências do mercado.
- Fortalecer fundamentos sólidos em Java e Spring Boot
- Aplicar boas práticas de arquitetura e design de software
- Simular cenários reais de mercado
- Desenvolver projetos completos e evolutivos
- Construir um portfólio técnico consistente e profissional
- Documentar aprendizados com clareza e organização
Ao longo desta jornada, os projetos exploram competências relevantes para o mercado:
- Desenvolvimento de APIs RESTful
- Arquitetura em camadas
- Clean Code e organização de projeto
- Spring Boot e ecossistema Spring
- Persistência com JPA / Hibernate
- Segurança com Spring Security, OAuth2 e JWT
- Testes unitários e integração
- Versionamento de banco com Flyway
- Containerização com Docker
- Deploy e CI/CD
- Boas práticas corporativas de backend
A stack utilizada nesta jornada foi selecionada com foco em desenvolvimento backend moderno, escalável e alinhado às práticas adotadas no mercado. O ecossistema contempla desde construção de APIs REST até testes, persistência, observabilidade e preparação para deploy.
| Categoria | Tecnologias | Finalidade |
|---|---|---|
| ☕ Linguagem | Java 17+ | Base principal do desenvolvimento, utilizando recursos modernos da linguagem e LTS amplamente adotado no mercado |
| 🌱 Framework Principal | Spring Boot | Criação rápida e robusta de aplicações backend com configuração simplificada e produtividade elevada |
| 🌐 APIs REST | Spring Web | Construção de endpoints RESTful, controllers, serialização JSON e comunicação HTTP |
| 🗄️ Persistência | Spring Data JPA | Abstração para acesso a dados com repositories e integração com banco relacional |
| 🧩 ORM | Hibernate | Mapeamento objeto-relacional (Entity ↔ Tabelas), gerenciamento de contexto e queries |
| 🔐 Segurança | Spring Security | Controle de autenticação, autorização e proteção de rotas |
| 🎫 Auth Tokens | OAuth2 / JWT | Implementação de login seguro e controle de acesso baseado em tokens |
| 🐘 Banco Principal | PostgreSQL | Banco relacional robusto utilizado em ambiente de desenvolvimento e cenários reais |
| ⚡ Banco de Testes | H2 Database | Banco em memória para testes rápidos, isolados e reproduzíveis |
| 🔄 Migrations | Flyway | Versionamento e controle evolutivo do schema do banco de dados |
| 🧪 Testes Unitários | JUnit 5 | Escrita de testes automatizados para regras de negócio e componentes isolados |
| 🎭 Mocks | Mockito | Simulação de dependências para testes unitários desacoplados |
| 🔬 Testes Spring | Spring Boot Test | Testes integrados com contexto Spring |
| 🌍 Testes de API | MockMvc / Postman | Validação de endpoints REST, contratos HTTP e fluxo da aplicação |
| 📦 Build Tool | Maven | Gerenciamento de dependências, empacotamento e ciclo de build |
| 🐳 Containerização | Docker | Padronização de ambiente e preparação para deploy |
| 🚀 Entrega Contínua | CI/CD (conceitos) | Automação de build, testes e deploy |
| 📄 Documentação | Swagger / OpenAPI | Documentação interativa e explorável da API |
| 📊 Logging | SLF4J / Logback | Logs estruturados para rastreabilidade e observabilidade |
| 💻 IDE Principal | IntelliJ IDEA | Ambiente principal de desenvolvimento Java |
| 📝 Editor Auxiliar | VS Code | Apoio para documentação, frontend e edição rápida |
| 🧰 Banco / Queries | pgAdmin | Administração e inspeção de banco PostgreSQL |
| 🌍 Versionamento | Git / GitHub | Controle de versão, branches e portfólio técnico |
Durante os capítulos, são utilizadas práticas comuns em ambientes profissionais:
- 🔹 Configuração por perfis (
dev,test,prod) - 🔹 Banco em memória para testes rápidos
- 🔹 Integração com PostgreSQL
- 🔹 Migrations com Flyway
- 🔹 Logging estruturado com Logback
- 🔹 Externalização via variáveis de ambiente
- 🔹 Documentação de API com Swagger / OpenAPI
- 🔹 Tratamento global de exceções
- 🔹 Padronização de respostas REST
- 🔹 Organização modular do projeto
Cada capítulo está isolado em uma branch específica, representando a evolução incremental do projeto.
| Capítulo | Tema | Descrição | Acesso |
|---|---|---|---|
| 01 | CRUD | Operações básicas e estrutura inicial da API | Acessar |
| 02 | Testes | Testes automatizados (unitários e integração) | Acessar |
| 03 | Segurança | Validação, autenticação e autorização | Acessar |
| 04 | Domínio | Modelagem de domínio e ORM | Acessar |
| 05 | Consultas | Queries complexas e performance | Acessar |
| 06 | Docker & Deploy | Containerização, deploy e CI/CD | Acessar |
| Projeto | Descrição | Status |
|---|---|---|
| DSCatalog | API de catálogo de produtos | ✅ Concluído |
| DSLearn | Plataforma educacional | 🔄 Em evolução |
| MovieFlix | Catálogo de filmes | 🔄 Em evolução |
| EventCity | Sistema de eventos | 🔄 Em evolução |
| DSSales | Dashboard analítico | 🔄 Em evolução |
Mais importante do que apenas gerar código rapidamente é compreender profundamente o que está sendo construído.
Por isso, este repositório prioriza:
- Estrutura sólida
- Separação de responsabilidades
- Código limpo
- Evolução sustentável
- Escalabilidade
- Manutenibilidade
- Fundamentos consistentes
Ferramentas aceleram produtividade. Conhecimento sólido gera valor real.
- A branch
mainfunciona como hub central de navegação. - Cada branch representa uma etapa real da evolução técnica.
- O conteúdo é atualizado continuamente.
- Todo material foi organizado pensando em clareza, progressão e profissionalismo.
- https://docs.spring.io/spring-boot/docs/current/reference/html/
- https://spring.io/projects/spring-boot
Albert Silva de Jesus
Backend Developer • Java • Spring Boot • REST APIs