SlideShare uma empresa Scribd logo
1 de 22
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
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
puts “Olá DevMT”
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.
Tipagem dinâmica e forte
Tudo é objeto
Exemplo de “Code Blocks”
Exemplo de “Code Blocks”
Mixins (Herança múltipla)
Mixins
included é um callback da classe Module,
que é acionado sempre o módulo é incluído
em outro módulo ou classe.
Metaprogramação
Ruby permite adicionar
outros métodos e operações
aos objetos em tempo de
execução
“Código que gera código”
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.
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.
Principais bibliotecas
ActiveRecord e ActiveModel (M)
ActionPack (VC e API)
ActionMailer
ActiveJob (Jobs in the background)
ActionCable (Websocket)
ActiveStorage
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...
Aplicações feitas em Rails
Basecamp
GitHub
Shopify
Airbnb
Soundclound
Zendesk
Square
Highrise
E muito mais...
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
Estudo de caso
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

Mais conteúdo relacionado

Semelhante a Rails e Rails, introdução e estudo de caso

Ruby on Rails - Filosofia e Prática
Ruby on Rails - Filosofia e PráticaRuby on Rails - Filosofia e Prática
Ruby on Rails - Filosofia e PráticaGabriel Molter
 
Ruby on Rails e o Mercado
Ruby on Rails e o MercadoRuby on Rails e o Mercado
Ruby on Rails e o MercadoJulio Monteiro
 
Ruby on Rails Colocando a web nos trilhos
Ruby on Rails Colocando a web nos trilhosRuby on Rails Colocando a web nos trilhos
Ruby on Rails Colocando a web nos trilhosjpaulolins
 
ruby on rails e o mercado
ruby on rails e o mercadoruby on rails e o mercado
ruby on rails e o mercadoelliando dias
 
Introdução ao Ruby on Rails (SOCIESC)
Introdução ao Ruby on Rails (SOCIESC)Introdução ao Ruby on Rails (SOCIESC)
Introdução ao Ruby on Rails (SOCIESC)Julio Monteiro
 
Introdução ao Ruby on Rails (InstallFest 2006)
Introdução ao Ruby on Rails (InstallFest 2006)Introdução ao Ruby on Rails (InstallFest 2006)
Introdução ao Ruby on Rails (InstallFest 2006)Julio Monteiro
 
Desenvolvimento web ágil e descomplicado usando ruby on rails
Desenvolvimento web ágil e descomplicado usando ruby on railsDesenvolvimento web ágil e descomplicado usando ruby on rails
Desenvolvimento web ágil e descomplicado usando ruby on railsMaurício Linhares
 
Como Rails e DHH revolucionaram a engenharia de software
Como Rails e DHH revolucionaram a engenharia de software Como Rails e DHH revolucionaram a engenharia de software
Como Rails e DHH revolucionaram a engenharia de software Fernando Henriques
 
Introdução ao php
Introdução ao phpIntrodução ao php
Introdução ao phpMiguel Pinto
 
Palestra Faculdade Lourenço Filho
Palestra Faculdade Lourenço FilhoPalestra Faculdade Lourenço Filho
Palestra Faculdade Lourenço Filhorafarubert
 
Abordagem geral - Ruby on rails
Abordagem geral - Ruby on railsAbordagem geral - Ruby on rails
Abordagem geral - Ruby on railsCOTIC-PROEG (UFPA)
 
Desenvolvimento ágil de software com Ruby on Rails
Desenvolvimento ágil de software com Ruby on RailsDesenvolvimento ágil de software com Ruby on Rails
Desenvolvimento ágil de software com Ruby on RailsLucas Caton
 

Semelhante a Rails e Rails, introdução e estudo de caso (20)

Mini-curso RoR - Aula 01
Mini-curso RoR - Aula 01Mini-curso RoR - Aula 01
Mini-curso RoR - Aula 01
 
Ruby on Rails - Filosofia e Prática
Ruby on Rails - Filosofia e PráticaRuby on Rails - Filosofia e Prática
Ruby on Rails - Filosofia e Prática
 
Ruby on Rails e o Mercado
Ruby on Rails e o MercadoRuby on Rails e o Mercado
Ruby on Rails e o Mercado
 
Conhecendo o Ruby on Rails
Conhecendo o Ruby on RailsConhecendo o Ruby on Rails
Conhecendo o Ruby on Rails
 
Ruby on Rails Colocando a web nos trilhos
Ruby on Rails Colocando a web nos trilhosRuby on Rails Colocando a web nos trilhos
Ruby on Rails Colocando a web nos trilhos
 
ruby on rails e o mercado
ruby on rails e o mercadoruby on rails e o mercado
ruby on rails e o mercado
 
Ruby e Rails
Ruby e RailsRuby e Rails
Ruby e Rails
 
Introdução ao Ruby on Rails (SOCIESC)
Introdução ao Ruby on Rails (SOCIESC)Introdução ao Ruby on Rails (SOCIESC)
Introdução ao Ruby on Rails (SOCIESC)
 
Rails asservice
Rails asserviceRails asservice
Rails asservice
 
Ruby and Rails
Ruby and RailsRuby and Rails
Ruby and Rails
 
XPT Framework
XPT FrameworkXPT Framework
XPT Framework
 
Introdução ao Ruby on Rails (InstallFest 2006)
Introdução ao Ruby on Rails (InstallFest 2006)Introdução ao Ruby on Rails (InstallFest 2006)
Introdução ao Ruby on Rails (InstallFest 2006)
 
Desenvolvimento web ágil e descomplicado usando ruby on rails
Desenvolvimento web ágil e descomplicado usando ruby on railsDesenvolvimento web ágil e descomplicado usando ruby on rails
Desenvolvimento web ágil e descomplicado usando ruby on rails
 
Como Rails e DHH revolucionaram a engenharia de software
Como Rails e DHH revolucionaram a engenharia de software Como Rails e DHH revolucionaram a engenharia de software
Como Rails e DHH revolucionaram a engenharia de software
 
Ruby on rails porque usar rails?!
Ruby on rails   porque usar rails?!Ruby on rails   porque usar rails?!
Ruby on rails porque usar rails?!
 
Introdução ao php
Introdução ao phpIntrodução ao php
Introdução ao php
 
Palestra Faculdade Lourenço Filho
Palestra Faculdade Lourenço FilhoPalestra Faculdade Lourenço Filho
Palestra Faculdade Lourenço Filho
 
Abordagem geral - Ruby on rails
Abordagem geral - Ruby on railsAbordagem geral - Ruby on rails
Abordagem geral - Ruby on rails
 
Ruby on rails
Ruby on railsRuby on rails
Ruby on rails
 
Desenvolvimento ágil de software com Ruby on Rails
Desenvolvimento ágil de software com Ruby on RailsDesenvolvimento ágil de software com Ruby on Rails
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
  • 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.
  • 8. Exemplo de “Code Blocks”
  • 9. Exemplo de “Code Blocks”
  • 11. Mixins included é um callback da classe Module, que é acionado sempre o módulo é incluído em outro módulo ou classe.
  • 12. Metaprogramação Ruby permite adicionar outros métodos e operações aos objetos em tempo de execução “Código que gera código”
  • 13.
  • 14.
  • 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