Tenho transformado postagens internas para o time em postagens mais abertas de forma que possamos ajudar, de alguma forma, aqueles que acompanham o blog.
O Ruby on Rails é um framework baseado em Ruby muito produtivo para web que trabalha no modelo MVC – Model View Controller. É a tecnologia que roda ou já rodou muitas startups mundo afora: Soundcloud, Linkedin, Twitter, Shopify, Github, Airbnb…
Quem me conhece sabe o meu alinhamento-afeição com a empresa 37Signals, seu CEO, o Jason Friend e o CTO, David Heinemeier Hansson (criador do Rails), visionários fora da curva. Para muito além do Basecamp, Highrise, e outros produtos que já estiveram no portfólio da empresa.
Se você é empreendedor/empresário, você precisa cair na real lendo o Get In Real, repensar muitas coisas do seu negócio e mind set lendo Reinvente Sua Empresa, entender que o trabalho remoto é uma realidade, lendo Remote, não pirar, lendo Não Precisa Ser um Trabalho Maluco e, principalmente, ser produtivo e ter entregas lendo Pare de Rodar em Círculos. Essa série de livros by 37Signals, em negrito, é sensacional. O blog, Signal vs Noise você deve acompanhar também.
Voltando ao Rails em Si
O Ruby On Rails é produtivo a ponto de permitir desenvolver um sistema de gestão simples, com umas 6 tabelas e algumas chaves externas em uma bela apresentação visual/usabilidade em pouco mais de 30 minutos.
O Rail é baseado na arquitetura MVC:
- Model: Aqui estarão as suas regras de negócio;
- Controller: É quem liga o view ao model;
- View: É a interface a ser renderisada.
Falando mais sobre o funcionamento do framework e seus recursos.
Scaffold
É uma mão na roda. Aqui você gera um CRUD completo, com model, view e controller. Basta dar um nome, dizer os campos, seus tipos e o framework se encarrega de criar CRUD, os models, views, controllers
Gems
Rails trabalha com Ruby-gems que são uma espécie de aplicativos plugáveis ao framework que garantem dinamismo e produtividade na hora de extender a aplicação. Aqui.
Bundler
O Bundler fornece um ambiente consistente para projetos Ruby, rastreando e instalando as gems e versões exatas necessárias. O Bundler é uma saída do inferno das dependências e garante que as gems necessárias estejam presentes no projeto.
Rake
Rake é um executor de tarefas em Ruby. Backup do seu banco de dados, testes
coleta e geração de relatórios por exemplo. Essas são pequenas tarefas que, sem o Rake, seriam espalhadas por todo o seu projeto em arquivos diferentes.
Comandos Básicos do Zero à Aplicação Simples
Você deve seguir o tutorial da origem, ok? Aqui coloco apenas o resumão para você ver a simplicidade à criação.
Em local, para começar, você pode seguir com SQLite e, posteriormente, você faz o deploy da aplicação com o banco que preferir, Postgres por exemplo.
Primeiro passo: Instalar o Rails (sabendo que você precisa ter o Ruby instalado)
$ gem install rails
Com Rails instalado, você vai gerar sua aplicação inicial. App = nome da sua aplicação
$ rails new app
Agora você pode testar o comando Scaffold para criar uma primeira entidade.
`$ rails g scaffold person name:string bday:date age:numeric
Com esse comando você poderá criar, listar, atualizar ou deletar uma Pessoa no sistema, considerando os campos nome, aniversário e idade.
Agora, com o Scaffold feito, você roda um comando de migração
$ rake db:migrate
Agora é hora de ver a aplicação rodando, basta rodar o servidor.
$ rails s
Vá pro navegador, 127.0.0.1:3000 e teste sua aplicação.
Tá Renzo, mas Por que aprender Ruby on Rails?
“Colé Renzo, esperava ler esse post em 2007, 2008…”
Ainda em 2020, o Ruby continua sendo uma ótima opção de linguagem de desenvolvimento. Não existem linguagens de programação ‘ruins’ por si só; existem apenas linguagens mal escolhidas para casos de uso específicos. Portanto, se você sente que o Ruby parece ser um ótimo ajuste para você, não hesite, ele ainda está entre as principais tecnologias mais populares.
Quando o RoR entrou em cena em 2005, ele introduziu uma nova abordagem para criar aplicativos da Web. Uma das coisas que o Rails trouxe foi o paradigma de design de software de convenção sobre configuração que facilita o trabalho do desenvolvedor em vários níveis – por exemplo, eliminando a necessidade de escrever código padrão.
“O jeito Rails” liberou o dev das partes chatas do desenvolvimento, liberando-os para se concentrarem nos recursos de negócios e na lógica do aplicativo. Também aumentou a produtividade e ajudou os desenvolvedores a fornecer MVPs e aplicativos de inicialização muito mais rapidamente.
A criação de aplicativos no Rails é rápida e fácil, tornando “O CARA”se você estiver com orçamento e prazos apertados. Você coloca algo no ar rápido e se precisar evoluir não terá grandes dificuldades de encontrar profissionais remotos.
Bons desenvolvedores conseguirão surfar a onda do Rails e usar o tempo economizado para se concentrar nos recursos de negócios e ouvir as demandas dos usuários, colocando features no ar, rapidamente.
Nas mãos da turma mais senior, o Rails não seria uma melhor opção para aplicativos avançados e complexos. Aqui uma ressalva: Se você está modelando, desenhando, planejando um aplicativo complexo/grande, certamente fará uma arquitetura condizente. Essa arquitetura pode até ter Rails no meio, mas não há de se falar em apego no mundo da tecnologia… Escolha a ferramenta que se adeque melhor a cada cenário.
Em suma: Quer começar rápido, entregar valor em uma linguagem de alto nível, em um framework maduro, estável e produtivo com uma comunidade ativa, sabendo que depois de ter começado rápido você poderá seguir e crescer com essa aplicação sem muita preocupação, inclusive quando a aplicação crescer e demandar performance: vá de Rails, sem stress.