Araras Dev
Iniciando com Ruby on Rails
Luis Fernando Pimenta
Quem sou eu :
Bacharel em sistemas de informação - Asser Rio Claro
Especialização em desenvolvimento web - Claretiano
Desenvolvedor há mais 5 anos
Rubysta há mais de 1 ano
Empreendedor em desenvolvimento mobile e web, https://red4sis.com
Cronograma
● Ruby
● E testes?
● Github
● Heroku
● Docker
● Demo
Por que ruby on rails ?
Mundo java :
- Eclipse ou netbeans
- Jboss ou tomcat
- Milhares de libs
- Arquivos de configurações XMLs
- Tempo para confirgurar o projeto
- Navegadores abertos
Minha vontade ...
Buildando o projeto ...
Rotina :
Padrão de projeto
Não existe
● Se criou no eclipse, tem que seguir pelo eclipse ...
Resumindo mundo java ...
● Setup inicial complexo
● Versões do java
● Ambientes diferentes
● Baixa produtividade
● Configuração acoplada em quem criou o projeto
● Não existe um padrão de projeto
Ruby on rails
Imagine o que você
poderia construir se
você aprendeu Ruby
on Rails ...
Ruby on rails :
● Padrão MVC
● Existe um padrão de projeto
● Baixa curva de aprendizagem
● Qualquer editor ( atom, vscode, sublime )
● Máquina com poucos recursos para rodar
● Ambientes de desenvolvimento
● Ambientes de teste
● Comunidade ativa
● Várias GEMs
● Integrações com muita coisa
● Setup rápido
● Ideal pra MVP
● Ideal pra Startup
● Salário bom
Tá, mas que UTILIZA ?
● Basecamp
● GitHub
● Shopify
● Airbnb
● Twitch
● SoundCloud
● Hulu
Quem mais ?
● Fiver
● Kickstarter
● Slideshare
● ThemeForest
● hotelquando.com - ( meu cliente )
● Atualizecar - ( meu cliente )
● Localizadora - ( meu cliente )
GEMs
● Gemfile
Estrutura
Estrutura
Facilidade em criar e subir um projeto
● Ideal para startups
● Ideal para validar um MVP
● Seu cliente fica feliz
● Você fica feliz
Scaffold
● Que como a palavra diz, serve como um andaime para a nossa aplicação
● Gera os arquivos seguindo a arquitetura de aplicativos Rails, ou seja, ele cria um arquivo de modelo,
controlador, helper e as views necessárias.
Model
class Contato < ActiveRecord::Base
validates_presence_of :nome, :message => " - Deve ser preenchido"
validates_presence_of :telefone, :message => " - Deve ser preenchido"
end
Controller
# GET /contatos
# GET /contatos.json
def index
@contatos = Contato.all
respond_to do |format|
format.html # index.html.erb
format.json { render json: @contatos }
end
end
View
<h1>Listing contatos</h1>
<table>
<tr>
<th>Nome</th>
<th>Telefone</th>
<th></th>
<th></th>
<th></th>
</tr>
<% @contatos.each do |contato| %>
<tr>
<td><%= contato.nome %></td>
<td><%= contato.telefone %></td>
<td><%= link_to 'Show', contato %></td>
<td><%= link_to 'Edit', edit_contato_path(contato) %></td>
<td><%= link_to 'Destroy', contato, confirm: 'Are you sure?',
method: :delete %></td>
</tr>
<% end %>
</table>
<%= link_to 'New Contato', new_contato_path %>
JBUILDER
● Muito fácil em ter uma
API e trabalhar com json
Banco de dados
● Sqlite
● Postgres
● Mysql
Rotas
E pra rodar o projeto ?
● RVM - gerencia versões do ruby
● Instalar versão do RUBY e :
● bundle
● rails server
Mas e empregos, existe ?
● Sim, e muitos REMOTOS !
● Junior : de 2k a 4k
● Pleno : de 3k a 8k
● Senior : de 4k a ...
Devo começar então a aprender ?
E testes ?
● Rspec
Github
● Serve para versionar código
● Controla o código por BRANCHS
● Facilita desenvolvimento do código com muitas pessoas
● Evita ficar criar BACKUP local dos arquivos ¬¬
● Trabalho em equipe REMOTAMENTE
Heroku
● PaaS - Platform as a Service
● Plataforma como serviço
● Suporta várias linguagens
● Paga em $
● Inicia FREE
Docker
● Docker não é um sistema de virtualização tradicional
● O Docker possibilita o empacotamento de uma aplicação ou ambiente inteiro dentro de um
container, e a partir desse momento o ambiente inteiro torna-se portável para qualquer outro
Host que contenha o Docker instalado.
Docker
A hora do DEMO :
Contato
● pimenta@red4sis.com
● https://red4sis.com
● https://www.linkedin.com/in/luisfpimenta/
● https://twitter.com/luispimenta89
● https://www.facebook.com/luispimenta89
Criar o projeto
● rails new myapp
● rails new myapp -d postgresql
● cd myapp
● bundle install
● rake db:create
● rails server
Dúvidas ?
Referências
● https://skillcrush.com/2015/02/02/37-rails-sites/
● http://rubyonrails.org/
● https://brizeno.wordpress.com/2012/02/16/rails-basico-mvc-scaffold-e-migrations/
● https://www.udemy.com/git-e-github-para-iniciantes/
● https://www.heroku.com/
● https://github.com/
● https://gitlab.com/
● http://www.mundodocker.com.br/o-que-e-docker/

