Série Programming One Kindle

Java One

Aprenda, evolua, sobreviva e se divirta

Java do zero até uma API REST completa: Spring Boot, PostgreSQL, JPA, validação, JWT, testes e Docker. Um único projeto cresce capítulo a capítulo — nada de exemplos soltos, nada de teoria antes da hora.

Atenção: o idioma desta edição é português.

42capítulos
10partes
1projeto do início ao fim
Capa de Java One: Aprenda, evolua, sobreviva e se divirta, de Thiago Nogueira Edição Brasil
Java 21Spring BootJPAPostgreSQLSpring SecurityJWTJUnitDocker
código do livro

Menos teoria vazia.
Mais código que funciona.

Nada de exemplo solto com foo e bar. Todo trecho pertence ao mesmo projeto, que cresce capítulo a capítulo — e os erros aparecem como aparecem na sua tela, para serem lidos linha por linha.

App.java
public class App {    public static void main(String[] args) {        System.out.println("O primeiro programa");    }}
terminal
curl -s localhost:8080/products/7{"id":7,"name":"Teclado mecânico","price":349.90}docker compose up -d✔ Container api  Started
o projeto

Um sistema só, do primeiro arquivo ao deploy

README.md

No fim do livro existe um programa rodando. Ele não tem tela nem botão: fica esperando, e quando alguém pergunta a coisa certa, responde — uma API de produtos com cliente, controller, service, repository e PostgreSQL.

Do primeiro println à API REST em produção.

  • Um projeto só, crescendo do capítulo 1 ao 42
  • Cada conceito aparece quando o projeto precisa dele
  • Erros de verdade, lidos linha por linha
  • API com validação, segurança, testes e Docker
leitura de amostra

Leia uma prévia gratuita de Java One

Esta amostra contém os primeiros capítulos. O PDF completo continua protegido para compradores.

Abrir prévia em nova aba →
sumário

42 capítulos em 10 partes

Abra uma parte para ver os capítulos — e a frase que abre cada um.

parte 01 Começando do zeroVocê escreve Java antes de entender Java. A linguagem entra pela porta da prática: compilar, errar, ler o erro, consertar. 6 cap.
  1. 01
    O que vamos construirAntes da primeira linha de código, o destino. Ninguém aprende bem uma viagem sem saber onde ela termina.
  2. 02
    Primeiro programa em JavaDois comandos, um arquivo e a linha mais famosa da programação.
  3. 03
    Variáveis e tiposDeclarar um tipo é contratar um revisor que trabalha de graça.
  4. 04
    Operadores e expressõesO sinal de igual não significa igual, e o sinal de igual duplo engana com texto.
  5. 05
    CondicionaisEscolher um caminho é assumir o outro — inclusive quando ele não está escrito.
  6. 06
    RepetiçõesEscrever a mesma linha dez vezes é um erro de projeto, não de digitação.
parte 02 O Java que você realmente precisaNão a linguagem toda — a parte dela que sustenta uma API. Métodos, coleções, objetos, exceções e streams, na dose exata. 8 cap.
  1. 07
    MétodosDar nome a um trecho de código é a forma mais barata de documentação que existe.
  2. 08
    Arrays e coleçõesArray tem tamanho. Lista tem vida. Mapa tem chave. Escolher errado custa caro.
  3. 09
    Orientação a objetosAté aqui o código tinha verbos soltos. Agora ele ganha substantivos.
  4. 10
    EncapsulamentoEsconder o atributo não é cerimônia: é o que impede o objeto de existir em estado impossível.
  5. 11
    Herança e interfacesHerança é um parentesco que você não pode desfazer. Interface é um contrato que você pode assinar com quem quiser.
  6. 12
    Enums e recordsDois recursos que apagam código: um para o conjunto fechado, outro para o dado puro.
  7. 13
    ExceçõesUm erro tratado é um requisito. Um erro engolido é uma dívida com juros.
  8. 14
    Lambdas e streamsO laço diz como percorrer. O stream diz o que você quer. A segunda frase é mais curta.
parte 03 Entrando no Spring BootO framework que escreve o encanamento por você. E o preço disso: entender quem está chamando o seu código. 3 cap.
  1. 15
    O que é SpringVocê para de criar objetos com new. Em troca, alguém cria por você — e é preciso entender quem.
  2. 16
    O primeiro projeto Spring BootTrês minutos entre um formulário na web e uma aplicação rodando na porta 8080.
  3. 17
    A primeira APIQuatro verbos, um caminho e uma decisão sobre o que devolver em cada caso.
