Este roadmap foi desenhado para ajudar você no aprendizado da linguagem Ruby e do framework Ruby on Rails (RoR) de forma estruturada e eficiente. Como Rails é um framework web full-stack construído sobre Ruby, o foco inicial será nos fundamentos de Ruby, evoluindo para Rails e seu ecossistema. Assumindo versões como Ruby 3.5+ e Rails 8+ (baseado em tendências de 2025), priorize práticas modernas como programação funcional, concorrência e deploys cloud-native.
- Variáveis, tipos de dados (inteiros, floats, strings, symbols, booleans, nil) e operadores (aritméticos, lógicos, comparação).
- Estruturas de controle (condicionais
if/else/elsif/unless,case; laçosfor,while,until,loop,each). - Métodos (definição, parâmetros, retorno, blocos com
yield). - Manipulação de strings (interpolação, métodos como
gsub,split) e arrays/hashes básicos (push,pop,map,select). - Entrada e saída padrão (console com
gets,puts).
Projeto prático: Desenvolva um gerenciador de tarefas simples para linha de comando (CLI) que permita adicionar, listar e remover tarefas. Integre fibers para tarefas assíncronas básicas.
- Classes e objetos: a base da OOP em Ruby (tudo é objeto).
- Pilares da OOP:
- Encapsulamento:
attr_accessor,attr_reader,attr_writerpara proteger dados. - Herança: reutilizando código com
super. - Polimorfismo: duck typing e métodos sobrescritos.
- Abstração: modelando o essencial com módulos (mixins para reutilização).
- Encapsulamento:
- Interfaces: módulos como contratos (não há interfaces nativas, mas módulos simulam).
- Classes singleton e metaprogramação básica.
Projeto prático: Crie um sistema simples de gerenciamento de uma biblioteca, com classes para Livro, Autor, Biblioteca, permitindo adicionar livros, buscar por título ou autor. Use Ractors (experimental em Ruby 3+) para compartilhar dados entre processos paralelos.
- Visual Studio Code com extensões "Ruby", "Rails" e "Solargraph" (para IntelliSense e suporte a Ruby 3.5+).
- RubyMine (da JetBrains, altamente recomendado pela produtividade).
- Vim/Neovim com plugins Ruby ou Sublime Text.
- Bundler: para gerenciar gems (dependências),
bundle install,Gemfile. - Rake: tarefas de build e automação (alternativa ao Make).
- Asdf ou rbenv/rvm: para gerenciar versões de Ruby.
- Comandos essenciais do Git (
commit,push,pull,branch,merge,rebase). - Plataformas de hospedagem: GitHub (mais popular), GitLab, Bitbucket.
- Fluxos de trabalho: Git Flow ou GitHub Flow (simplificado).
Prática contínua: Crie um repositório no GitHub para cada projeto. Faça commits frequentes. Integre GitHub Copilot para sugestões de código AI-assistidas.
- Foco em recursos do Ruby 3.3+ e previews de 3.5/4.0.
- Inferência de tipo com RBS (Ruby Signature) para tipagem estática opcional.
- Pattern Matching (one-line e multi-line).
- Endless methods e numbered parameters.
- Shareable constant values e frozen string literals.
- Ractors para paralelismo real (melhorado em versões recentes).
Prática: Refatore seus projetos anteriores utilizando esses recursos modernos, incluindo pattern matching para manipulação de dados.
- Enumerable: para iteração funcional (
map,reduce,select,reject). - Blocos, Procs e Lambdas: para programação funcional.
- Tratamento de Exceções:
begin-rescue-ensure,raise, exceções customizadas. - Manipulação de Datas e Horas com
DateeTime(ou gems comoActiveSupport). ThreadseFiberspara concorrência básica.
Projeto prático: Crie um programa que gerencia um ranking de filmes, permitindo adicionar filmes, classificá-los, e listar os top N filmes, utilizando enumerables e lambdas.
- Conceitos de
ThreadeFiber. - Thread pools com gems como
concurrent-ruby. - Entendimento básico de problemas de concorrência (race conditions, GIL - Global Interpreter Lock).
- Ractors para paralelismo sem GIL (experimental, mas evoluindo).
- Princípios de Código Limpo (Clean Code) adaptado a Ruby.
- Princípios SOLID para design orientado a objetos.
- Convenções de nomenclatura (
snake_case) e formatação (Rubocop para linting). - Green Coding – Otimização para eficiência energética (ex: reduzir iterações ineficientes).
Prática: Resolva problemas em plataformas como HackerRank, LeetCode (nível fácil/médio) ou Exercism, focando na clareza, eficiência e concorrência.
- Classes
File,IOpara leitura/escrita. - CSV: parsing com stdlib
CSV. - Gems como
Pathnamepara operações avançadas.
Projeto prático: Desenvolva um programa que leia dados de um arquivo CSV (ex: lista de produtos) e escreva um resumo em um arquivo TXT ou JSON.
- JSON: nativo com
JSON.parse/generate, ou gems comoOjpara performance. - YAML: nativo para configuração (comum em Rails).
Prática: Crie uma funcionalidade que converta objetos Ruby (ex: livros) para JSON e vice-versa.
- Minitest ou RSpec: para escrever testes.
- FactoryBot para fixtures e mocks.
- Shoulda-matchers para asserções fluentes.
- Cobertura de testes com SimpleCov.
Prática: Escreva testes unitários para todos os projetos, buscando boa cobertura.
- ActiveRecord (parte do Rails, mas aprenda standalone): ORM para SQL.
- Conexão com bancos como PostgreSQL (recomendado) ou SQLite.
- Queries básicas (
find,create,update,destroy). - Prepared statements para evitar SQL Injection.
Projeto prático: Crie um CRUD simples para cadastro de usuários, armazenando dados em um banco relacional.
- Rails Core: MVC (Model-View-Controller), routing, controllers, views (ERB, Haml).
- ActiveRecord: ORM para persistência.
- ActionView, ActionMailer, ActionCable (para real-time).
- Rails 8+: suporte a Hotwire (Turbo, Stimulus) para apps interativos sem JS heavy.
- Alternativas: Sinatra (para APIs leves), Hanami (modular).
Projeto prático: Desenvolva uma API RESTful para um blog (posts, comentários, usuários) ou e-commerce simplificado usando Rails. Compile para executável com ferramentas como Ruby2JS ou WebAssembly previews.
- Migrations para schema management.
- Associations (
has_many,belongs_to). - Validations e callbacks.
- Ferramentas de Migração: Rails built-in migrations, ou gems como
Ridgepole.
- Rails Security: built-in protections contra CSRF, XSS.
- Conceitos de OAuth2 e JWT com gems como Devise e Doorkeeper.
- HTTPS configuração.
- OWASP Top 10 (atualizado para 2025).
Prática: Adicione autenticação e autorização à sua API com Devise.
- APIs RESTful com Rails API mode.
- OpenAPI/Swagger com gems como RSwag.
Prática: Documente sua API com RSwag.
- Rails testing: system tests com Capybara.
- Mocks com
WebMockouVCR. - Testcontainers para Docker em testes.
Prática: Escreva testes de integração para sua API, usando Testcontainers para banco.
- Docker: imagens para apps Rails.
- Docker Compose para multi-containers.
- Kubernetes: conceitos básicos (Pods, Deployments) com ArgoCD.
Prática: Crie Dockerfile para sua app Rails e rode em Docker.
- GitHub Actions: build, test, deploy.
- Semaphore ou CircleCI (opcionais).
Prática: Pipeline CI/CD no GitHub Actions para sua app.
- Provedores: AWS, GCP, Azure.
- PaaS: Heroku, Render, Fly.io.
Projeto prático: Deploy da API em Heroku ou Render.
- New Relic ou Sentry para métricas/logs.
- Rails built-in logging com gems como
Lograge.
Prática: Configure monitoring na sua API.
- Fundamentais: Singleton, Factory, Builder.
- Estruturais: Adapter, Decorator.
- Comportamentais: Observer, Strategy.
Prática: Aplique padrões em projetos.
- Monolítica vs. Microserviços.
- Event-Driven com Sidekiq ou Kafka gems.
- DDD básicos.
Projeto prático: Refatore para microserviço.
- Dry-rb: para reduzir boilerplate.
- Trailblazer: para operações complexas.
- Code reviews eficazes.
- Colaboração em equipes.
Prática: Contribua para open-source no GitHub.
- Programação Reativa:
EventMachineouAsyncgems.- Rails com
ActionCablepara real-time. - Projeto prático: API reativa com WebSockets.
- Concorrência Avançada:
- Ractors e
Asyncpara assíncrono. - Parallel processing com gems.
- Ractors e
- Otimização de Desempenho:
- Ferramentas:
RubyProf,StackProf. - Análise de memória e GIL tuning.
- Ferramentas:
- Exploração de Nichos:
- AI/ML: com
Tensorflow.rbouSciRuby. - Big Data: Apache Spark com
JRuby.
- AI/ML: com
- Ruby Doc (ruby-lang.org) – Foco em Ruby 3.5+.
- Rails Guides (guides.rubyonrails.org) – Incluindo Rails 8+.
- Baeldung-like: Ruby Weekly, Ruby Inside.
- "The Well-Grounded Rubyist" (David A. Black).
- "Agile Web Development with Rails" (Sam Ruby) – Edição 2025+.
- "Eloquent Ruby" (Russ Olsen).
- "Clean Code" (adaptado).
- "Rails AntiPatterns" para melhores práticas.
- Ruby Brasil (Discord, Telegram).
- Stack Overflow (pt e en).
- Reddit: r/ruby, r/rails.
- Ruby Rogues podcast.
- Udemy, Alura, Codecademy (cursos Rails).
- Exercism, Codewars, LeetCode (Ruby tracks com AI).
- Mão na Massa Sempre: Aplique conceitos em projetos reais.
- Comece Simples: Rails é ótimo para inícios rápidos com
rails new. - Mantenha-se Atualizado: Acompanhe Ruby 4.0 previews, Rails updates em blogs (Ruby Weekly, RailsConf).
- Networking: Participe de meetups como RubyConf BR.
- Construa seu Portfólio: GitHub com projetos Rails, incluindo demos interativas.
Boa sorte na sua jornada com Ruby on Rails!