51
RUBY ON RAILS Porque programar deve ser Divertido ;)

Rails: Porque programar deve ser divertido

Embed Size (px)

Citation preview

RUBY ON RAILSPorque 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

Redhat

VM Ware

2006-2007 - TwitterEscalabilidadeCriaçã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● (...)

REST

ful

Index

Show

Edit/Update

New/Create

Admin?gem 'activeadmin', github: 'gregbell/active_admin'rails generate active_admin:install

rake db:migraterails generate active_admin:resource usuario

[email protected]

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,