parte 04 Construindo o CRUDA espinha dorsal do livro. Entidade, banco, repositório, serviço, controlador e DTO — nesta ordem, uma camada por vez. 7 cap.
  1. 18
    Modelando a aplicaçãoAntes de escolher a tecnologia, decidir os substantivos. Um modelo errado sobrevive a todas as refatorações.
  2. 19
    Banco de dadosUm lugar onde o dado sobrevive ao desligamento da máquina — e uma linguagem de cinquenta anos que ninguém conseguiu substituir.
  3. 20
    Spring Data JPAUma camada que traduz objeto em linha de tabela. Poderosa, conveniente e cheia de armadilhas que este livro vai nomear.
  4. 21
    RepositoryUma interface vazia que ganha vinte métodos. Vale entender de onde eles vêm antes de confiar neles.
  5. 22
    ServiceA camada onde mora a regra. Se ela estiver vazia, a regra está espalhada em outro lugar — e você vai encontrá-la do jeito difícil.
  6. 23
    ControllerA camada mais fina do sistema — e a única que o cliente vê.
  7. 24
    DTOsO cliente não precisa saber como a sua tabela é desenhada. E você não quer que ele dependa disso.
parte 05 API de verdadeO que separa um CRUD de exercício de uma API que outra pessoa usa: validação, erro honesto, paginação e busca. 4 cap.
  1. 25
    ValidaçãoToda entrada é hostil até prova em contrário — e a prova é uma anotação.
  2. 26
    Tratamento de errosO erro é parte do contrato. Uma API que responde 500 para tudo é uma API que não conta o que aconteceu.
  3. 27
    Paginação e ordenação`GET /products` com um milhão de itens é um ataque de negação de serviço que você escreveu sozinho.
  4. 28
    Filtros e buscasFiltrar no banco é uma consulta. Filtrar em memória é trazer tudo e jogar quase tudo fora.
parte 06 RelacionamentosQuando as tabelas se conhecem, o JPA fica poderoso e perigoso na mesma medida. Aqui está o mapa dos buracos. 2 cap.
  1. 29
    Relacionamentos JPADuas tabelas que se conhecem viram duas classes que se apontam — e é aí que o JPA fica poderoso e perigoso na mesma medida.
  2. 30
    Problemas reais do JPAO ORM faz exatamente o que você mandou. O problema é que você mandou sem saber.
parte 07 SegurançaAutenticação, autorização e um token que diz quem você é sem que o servidor precise lembrar. 3 cap.
  1. 31
    Spring SecurityA API está no ar há três capítulos e qualquer pessoa com a URL apaga qualquer produto.
  2. 32
    JWTUm crachá assinado que o servidor não precisa guardar — e que ele também não consegue cancelar.
  3. 33
    Usuários e permissõesSaber quem é a pessoa é metade do trabalho. A outra metade é decidir o que ela pode fazer.
parte 08 TestesA rede que permite mexer no código sem medo. Unidade, integração e um banco de verdade dentro do teste. 4 cap.
  1. 34
    Testando JavaTeste não é sobre provar que funciona. É sobre poder mexer no código sem medo na sexta-feira.
  2. 35
    Testando servicesPara testar a regra, o banco precisa sair do caminho — e alguém precisa fingir ser ele.
  3. 36
    Testando controllersO contrato HTTP é a única parte do sistema que outra pessoa depende. É a que mais merece um teste.
  4. 37
    Testando o bancoTestar contra um banco diferente do de produção é ensaiar a peça em outro teatro.
parte 09 Documentação e ferramentasUma API que ninguém sabe usar não existe. E um projeto sem histórico não tem volta. 3 cap.
  1. 38
    Swagger e OpenAPIUma API que ninguém sabe usar não existe. E documentação escrita à mão envelhece em uma semana.
  2. 39
    Clientes HTTPA ferramenta importa menos que o hábito de guardar a requisição junto do código que a atende.
  3. 40
    GitO código diz o que o sistema faz. O histórico diz por quê — e é a única parte que você não consegue reconstruir.
parte 10 Projeto finalAgora sem mastigar. Você recebe os requisitos e constrói a loja inteira — e depois a coloca no ar. 2 cap.
  1. 41
    Projeto finalAgora sem mastigar. Você recebe os requisitos e constrói a loja inteira.
  2. 42
    Docker e deployUm programa que só roda na sua máquina é um hobby. O que roda em qualquer máquina é um sistema.
avaliações verificadas

O que leitores dizem sobre Java One

Carregando avaliações deste livro…

Ver todas as avaliações deste livro →
git commit -m "primeiro capítulo"

Java One

Do primeiro println à API REST em produção. O projeto começa a rodar no primeiro capítulo — e não para mais.

Atenção: o idioma desta edição é português.