Desenvolvimento ágil de software com Ruby on Rails
Rails e Rails, introdução e estudo de caso
1. Ruby e Rails
Introdução e estudo de caso
“Sistema de Inscrições Ultramacho”
JOHN CARNEIRO
john@sizy.com.br
@johnwmcarneiro
www.sizy.com.br
2. Quem sou eu?
Meu nome é John, sou...
• Fundador da Sizy (www.sizy.com.br)
• Empreendedor e administrador por formação
• Programador por curiosidade
• Sonhador
• Botafoguense, vai fogo!
• Já trabalhei com ASP Clássico ¬¬
• PHP até ZF1, depois cansei
• Estudei um pouco de Java Web, hoje o livro serve ajudar na altura do monitor
• Estudei Python, respeito, mas algumas coisas me incomodam
• Encontrei o Ruby <3
5. O que é o Ruby?
Ruby é uma linguagem de programação dinâmica, open source com foco na simplicidade e na
produtividade.
Criada por Yukihiro “Matz” Matsumoto em 1995 para ser mais poderosa do que Perl e mais
orientada a objetos que Python.
Algumas características:
Tipagem dinâmica, mas forte. Isso significa que todas as variáveis devem ter um tipo (fazer parte
de uma classe), mas a classe pode ser alterada dinamicamente.
Todas as variáveis são objetos, onde até os "tipos primitivos" (tais como inteiro, real, entre
outros) são classes. Através do RubyGems, é possível instalar e atualizar bibliotecas com uma
linha de comando, de maneira similar ao APT do Debian Linux.
Code blocks (blocos de código) passados como parâmetros para métodos; permite a criação
de clausuras.
Mixins, uma forma de emular a herança múltipla.
Métodos de geração de código em tempo real, como os "attribute accessors”.
Hoje é uma das 10 linguagens mais usadas.
15. O que é o Ruby on Rails?
É um meta-framework open source para criação de
aplicações web no padrão MVC.
Criado por David Heinemeier Hansson “DHH”, ele foi
extraído do seu projeto Basecamp, um sistema para
gerenciar projetos, hoje com mais de 2,5 milhões de
contas.
16. Rails e produtividade
O Rails segue dois conceitos que visam aumentar a
produtividade do desenvolvedor: DRY e COC.
Don’t Repeat Yourself: Não se repita!
Convention Over Configuration: Deve-se assumir
valores padrão onde existe uma convenção.
17. Principais bibliotecas
ActiveRecord e ActiveModel (M)
ActionPack (VC e API)
ActionMailer
ActiveJob (Jobs in the background)
ActionCable (Websocket)
ActiveStorage
18. Algumas características
Migrations
Assets (CoffeeScript, Sass, Imagens, Fonts) Concatena, “minifica” ou comprimi JavasScript e CSS.
Validations, Associations, Query Interface...
Helpers
Internacionalização
Rotas
Ambiente (Produção, Desenvolvimento e teste)
Views em formatos diversos (HTML, HAML, JS, XML, Json e etc)
Jobs (Atraso de tarefas...)
Command line (rails new, rake db:create rails g migration ...)
ActionCable (websocket, incorporar funções para uso em tempo real)
Teste (Por padrão o Minitest)
Cache (Memcached, Memory, File System,...)
Debug (Controller, views,....) e Logs
E muito mais...
19. Aplicações feitas em Rails
Basecamp
GitHub
Shopify
Airbnb
Soundclound
Zendesk
Square
Highrise
E muito mais...
20. Algumas gems....
Devise - Autenticação, Cadastro, Resetar senha, confirmação de cadastro e bloqueio de
usuário.
SimpleForm
CanCanCan - Autorização de usuário
CarrierWave - Upload de arquivos
Capistrano - Automação de deploy
Cocoon - Nested Form
Rspec, Shoulda Matchers, FactoryGirl e FFaker. - Testes
PgSearch - Full Text Search com PostgreSQL
Pry - Permiti interagir com um ponto do código
Griddler - Receba e-mails na sua aplicação
Whenever - Cron
Backup
DelayedJob, Resque e sidekiq - Tarefas em background
RailsAdmin - Painel Administrativo
22. Obrigado!
John Carneiro
(65) 9 8455-8787
(65) 9 8468-2368 (WhatsApp)
john@sizy.com.br
www.sizy.com.br
https://www.facebook.com/JohnWMCarneiro
https://twitter.com/johnwmcarneiro
https://www.linkedin.com/in/johnwmcarneiro/
“O homem é do tamanho do seu sonho.”
Fernando Pessoa