Iniciando com Ruby on Rails - Luiz Fernando Pimenta

  • 1.
    Araras Dev Iniciando comRuby on Rails Luis Fernando Pimenta
  • 2.
    Quem sou eu: Bacharel em sistemas de informação - Asser Rio Claro Especialização em desenvolvimento web - Claretiano Desenvolvedor há mais 5 anos Rubysta há mais de 1 ano Empreendedor em desenvolvimento mobile e web, https://red4sis.com
  • 3.
    Cronograma ● Ruby ● Etestes? ● Github ● Heroku ● Docker ● Demo
  • 4.
    Por que rubyon rails ? Mundo java : - Eclipse ou netbeans - Jboss ou tomcat - Milhares de libs - Arquivos de configurações XMLs - Tempo para confirgurar o projeto - Navegadores abertos
  • 7.
  • 8.
  • 9.
  • 10.
    Padrão de projeto Nãoexiste ● Se criou no eclipse, tem que seguir pelo eclipse ...
  • 13.
    Resumindo mundo java... ● Setup inicial complexo ● Versões do java ● Ambientes diferentes ● Baixa produtividade ● Configuração acoplada em quem criou o projeto ● Não existe um padrão de projeto
  • 15.
    Ruby on rails Imagineo que você poderia construir se você aprendeu Ruby on Rails ...
  • 16.
    Ruby on rails: ● Padrão MVC ● Existe um padrão de projeto ● Baixa curva de aprendizagem ● Qualquer editor ( atom, vscode, sublime ) ● Máquina com poucos recursos para rodar ● Ambientes de desenvolvimento ● Ambientes de teste ● Comunidade ativa ● Várias GEMs ● Integrações com muita coisa ● Setup rápido ● Ideal pra MVP ● Ideal pra Startup ● Salário bom
  • 17.
    Tá, mas queUTILIZA ? ● Basecamp ● GitHub ● Shopify ● Airbnb ● Twitch ● SoundCloud ● Hulu
  • 18.
    Quem mais ? ●Fiver ● Kickstarter ● Slideshare ● ThemeForest ● hotelquando.com - ( meu cliente ) ● Atualizecar - ( meu cliente ) ● Localizadora - ( meu cliente )
  • 19.
  • 20.
  • 21.
  • 22.
    Facilidade em criare subir um projeto ● Ideal para startups ● Ideal para validar um MVP ● Seu cliente fica feliz ● Você fica feliz
  • 23.
    Scaffold ● Que comoa palavra diz, serve como um andaime para a nossa aplicação ● Gera os arquivos seguindo a arquitetura de aplicativos Rails, ou seja, ele cria um arquivo de modelo, controlador, helper e as views necessárias.
  • 24.
    Model class Contato <ActiveRecord::Base validates_presence_of :nome, :message => " - Deve ser preenchido" validates_presence_of :telefone, :message => " - Deve ser preenchido" end
  • 25.
    Controller # GET /contatos #GET /contatos.json def index @contatos = Contato.all respond_to do |format| format.html # index.html.erb format.json { render json: @contatos } end end
  • 26.
    View <h1>Listing contatos</h1> <table> <tr> <th>Nome</th> <th>Telefone</th> <th></th> <th></th> <th></th> </tr> <% @contatos.eachdo |contato| %> <tr> <td><%= contato.nome %></td> <td><%= contato.telefone %></td> <td><%= link_to 'Show', contato %></td> <td><%= link_to 'Edit', edit_contato_path(contato) %></td> <td><%= link_to 'Destroy', contato, confirm: 'Are you sure?', method: :delete %></td> </tr> <% end %> </table> <%= link_to 'New Contato', new_contato_path %>
  • 27.
    JBUILDER ● Muito fácilem ter uma API e trabalhar com json
  • 28.
    Banco de dados ●Sqlite ● Postgres ● Mysql
  • 29.
  • 30.
    E pra rodaro projeto ? ● RVM - gerencia versões do ruby ● Instalar versão do RUBY e : ● bundle ● rails server
  • 31.
    Mas e empregos,existe ? ● Sim, e muitos REMOTOS ! ● Junior : de 2k a 4k ● Pleno : de 3k a 8k ● Senior : de 4k a ...
  • 44.
  • 45.
  • 46.
    Github ● Serve paraversionar código ● Controla o código por BRANCHS ● Facilita desenvolvimento do código com muitas pessoas ● Evita ficar criar BACKUP local dos arquivos ¬¬ ● Trabalho em equipe REMOTAMENTE
  • 47.
    Heroku ● PaaS -Platform as a Service ● Plataforma como serviço ● Suporta várias linguagens ● Paga em $ ● Inicia FREE
  • 48.
    Docker ● Docker nãoé um sistema de virtualização tradicional ● O Docker possibilita o empacotamento de uma aplicação ou ambiente inteiro dentro de um container, e a partir desse momento o ambiente inteiro torna-se portável para qualquer outro Host que contenha o Docker instalado.
  • 49.
  • 50.
    A hora doDEMO :
  • 51.
    Contato ● pimenta@red4sis.com ● https://red4sis.com ●https://www.linkedin.com/in/luisfpimenta/ ● https://twitter.com/luispimenta89 ● https://www.facebook.com/luispimenta89
  • 52.
    Criar o projeto ●rails new myapp ● rails new myapp -d postgresql ● cd myapp ● bundle install ● rake db:create ● rails server
  • 54.
  • 55.
    Referências ● https://skillcrush.com/2015/02/02/37-rails-sites/ ● http://rubyonrails.org/ ●https://brizeno.wordpress.com/2012/02/16/rails-basico-mvc-scaffold-e-migrations/ ● https://www.udemy.com/git-e-github-para-iniciantes/ ● https://www.heroku.com/ ● https://github.com/ ● https://gitlab.com/ ● http://www.mundodocker.com.br/o-que-e-docker/