Plano de estudos de Ruby on Rails
Um plano de estudos para você que precisa aprender Ruby on Rails e não sabe por onde começar!
Precisa aprender Ruby on Rails e não sabe por onde começar? Preparei aqui um plano de estudos que pode te ajudar. Bora lá?
Começando pelo Ruby
Se você realmente quer aprender Ruby on Rails, é obrigatório ter conhecimento mínimo a respeito da linguagem Ruby pra entender como o framework funciona. E encontrar bons materiais sobre a linguagem não é algo tão simples assim.
Minha sugestão: aprenda Ruby como se fosse sua primeira linguagem de programação. Comecei fazendo uma comparação direta com Java e Groovy. Se não soubesse Groovy com certeza começar por esta comparação teria sido pura perda de tempo.
Infelizmente a documentação oficial pra quem está começando não é legal, ao contrário do que ocorre no caso do Ruby on Rails. Mas há links ali que valem muito à pena seguir.
Tutoriais
Quando uso o termo “Tutorial” pense naquele material que vai te guiar pela mão: do mais básico ao mais avançado sobre a linguagem. É aquele material que não necessáriamente vai te trazer aprofundamento, mas pelo menos te fornece o essencial pra que possa pegar pelo menos o vocabulário relacionado à tecnologia.
Programming Ruby – link – é bastante desatualizado: trata da versão 1.9 da linguagem (lançada em 2007), mas de longe é o material mais bem escrito e gratuito que encontrei. Vai do básico (bem básico mesmo) ao avançado. E sim: é leitura sequêncial, você vai ler do início ao fim.
Artigos interessantes sobre açúcar sintático e meta programação
Um ponto importante da linguagem que pode gerar muitas dúvidas é o que o pessoal chama de "açúcar sintático". Então aqui vão alguns recursos para que você saiba o mínimo a respeito.
Ruby tem uma sintaxe que é muito estranha pra você que está acostumado com o estilo C de desenvolvimento (pense em chaves, Java, C#). Além disto existem inúmeras DSLs escritas em Ruby. Então meu foco foi no que os rubistas chamam de “açúcar sintático”.
Syntactic Sugar Methods in Ruby, de Tom Bruijn – link – começo por este post que me abriu os olhos para algumas possibilidades relacionadas a nomes de métodos em Ruby que tornou muita coisa clara pra mim e tornou minha vida muito mais fácil.
Creating a Ruby DSL, de Mate Solymosi – link – após ter lido o artigo acima, neste você vê na prática como é a criação de uma DSL (Domain Specific Language) com Rails. E isto vai ser fundamental mais à frente pra você entender como funcionam recursos do Rails tais como as migrations e o roteador, que são essencialmente duas DSLs.
Ruby Metaprogramming is Even Coolder Than it Sounds, de Nikola Todorovic – link – se você vêm do Java o conceito de meta programação não faz tanto parte do seu dia a dia quanto no caso do Ruby. E este artigo trata deste assunto de uma forma bem clara, bem fácil de entender. É uma excelente introdução ao assunto.
As ferramentas que você precisa conhecer
Se você vêm do mundo Java, tal como ali precisamos lidar com ferramentas como Maven, JDKs e IDEs, o mesmo se aplica aqui. De todas as ferramentas as mais importantes na minha opinião são aquelas que lidam com a gestão de dependências.
Você precisará lidar com pelo menos duas ferramentas: Bundler e Gem. Resumindo, Gem define como empacotamos código Ruby, e Bundler gerencia as dependências entre as gems (gem equivale ao jar do Java).
Ruby Gems, Gemfile & Bundler (the ultimate guide), de Jesus Castello – link – Este artigo te dá a visão global que te permite entender a diferença entre Bundler e Gem. É a leitura inicial obrigatória portanto.
RubyGems Basics – link – a documentação oficial do comando Gem é excelente. O texto essencial te coloca apto a executar os comandos essenciais e entender como o Gem funciona. Neste mesmo link você irá encontrar, do lado esquerdo, uma série de conteúdos que fornecem o aprofundamento que você pode precisar. Desde como empacotar seu código até como implantá-lo.
Documentação oficial do Bundler – link – até agora não encontrei assuntos excelentes sobre o Bundler, então segui a documentação oficial mesmo neste link. Lendo de baixo pra cima.
Gerenciar versões do Ruby com RVM, de Bruno Meira – link – Finalmente material em português! Este post do blog do Treinaweb ensina a como usar o RVM (Ruby Version Manager), que equivale ao SDKMan do Java. Basicamente ele te permite ter diferentes versões do Ruby (e gems) instaladas em seu sistema e que permite a troca rápida com apenas alguns comandos no seu console.
O lado Rails
Encontrar bom material sobre Rails é muito mais fácil. Minha indicação a seguir já vai suprir o básico e te fornecer a maior parte do que precisa conhecer.
Guias do Rails – documentação oficial – link – Li todos os guias do início ao fim, na ordem em que apareceram. Você têm desde o “Getting started” até detalhes sobre o funcionamento do Active Record e dos controladores, envio de e-mails, enfim, tudo o que o Rails tem pra oferecer. Eu poderia terminar este post aqui, mas encontrei mais material que vale muito à pena mencionar aqui.
How to Deploy a Rails App with Git Hooks, de MItchell Anicas – link – Me indicaram a implantação baseada em Git Hooks de aplicações Ruby on Rails quando mencionei minha dificuldade nesta área. Este post é um tutorial que te ensina como proceder.
Capistrano – documentação oficial – link – Dentre as ferramentas usadas para implantar aplicações Rails está o Capistrano, que depois descobri também poderia ser usado para implantar outros tipos de aplicação. Aprendi bastante com a documentação oficial e estou avaliando a ferramenta para aplicação em alguns projetos futuros.
Concluindo
Espero com este post ter apresentado para quem quer iniciar os estudos de Ruby on Rails materiais que achei realmente interessantes e que tem aberto bastante minha cabeça para este novo velho universo pro qual estou voltando.
Tem algum material que gostaria de indicar aqui? Se sim, por favor, indique! Toda sugestão é bem vinda!