Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 Backend Engineering Journey — Java | Spring Boot

Continuous learning focused on scalable systems, clean architecture, and production-ready backend solutions.

Scalable Backend Systems • REST APIs • Clean Architecture • Security • Testing • DevOps

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.


🧠 Objetivo

Transformar estudo estruturado em experiência prática, consolidando competências relevantes para o desenvolvimento backend moderno e alinhado às exigências do mercado.

Principais metas:

  • 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

🎯 Competências Demonstradas

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

🛠️ Stack Tecnológica

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 construção de APIs REST, persistência de dados, autenticação segura, testes automatizados, observabilidade, documentação e preparação para deploy.

Categoria Tecnologias Finalidade
☕ Linguagem Java 17+ Base principal do desenvolvimento utilizando recursos modernos da linguagem e versão LTS amplamente adotada no mercado.
🌱 Framework Principal Spring Boot Criação rápida e robusta de aplicações backend com configuração simplificada e alta produtividade.
🌐 APIs REST Spring Web Construção de endpoints RESTful, controllers, serialização JSON e comunicação HTTP.
🗄️ Persistência Spring Data JPA Abstração de acesso a dados utilizando repositories e integração com bancos relacionais.
🧩 ORM Hibernate ORM Mapeamento objeto-relacional (Entity ↔ Tabelas), gerenciamento de contexto e consultas SQL.
✅ Validação Jakarta Bean Validation Validação declarativa de DTOs e regras de entrada utilizando annotations integradas ao Spring Boot.
🔐 Segurança Spring Security Controle de autenticação, autorização e proteção de rotas da aplicação.
🎫 Auth Tokens OAuth2 / JWT Implementação de autenticação segura baseada em tokens e controle de acesso.
🐘 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 execução de testes rápidos, isolados e reproduzíveis.
🔄 Migrations Flyway Versionamento e controle evolutivo do schema do banco de dados.
🧪 Testes Unitários JUnit 5 Criação de testes automatizados para regras de negócio e componentes isolados.
🎭 Mocking Mockito Simulação de dependências para testes desacoplados e isolados.
🔍 Assertions AssertJ Assertions fluentes e legíveis para validação de cenários de teste.
🔬 Testes Spring Spring Boot Test Testes integrados utilizando contexto completo do ecossistema Spring.
🌍 Testes de API MockMvc / Postman Validação de endpoints REST, contratos HTTP e comportamento da aplicação.
📦 Build Tool Maven Gerenciamento de dependências, empacotamento e ciclo de build do projeto.
🐳 Containerização Docker Padronização de ambiente e preparação da aplicação para deploy.
🚀 Entrega Contínua CI/CD (conceitos) Automação de build, testes e processos de integração contínua.
📄 Documentação API Swagger / OpenAPI Documentação interativa e explorável dos endpoints REST.
📘 Documentação Técnica JavaDoc Documentação técnica de classes, métodos e contratos da aplicação.
📊 Observabilidade SLF4J / Logback Logs estruturados para rastreabilidade, monitoramento e debugging.
💻 IDE Principal IntelliJ IDEA Ambiente principal de desenvolvimento para aplicações Java.
📝 Editor Auxiliar VS Code Apoio para documentação, frontend e edições rápidas.
🧰 Banco / Queries pgAdmin Administração, inspeção e gerenciamento do PostgreSQL.
🌍 Versionamento Git / GitHub Controle de versão, gerenciamento de branches e portfólio técnico.

⚙️ Práticas Aplicadas

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

📚 Roadmap de Estudos

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

📦 Projetos Desenvolvidos

Projeto Descrição Status
ASJ Catalog API de catálogo de produtos 🔄 Em evolução

🏗️ Filosofia de Desenvolvimento

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.


📌 Observações

  • A branch main funciona 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.

🤝 Colaboração

Este repositório também tem como objetivo incentivar aprendizado contínuo, troca de conhecimento e evolução colaborativa no ecossistema Java e Spring Boot.

Sugestões, melhorias, correções e discussões técnicas são bem-vindas.

Antes de contribuir, consulte:


📚 Referências Técnicas Oficiais

🔹 Java Documentation

🔹 Spring Boot

🔹 Spring Data JPA

🔹 Spring Security

🔹 Spring Framework

🔹 Configuração e Properties

🔹 Maven

🔹 JPA / Hibernate

🔹 Testes

🔹 Docker


👨‍💻 Autor

Albert Silva de Jesus
Backend Developer • Java • Spring Boot • REST APIs


📎 Contato

LinkedIn Gmail

About

💻 Java & Spring Boot backend projects with REST APIs, security, testing and clean architecture.

Topics

Resources

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages