Nesta minha última imersão no universo Ruby on Rails topei com muito material bacana que compartilho com vocês neste post. Assim, caso decidam também por trilhar este caminho, ao menos já têm material interessante pra começar seus estudos.
Começando pelo Ruby
Tal como disse no meu post anterior, se você realmente quer aprender Ruby on Rails, é obrigatório que você tenha um bom conhecimento a respeito da linguagem 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.
Learning Ruby, de Satish Talim - link - foi o primeiro tutorial que segui pra ir pegando o jeito da linguagem. É bem seco: essencialmente são notas de um curso, também vendido pelo autor, mas apesar disto, se você ler com muita atenção, agrega bastante. Nestas notas há diversas observações interessantes que me ajudaram muito a entender como a linguagem funciona.
Artigos interessantes sobre açúcar sintático e meta programação
Alguns artigos me ajudaram horrores a obter conhecimento um pouco mais avançado na linguagem. Ruby tem uma sintaxe que é muito estranha pra você que está acostumado com o estilo C de desenvolvimento (pense em chaves, Java, C#, o próprio Groovy, JavaScript). 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.
Material sobre o ferramental
Tal como no caso do Java você tem ferramentas com as quais precisará lidar no seu dia a dia, tal como Maven, o próprio JDK, IDEs, etc, o mesmo se aplica com Ruby. Meu foco inicial foi o ferramental mais essencial: gestão de dependências.
Você precisará lidar com pelo menos duas ferramentas para lidar com dependências. 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!
Top comments (0)