Skip to content

Instantly share code, notes, and snippets.

View andersonbuenos's full-sized avatar
🎯
Focusing

Anderson Buenos andersonbuenos

🎯
Focusing
View GitHub Profile

Tema 2 — Arquitetura & padrões (teoria)

1. Arquitetura em camadas aplicada em Spring Boot

Camadas típicas e responsabilidades:

  • Controller / API layer (Web): expõe endpoints REST, valida entrada mínima.
  • Service / Business layer: regras de negócio, orquestra chamadas, transações.
  • Repository / Data Access layer: abstração do acesso a dados (Spring Data JPA).
  • Domain / Model: entidades JPA e regras de domínio.

Tema 1 — Visão geral do sistema de delivery (teoria)

1. Visão geral do sistema

O que é: plataforma que conecta clientes → restaurantes → entregadores para compra e entrega de produtos alimentares. Requisitos funcionais (exemplos práticos):

  • Registro/login de usuários (clientes, restaurantes, entregadores, admin).
  • Listagem / busca de restaurantes e produtos.
  • Carrinho, checkout e pagamento.
@andersonbuenos
andersonbuenos / Atualizar README.md
Created September 24, 2025 07:21
Encontro 02 - Documentação e Finalização

Delivery Tech API

Sistema de delivery desenvolvido com Spring Boot e Java 21.

🚀 Tecnologias

  • Java 21 LTS (versão mais recente)
  • Spring Boot 3.2.x
  • Spring Web
  • Spring Data JPA
  • H2 Database
@andersonbuenos
andersonbuenos / Implementação do banco H2
Created September 24, 2025 07:07
Encontro 02 - Teste e Validação
## 1. O que é o banco H2?
O **H2 Database** é um banco de dados relacional **open source** escrito em Java. Ele é leve, rápido e pode rodar **em memória** (para testes) ou em **arquivo** (persistência local).
Características principais:
* 100% Java, sem necessidade de instalar servidor externo.
* Modo **in-memory** (ideal para testes unitários).
* Compatível com **JPA/Hibernate**, JDBC e Spring Boot.
* Fácil integração: basta adicionar uma dependência no `pom.xml`.
@andersonbuenos
andersonbuenos / Configurar SwaggerOpenAPI para documentar automaticamente os endpoints.md
Last active September 24, 2025 06:43
Encontro 02 - Configurar Swagger/OpenAPI para documentar automaticamente os endpoints.

Atividade 3: Configurar Swagger/OpenAPI para documentar automaticamente os endpoints

1. O que é o Swagger/OpenAPI?

Definição: Swagger (agora conhecido como OpenAPI) é uma especificação para documentação de APIs RESTful. Objetivo: Permitir que desenvolvedores documentem suas APIs de forma padronizada e automatizada.

Componentes principais:

  • Swagger UI: Interface visual interativa para explorar e testar APIs
  • OpenAPI Specification: O padrão formal que define a estrutura da documentação
@andersonbuenos
andersonbuenos / Encontro 02 - O que é - Como criar Spring Boot.md
Last active September 9, 2025 04:46
Encontro 02 - O que é - Criação do Spring com as dependências iniciais

Encontro 02 — O que é - Criação do Projeto Spring Boot


O que é Spring Boot?

O Spring Boot é um framework baseado no Spring Framework que facilita a criação de aplicações Java.
Ele elimina muita configuração manual, oferecendo:

  • Projeto pronto para rodar (standalone).
  • Configurações automáticas (auto-configuration).
  • Servidor embarcado (Tomcat/Jetty).
@andersonbuenos
andersonbuenos / Encontro 02 - Padrões de Projeto.md
Created September 2, 2025 06:31
Padrões de Projeto (Design Patterns) em Java

Padrões de Projeto (Design Patterns) em Java — o que são, por que usar, como usar e exemplos práticos

  1. O que são
  • São soluções reutilizáveis e testadas para problemas recorrentes de design de software. Não são código pronto, mas modelos de como organizar classes, objetos e responsabilidades.
  • Funcionam como um vocabulário comum entre desenvolvedores (ex.: “use um Strategy”, “isso pede um Observer”).
  • São organizados em categorias:
    • Criacionais: como criar objetos (Factory Method, Abstract Factory, Builder, Singleton, Prototype).
    • Estruturais: como compor classes/objetos (Adapter, Facade, Decorator, Composite, Proxy, Bridge, Flyweight).
    • Comportamentais: como objetos interagem (Strategy, Observer, Command, Template Method, State, Chain of Responsibility, Mediator, Iterator, Visitor, Memento, Interpreter).
@andersonbuenos
andersonbuenos / Encontro 02 — MVC.md
Last active September 2, 2025 06:14
Encontro 02 — Visão geral do MVC (Java)

Encontro 02 — Visão geral do MVC (Java)

O que é MVC?

MVC significa Model–View–Controller, um padrão de arquitetura de software muito usado em aplicações web e desktop. Ele separa a aplicação em três camadas principais, cada uma com uma responsabilidade clara:

Model (Modelo)

  • Representa os dados e as regras de negócio.
@andersonbuenos
andersonbuenos / Nivelamento 4_0 Git e GitHub.md
Last active September 4, 2025 12:25
Nivelamento de Git e Github

Guia simples e direto para introdução ao Git e ao GitHub, ideal para iniciantes que querem começar rapidamente.

Site de referência sobre git:


1. O que é Git e GitHub

  • Git: Sistema de controle de versão. Permite rastrear mudanças em arquivos e colaborar com outras pessoas.

Introdução Rápida à Orientação a Objetos com Java

1: Entenda o que é Orientação a Objetos

A Programação Orientada a Objetos (POO) é um paradigma que organiza o código em objetos, que representam entidades do mundo real. Cada objeto possui:

  • Atributos (dados)
  • Métodos (ações ou comportamentos)

2: Conceitos Básicos