RUBY ON RAILS
Porque programar deve ser Divertido ;)
LUIZ CARVALHO
Criador do Droido Mensagens
Pós Graduado em Telemática - IFTO
Bacharel em Ciência da Computação - UFT
Redesat
6 anos de Rails
Defensoria Pública do Tocantins
600K+(http://builtwith.com)
O que é Ruby on Rails?
Rails 4.1 Ruby 2.1
ÁGIL
DRY
Convetion over Configuration
O que é Ruby on Rails?
● Criado em 2003 por David Heinemeier
Hansson
● Mantido pelo Rails Core Team
● e mais de 3,400 contribuidores.
● Código Aberto (Github)
● Nginx
● Unicorn (Rack web)
● NodeJS
● Testes
● Integração contínua
● SEO (urls amigáveis)
Agile + Rails =
Font-end
Front-end
Front-end
Font-end
Comunidade nova, sem vinculo com outros sistemas de versionamento
Ruby
Java
Node.js
Python
Clojure
Scala
Grátis - $34.50 - $86,362.50
Redhat
VM Ware
2006-2007 - Twitter
Escalabilidade
Criação de estruturas e popularizadão
●Grupos: g1,g2,g3,g4
●Usuários: u1,u2,u3,u4
u1 = Usuario.new
(...)
g1 = Grupo.new
(...)
g1.usuarios =
[u1,u2,u3]
u2.grupos = [g1,
g3]
Banco de Dados
● Postgres
● Mysql
● Sqlite
● MongoDB
● (...)
R
E
S
T
ful
Index
Show
Edit/Update
New/Create
Admin?
gem 'activeadmin', github: 'gregbell/active_admin'
rails generate active_admin:install
rake db:migrate
rails generate active_admin:resource usuario
admin@example.com
password
Debug (pry)
Debug (better_errors, binding_of_caller)
Testes
Unitários (Rspec, minitest, test-unit, Bacon)
Browser(selenium-webrowser, Capybara, Webrat)
Contínuos (Guard, guard-rspec, ZenTest)
A/B (Vanity, Split, Seven Minutes ABs)
Distribuidos (Spork, Parallel test, Zeus)
Aceitação (Cucumber, Steak, Turnip)
Deploy(capistrano)
● Configura seu ambiente de desenvolvimento
○ cria links simbolicos para arquivos temporários e de configuração
○ copia seu código do servidor de versionamento
○ roda migrações de base de dados
○ baixa e instala dependências
○ faz backup e banco de dados
○ roda os testes
○ compila seus arquivos css e js
○ reinicia outros serviços
○ reinicia seu servidor
○ limpa arquivos desnecessários
Autenticação (devise)
○ Basic
○ Oauth
○ Registro de usuários
○ Confirmação via e-mail
○ Recuperação de senha
○ Rastreamento de usuários
○ Controle de tempo de sessão
○ Validação de e-mail e senha
○ Bloqueio de usuários por tentativas de acesso restrito
○ Permissão (cancan)
Gestor de Dependências (Bundle)
> bundle install
Mais e mais
● Sistema de busca, paginação e ordenação
Processos em background
● Qualidade de código
● E-mail
● Engines (blogs, e-commerce, redes sociais)
● CSS e JS
● Benchmarks
● Geração de PDF
● Pagamentos Online
● Gráficos
O que ganhamos?
● Precompiladores de CSS
● Precompiladores de JS
○ javascript não obstrisivo
○ turbolinks
○
● Sistema de busca, paginação e ordenação
● Segurança
○ XSS,
Perguntas?
www.RedRails.com.br
http://linkedin.com/in/luizcarvalhodev
https://github.com/LuizCarvalho/
http://www.facebook.com/LuizCarvalho.br
https://plus.google.com/+LuizCarvalhoDev
http://twitter.com/luizcarvalho

Rails: Porque programar deve ser divertido