Série Programming One Kindle

Ruby One

Do primeiro puts ao contrato em produção

Ruby do zero até o módulo de contratos no ar: objetos, blocos, classes, Rails, Active Record, testes e deploy. Um projeto só, o Nortea Hub, a partir do sistema que o pátio já usa de manhã.

R$ 5,99 R$ 24,00 Promoção

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

29capítulos
6partes
1projeto do início ao fim
Capa de Ruby One: Do primeiro puts ao contrato em produção, de Thiago Nogueira Edição Brasil
RubyRailsActive RecordBundlerRSpecSidekiqAPIDeploy
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.

contrato.rb
diaria = 18_990taxa = 4_550total = diaria * 17 + taxaputs format("R$ %d,%02d", total / 100, total % 100)
terminal
ruby contrato.rbContrato CT-2041: plataforma PT-118bundle exec rspec29 examples, 0 failures
o projeto

Um sistema só, do primeiro arquivo ao deploy

README.md

A Nortea precisa de um módulo de contratos no Hub que já está no ar desde 2016. Ao longo do livro, esse módulo nasce em Ruby puro e depois entra no Rails: modelos, migrations, rotas, controllers, testes, jobs, API e deploy — sem framework antes da dor.

Do primeiro puts ao contrato em produção.

  • Um projeto só: o contrato da Nortea, do sistema no ar ao módulo novo
  • Ruby primeiro. O Rails entra quando o arquivo dele está na mesa
  • Erros de verdade, lidos linha por linha
  • Legado, convenção e o teste que criava um contrato impossível
leitura de amostra

Leia uma prévia gratuita de Ruby One

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

Abrir prévia em nova aba →
sumário

29 capítulos em 6 partes

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

parte 01 O que já está no arDe onde vieram o Ruby e o Rails, o que o dia 3 de junho cobra do contrato, e o primeiro programa na máquina de quem acabou de receber o acesso. 3 cap.
  1. 01
    Fevereiro de 1993Um programador no Japão, um critério de leitura, e vinte anos até o framework que a Nortea já usa de manhã.
  2. 02
    O que vamos construirNove canteiros, uma plataforma em dois lugares ao mesmo tempo, e uma página que o adendo já prometeu.
  3. 03
    O primeiro programaDois Rubys na mesma manhã, e só um deles abre o pátio às 6h.
parte 02 A linguagem que o contrato já falaObjeto, método, decisão, símbolo, lista e bloco. O pedaço do Ruby que o arquivo de produção já usa sem avisar. 6 cap.
  1. 04
    Objetos e tiposTrês diárias de R$ 480 somadas pela planilha davam R$ 480.480.480. O boleto não saiu, e ninguém achou estranho a tempo.
  2. 05
    MétodosUm método de três linhas que ninguém chama. A busca no repositório discordava.
  3. 06
    CondicionaisO contrato estava cancelado desde segunda. O relatório dizia que a plataforma continuava ocupada, e estava certo segundo o próprio código.
  4. 07
    Strings e símbolosO status era active dos dois lados. Um deles tinha dois-pontos na frente, e a comparação dava falso.
  5. 08
    Arrays e hashesA planilha chama de Contrato o que o banco chama de code. O mesmo contrato, dois hashes, nenhuma chave em comum.
  6. 09
    Blocos e enumerablesA lista da Helena tinha quatro plataformas. O select devolveu três. A quarta tinha status nil desde uma importação de 2019.
parte 03 Classes, módulos e falhasO contrato vira um objeto com nome. O módulo mistura comportamento. A exceção diz o que falhou, em vez de seguir calada. 4 cap.
  1. 10
    ClassesO hash aceitava qualquer chave, inclusive statsu. Durante dois dias, o contrato CT-2058 esteve ativo e sem status ao mesmo tempo.
  2. 11
    MódulosO mesmo módulo, incluído em dois models. Um deles redefiniu o total e esqueceu o super. A taxa de entrega sumiu da reserva.
  3. 12
    ExceçõesA lista da manhã saiu vazia. Não havia erro nenhum no log. Havia um rescue que devolvia uma lista vazia quando não achava o arquivo.
  4. 13
    Gems e BundlerUm bundle update sem nome de gem mexeu em quarenta e uma linhas do Gemfile.lock. A página de contratos parou de abrir, e só na máquina da Lívia.
parte 04 Entrando no RailsO framework que já está em produção desde 2016. Modelo, tabela, associação, validação e o callback duplicado. 6 cap.
  1. 14
    O que é o RailsNenhum arquivo do nortea diz que o endereço /contracts chama o ContractsController. O Rails decide pelo nome.
  2. 15
    ModelosVinte e três colunas, três começos, e cada relatório da Nortea lendo um deles.
  3. 16
    MigrationsO banco de produção tinha uma coluna que o schema.rb não tinha. Alguém a criou à mão em 2023, direto no servidor, numa sexta.
  4. 17
    AssociaçõesO contrato da PT-121 foi cancelado na segunda. Na quarta, a plataforma ainda não aparecia entre as disponíveis.
  5. 18
    ValidaçõesO formulário gravava contrato sem responsável. O motorista chegava ao canteiro sem ninguém para assinar a entrega, e a máquina voltava no mesmo caminhão.
  6. 19
    CallbacksUm contrato criado gerava duas reservas da mesma máquina. Um callback era de 2016, o outro de 2021, e os dois tinham razão sozinhos.
parte 05 Do pedido à telaA rota, o controller de trinta e sete commits, a view e o console que a Marta achou que não alterava nada. 4 cap.
  1. 20
    RotasO botão dizia Cancelar contrato. O pedido que ele mandava era POST /contracts — o mesmo endereço de criar um contrato.
  2. 21
    ControllersTrinta e sete commits num método de vinte e oito linhas. Cada um corrigia um caso, e nenhum tirava a correção anterior.
  3. 22
    ViewsNa mesma linha da tela, a plataforma aparecia sem destaque de ocupada e com o rótulo Em uso. A view fazia a mesma pergunta de dois jeitos.
  4. 23
    ConsoleContract.last não era o contrato que a Lívia queria. O update seguinte gravou nele mesmo assim, e o console respondeu true.
parte 06 Provar, integrar, publicarO teste que criava um contrato impossível, o trabalho que não cabe no pedido, a API da Serra Azul e a manhã em que o pátio confere. 6 cap.
  1. 24
    TestesO teste passava desde 2016. A factory fabricava um contrato sem equipamento, sem cliente e sem data — um contrato que o pátio devolveria no portão.
  2. 25
    JobsSalvar um contrato levava oito segundos. Sete e meio eram o e-mail para a Helena, que ela lia no dia seguinte.
  3. 26
    APIsA API devolvia status active. O sistema da Serra Azul comparava com ativo. Nenhum contrato da Nortea aparecia no painel deles.
  4. 27
    AutenticaçãoA credencial da Serra Azul era de leitura. O Diego mandou um POST com ela, e o nortea criou o contrato.
  5. 28
    DeployTerça, 2 de junho, 17h40. O Sérgio queria só subir o ajuste. O pátio carregava a Serra Azul às seis da manhã seguinte.
  6. 29
    Projeto finalQuarta, 3 de junho, 6h. Nove canteiros, a planilha numa mão, o tablet na outra. A Helena conferiu linha por linha.
avaliações verificadas

O que leitores dizem sobre Ruby One

Carregando avaliações deste livro…

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

Ruby One

Do primeiro puts ao contrato 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.