SlideShare uma empresa Scribd logo
1 de 28
Ruby and Rails
Linguagem de
Programação
Framework ou
Meta Framework
de desenvolvimento
Ruby and Rails
Ruby = É uma Linguagem de Programação dinâmica, open source com foco na
simplicidade e na produtividade. Tem uma sintaxe elegante de leitura natural e
fácil escrita. É interpretada, com tipagem Dinâmica, Forte e totalmente
Orientada a Objetos.
O seu criador, Yukihiro “Matz” Matsumoto, uniu partes das suas linguagens
favoritas (Perl, Smalltalk, Eiffel, Ada, Python e Lisp) para formar uma nova
linguagem que equilibra a programação funcional com a programação
imperativa.
5.times { print "Nós *amamos* o Ruby -- ele é fantástico!" }
Ruby and Rails
Criador do Ruby: Yukihiro “Matz” Matsumoto
Ruby and Rails
Influências por Linguagem

Linguagem Prática (Perl)

Orientação a Objetos (Smalltalk)

Metaprogramação (Smalltalk)

Sintaxe (Smalltalk, Eiffel e Ada)

Tratamento de Exceções(java e Python ++)
s = "texto"
s.length => 5
s.class => String
1.next => 2
1.class => Fixnum
x = nil
x.class => NilClass
1.73.to_i => 1
1.73.class => Float
Conversão de Tipos
Todos os Tipos Primitivos Possuem
Conversão para Outros Tipos
Tudo é um Objeto
Até o Nulo (Nil) é um Objeto
Pura Orientação a Objetos
Linguagem Dinâmica
Não Declaramos Tipos de Variáreis
Ruby and Rails
Ruby and Rails
Como começar a programar em Ruby
O interpretador interativo é irb no Terminal(caso esteja utilizando Linux ou Mac) ou
Cmd(Se está utilizando o Windows). Para começar uma sessão, digite:
Terminal
irb
Ruby Online:
http://tryruby.org
Ruby and Rails
Ruby and Rails
Ruby and Rails
O que é RubyGems?
RubyGems é o sistema de empacotamento para o Ruby.
RubyGems está para o Ruby como o Apt-get está para o Debian/Ubuntu.
Sendo um sistema de gerenciamento de pacotes, o RubyGems distribui de forma
fácil e padronizada bibliotecas e programas em Ruby.
Para saber quais gems você tem instalado, use o comando:
gem list
Ruby and Rails
Gerenciador de dependências Bundler
Assegura quais versões são necessárias para sua aplicação, bem
como resolução de dependência entre elas.
http://bundler.io/
gem install bundler rails
bundler install
Ruby and Rails
O framework Ruby on Rails
Ruby on Rails é um framework livre (meta-framework) que promete aumentar
velocidade e facilidade no desenvolvimento de sites orientados a banco de dados
(database-driven web sites), uma vez que é possível criar aplicações com base em
estruturas pré-definidas. Frequentemente referenciado como Rails ou RoR, o Ruby
on Rails é um projeto de código aberto escrito na linguagem de programação Ruby.
As aplicações criadas utilizando o framework Rails são desenvolvidas com base no
padrão de arquitetura MVC (Model-View-Controller).
História
Ruby on Rails foi uma extração de David Heinemeier Hansson de um projeto seu, o
gerenciador de projetos Basecamp. Foi lançado a público pela primeira vez em 2003.
Foi lançado oficialmente 2004.
Criador do Ruby on Rails: David Heinemeier Hansson - DHH
Ruby and Rails
Criando um aplicação Rails
Ruby and Rails
Ruby and Rails
DRY e Convention over configuration
Dont Repeat Yourselff (não se repita), termo utilizado na engenharia de software quando
buscamos a não repetição de ações de forma "desnecessária". É o conceito por trás da
técnica de definir nomes, propriedades e códigos em somente um lugar e reaproveitar essas
informações em outros.
Convention over configuration (Conversão em vez de configuração):
Na maioria dos casos, usamos convenções no dia-a-dia da programação, em geral para
facilitar o entendimento e manutenção por parte de outros desenvolvedores. Sabendo disso,
e sabendo que o tempo gasto para configurar XML em alguns frameworks de outras
linguagens é extremamente alto, decidiu-se adotar esse conceito.
Ele diz basicamente que deve-se assumir valores padrão onde existe uma convenção. Se o
desenvolvedor quiser, pode-se sobrescrever essa convenção com o valor necessário. Por
exemplo, uma classe User pode ter seus dados armazenados na tabela Customer. Seguindo
a convenção, seria na tabela Users. Com isso, o tempo de desenvolvimento cai ainda mais.
Criando um aplicação Rails
Ruby and Rails
Ruby and Rails
Ruby and Rails
Por que deveria aprender Rails
O Ruby on Rails é o framework número das StartUps.
Foco no negócio 90% e desenvolvimento 10%
Rápida resposta a mudanças no negócio
Rails é por padrão RESTful (REpresentational State Transfer)
Baixa curva de aprendizagem
Ruby and Rails
Pastas importantes
App → controllers, models, views
Config
Db
Public
Test
Vendor
Ruby and Rails
Quem usa?
Ruby and Rails
Deployment
Ruby and Rails
Heroku create
Git push heroku master
Deployment
Ruby and Rails
IDE (Integrated Development Environment ou Ambiente de Desenvolvimento Integrado)
Ruby and Rails
IDE (Integrated Development Environment ou Ambiente de Desenvolvimento Integrado)
Ruby and Rails
IDE (Integrated Development Environment ou Ambiente de Desenvolvimento Integrado)
Ruby and Rails
Qualidade de Código
Ruby and Rails
Intregração Continua (Continuous Integration) CI
Ruby and Rails
A influência do Ecossistema Ruby e Rails
Ruby and Rails
Site: http://gilcierweb.com.br/
Github: https://github.com/gilcierweb
Projeto Open Source: https://github.com/gilcierweb/CMS-Rails
Ruby on Rails Nordeste
Phoenix Framework Brasil
Elixir Brasil
Laravel Brasil
Instalando Ruby e Rails no Ubuntu
https://gorails.com/setup/ubuntu/14.04
Referências:
https://www.ruby-lang.org/pt/
http://ruby-doc.org/core-2.3.0/
http://guides.rubyonrails.org/
https://www.caelum.com.br/apostila-ruby-on-rails/
http://tryruby.org
https://www.heroku.com/
https://codeclimate.com/
https://travis-ci.org/

Mais conteúdo relacionado

Mais procurados

FISL12. Web Services e Computação em Nuvem com PHP
FISL12. Web Services e Computação em Nuvem com PHPFISL12. Web Services e Computação em Nuvem com PHP
FISL12. Web Services e Computação em Nuvem com PHPFlávio Lisboa
 
FireDAC: do básico ao avançado - Embarcadero Conference 2014
FireDAC: do básico ao avançado - Embarcadero Conference 2014FireDAC: do básico ao avançado - Embarcadero Conference 2014
FireDAC: do básico ao avançado - Embarcadero Conference 2014Alan Glei
 
Entendendo Conceitos Caching com PHP
Entendendo Conceitos Caching com PHPEntendendo Conceitos Caching com PHP
Entendendo Conceitos Caching com PHPAdler Medrado
 
Big data da teoria à prática
Big data  da teoria à práticaBig data  da teoria à prática
Big data da teoria à práticaMario Guedes
 
Curso Java Web (JAVA, JSF, JPA)
Curso Java Web (JAVA, JSF, JPA)Curso Java Web (JAVA, JSF, JPA)
Curso Java Web (JAVA, JSF, JPA)Marcos Batista
 
Fundamentos do asp.net
Fundamentos do asp.netFundamentos do asp.net
Fundamentos do asp.netleojr_0
 
Ferramentas Livres Para Desenvolvimento com PHP
Ferramentas Livres Para Desenvolvimento com PHPFerramentas Livres Para Desenvolvimento com PHP
Ferramentas Livres Para Desenvolvimento com PHPAdler Medrado
 
Modularização via BPL - Abordagem Prática para DataSnap & Front-end
Modularização via BPL - Abordagem Prática para DataSnap & Front-endModularização via BPL - Abordagem Prática para DataSnap & Front-end
Modularização via BPL - Abordagem Prática para DataSnap & Front-endMario Guedes
 
Integrando sua App ao Mundo via REST/JSON
Integrando sua App ao Mundo via REST/JSONIntegrando sua App ao Mundo via REST/JSON
Integrando sua App ao Mundo via REST/JSONMario Guedes
 

Mais procurados (14)

FISL12. Web Services e Computação em Nuvem com PHP
FISL12. Web Services e Computação em Nuvem com PHPFISL12. Web Services e Computação em Nuvem com PHP
FISL12. Web Services e Computação em Nuvem com PHP
 
Introdução ao PHP5
Introdução ao PHP5Introdução ao PHP5
Introdução ao PHP5
 
FireDAC: do básico ao avançado - Embarcadero Conference 2014
FireDAC: do básico ao avançado - Embarcadero Conference 2014FireDAC: do básico ao avançado - Embarcadero Conference 2014
FireDAC: do básico ao avançado - Embarcadero Conference 2014
 
Entendendo Conceitos Caching com PHP
Entendendo Conceitos Caching com PHPEntendendo Conceitos Caching com PHP
Entendendo Conceitos Caching com PHP
 
Big data da teoria à prática
Big data  da teoria à práticaBig data  da teoria à prática
Big data da teoria à prática
 
Curso asp - basico
Curso   asp - basicoCurso   asp - basico
Curso asp - basico
 
Curso Java Web (JAVA, JSF, JPA)
Curso Java Web (JAVA, JSF, JPA)Curso Java Web (JAVA, JSF, JPA)
Curso Java Web (JAVA, JSF, JPA)
 
Fundamentos do asp.net
Fundamentos do asp.netFundamentos do asp.net
Fundamentos do asp.net
 
Ferramentas Livres Para Desenvolvimento com PHP
Ferramentas Livres Para Desenvolvimento com PHPFerramentas Livres Para Desenvolvimento com PHP
Ferramentas Livres Para Desenvolvimento com PHP
 
Modularização via BPL - Abordagem Prática para DataSnap & Front-end
Modularização via BPL - Abordagem Prática para DataSnap & Front-endModularização via BPL - Abordagem Prática para DataSnap & Front-end
Modularização via BPL - Abordagem Prática para DataSnap & Front-end
 
Palestra institucional Interna | Meet and Greet
Palestra institucional Interna | Meet and GreetPalestra institucional Interna | Meet and Greet
Palestra institucional Interna | Meet and Greet
 
Ruby e rails
Ruby e railsRuby e rails
Ruby e rails
 
Integrando sua App ao Mundo via REST/JSON
Integrando sua App ao Mundo via REST/JSONIntegrando sua App ao Mundo via REST/JSON
Integrando sua App ao Mundo via REST/JSON
 
A Linguagem Php
A Linguagem PhpA Linguagem Php
A Linguagem Php
 

Destaque

Use Case Driven Development in Symfony
Use Case Driven Development in SymfonyUse Case Driven Development in Symfony
Use Case Driven Development in SymfonyBartosz Zasada
 
Кэширование в Web, php и symfony
Кэширование в Web, php и symfonyКэширование в Web, php и symfony
Кэширование в Web, php и symfonyAlexander Morozov
 
Functional web with elixir and elm in phoenix
Functional web with elixir and elm in phoenixFunctional web with elixir and elm in phoenix
Functional web with elixir and elm in phoenixIzzet Mustafaiev
 
MidwestPHP 2016 - Adventures in Laravel 5
MidwestPHP 2016 - Adventures in Laravel 5 MidwestPHP 2016 - Adventures in Laravel 5
MidwestPHP 2016 - Adventures in Laravel 5 Joe Ferguson
 

Destaque (7)

Умное кэширование в Rails
Умное кэширование в RailsУмное кэширование в Rails
Умное кэширование в Rails
 
Use Case Driven Development in Symfony
Use Case Driven Development in SymfonyUse Case Driven Development in Symfony
Use Case Driven Development in Symfony
 
Кэширование в Web, php и symfony
Кэширование в Web, php и symfonyКэширование в Web, php и symfony
Кэширование в Web, php и symfony
 
Functional web with elixir and elm in phoenix
Functional web with elixir and elm in phoenixFunctional web with elixir and elm in phoenix
Functional web with elixir and elm in phoenix
 
введение в Laravel 5
введение в Laravel 5введение в Laravel 5
введение в Laravel 5
 
Phoenix Framework
Phoenix FrameworkPhoenix Framework
Phoenix Framework
 
MidwestPHP 2016 - Adventures in Laravel 5
MidwestPHP 2016 - Adventures in Laravel 5 MidwestPHP 2016 - Adventures in Laravel 5
MidwestPHP 2016 - Adventures in Laravel 5
 

Semelhante a Ruby on Rails Framework

Desenvolvimento Ágil com Rails GURUSC 2011
Desenvolvimento Ágil com Rails GURUSC 2011Desenvolvimento Ágil com Rails GURUSC 2011
Desenvolvimento Ágil com Rails GURUSC 2011Andre Bernardes
 
Ruby on Rails e o Mercado
Ruby on Rails e o MercadoRuby on Rails e o Mercado
Ruby on Rails e o MercadoJulio Monteiro
 
Mini-curso RubyOnRails CESOL
Mini-curso RubyOnRails CESOLMini-curso RubyOnRails CESOL
Mini-curso RubyOnRails CESOLtarginosilveira
 
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 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
 
Palestra Faculdade Lourenço Filho
Palestra Faculdade Lourenço FilhoPalestra Faculdade Lourenço Filho
Palestra Faculdade Lourenço Filhorafarubert
 
Ruby on rails impressione a você mesmo, seu chefe e seu cliente
Ruby on rails  impressione a você mesmo, seu chefe e seu clienteRuby on rails  impressione a você mesmo, seu chefe e seu cliente
Ruby on rails impressione a você mesmo, seu chefe e seu clienteRodrigo Urubatan
 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Railshome
 
Desenvolvimento web com Ruby on Rails (parte 1)
Desenvolvimento web com Ruby on Rails (parte 1)Desenvolvimento web com Ruby on Rails (parte 1)
Desenvolvimento web com Ruby on Rails (parte 1)Joao Lucas Santana
 

Semelhante a Ruby on Rails Framework (20)

Desenvolvimento Ágil com Rails GURUSC 2011
Desenvolvimento Ágil com Rails GURUSC 2011Desenvolvimento Ágil com Rails GURUSC 2011
Desenvolvimento Ágil com Rails GURUSC 2011
 
Ruby on Rails e o Mercado
Ruby on Rails e o MercadoRuby on Rails e o Mercado
Ruby on Rails e o Mercado
 
Ruby on rails porque usar rails?!
Ruby on rails   porque usar rails?!Ruby on rails   porque usar rails?!
Ruby on rails porque usar rails?!
 
Mini-curso RubyOnRails CESOL
Mini-curso RubyOnRails CESOLMini-curso RubyOnRails CESOL
Mini-curso RubyOnRails CESOL
 
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
 
Ruby
RubyRuby
Ruby
 
Ruby & Rails
Ruby & RailsRuby & Rails
Ruby & Rails
 
Desenvolvimento agil ifc
Desenvolvimento agil ifcDesenvolvimento agil ifc
Desenvolvimento agil ifc
 
Mini-curso RoR - Aula 01
Mini-curso RoR - Aula 01Mini-curso RoR - Aula 01
Mini-curso RoR - Aula 01
 
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)
 
Ruby on Rails
Ruby on RailsRuby on Rails
Ruby on Rails
 
Ruby e Rails
Ruby e RailsRuby e Rails
Ruby e Rails
 
Ruby
RubyRuby
Ruby
 
Rail road
Rail roadRail road
Rail road
 
Palestra Faculdade Lourenço Filho
Palestra Faculdade Lourenço FilhoPalestra Faculdade Lourenço Filho
Palestra Faculdade Lourenço Filho
 
Ruby on rails impressione a você mesmo, seu chefe e seu cliente
Ruby on rails  impressione a você mesmo, seu chefe e seu clienteRuby on rails  impressione a você mesmo, seu chefe e seu cliente
Ruby on rails impressione a você mesmo, seu chefe e seu cliente
 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Rails
 
Desenvolvimento web com Ruby on Rails (parte 1)
Desenvolvimento web com Ruby on Rails (parte 1)Desenvolvimento web com Ruby on Rails (parte 1)
Desenvolvimento web com Ruby on Rails (parte 1)
 
Ruby on rails
Ruby on railsRuby on rails
Ruby on rails
 

Ruby on Rails Framework

  • 1. Ruby and Rails Linguagem de Programação Framework ou Meta Framework de desenvolvimento
  • 2. Ruby and Rails Ruby = É uma Linguagem de Programação dinâmica, open source com foco na simplicidade e na produtividade. Tem uma sintaxe elegante de leitura natural e fácil escrita. É interpretada, com tipagem Dinâmica, Forte e totalmente Orientada a Objetos. O seu criador, Yukihiro “Matz” Matsumoto, uniu partes das suas linguagens favoritas (Perl, Smalltalk, Eiffel, Ada, Python e Lisp) para formar uma nova linguagem que equilibra a programação funcional com a programação imperativa. 5.times { print "Nós *amamos* o Ruby -- ele é fantástico!" }
  • 3. Ruby and Rails Criador do Ruby: Yukihiro “Matz” Matsumoto
  • 4. Ruby and Rails Influências por Linguagem  Linguagem Prática (Perl)  Orientação a Objetos (Smalltalk)  Metaprogramação (Smalltalk)  Sintaxe (Smalltalk, Eiffel e Ada)  Tratamento de Exceções(java e Python ++)
  • 5. s = "texto" s.length => 5 s.class => String 1.next => 2 1.class => Fixnum x = nil x.class => NilClass 1.73.to_i => 1 1.73.class => Float Conversão de Tipos Todos os Tipos Primitivos Possuem Conversão para Outros Tipos Tudo é um Objeto Até o Nulo (Nil) é um Objeto Pura Orientação a Objetos Linguagem Dinâmica Não Declaramos Tipos de Variáreis Ruby and Rails
  • 6. Ruby and Rails Como começar a programar em Ruby O interpretador interativo é irb no Terminal(caso esteja utilizando Linux ou Mac) ou Cmd(Se está utilizando o Windows). Para começar uma sessão, digite: Terminal irb Ruby Online: http://tryruby.org
  • 9. Ruby and Rails O que é RubyGems? RubyGems é o sistema de empacotamento para o Ruby. RubyGems está para o Ruby como o Apt-get está para o Debian/Ubuntu. Sendo um sistema de gerenciamento de pacotes, o RubyGems distribui de forma fácil e padronizada bibliotecas e programas em Ruby. Para saber quais gems você tem instalado, use o comando: gem list
  • 10. Ruby and Rails Gerenciador de dependências Bundler Assegura quais versões são necessárias para sua aplicação, bem como resolução de dependência entre elas. http://bundler.io/ gem install bundler rails bundler install
  • 11. Ruby and Rails O framework Ruby on Rails Ruby on Rails é um framework livre (meta-framework) que promete aumentar velocidade e facilidade no desenvolvimento de sites orientados a banco de dados (database-driven web sites), uma vez que é possível criar aplicações com base em estruturas pré-definidas. Frequentemente referenciado como Rails ou RoR, o Ruby on Rails é um projeto de código aberto escrito na linguagem de programação Ruby. As aplicações criadas utilizando o framework Rails são desenvolvidas com base no padrão de arquitetura MVC (Model-View-Controller). História Ruby on Rails foi uma extração de David Heinemeier Hansson de um projeto seu, o gerenciador de projetos Basecamp. Foi lançado a público pela primeira vez em 2003. Foi lançado oficialmente 2004.
  • 12. Criador do Ruby on Rails: David Heinemeier Hansson - DHH Ruby and Rails
  • 13. Criando um aplicação Rails Ruby and Rails
  • 14. Ruby and Rails DRY e Convention over configuration Dont Repeat Yourselff (não se repita), termo utilizado na engenharia de software quando buscamos a não repetição de ações de forma "desnecessária". É o conceito por trás da técnica de definir nomes, propriedades e códigos em somente um lugar e reaproveitar essas informações em outros. Convention over configuration (Conversão em vez de configuração): Na maioria dos casos, usamos convenções no dia-a-dia da programação, em geral para facilitar o entendimento e manutenção por parte de outros desenvolvedores. Sabendo disso, e sabendo que o tempo gasto para configurar XML em alguns frameworks de outras linguagens é extremamente alto, decidiu-se adotar esse conceito. Ele diz basicamente que deve-se assumir valores padrão onde existe uma convenção. Se o desenvolvedor quiser, pode-se sobrescrever essa convenção com o valor necessário. Por exemplo, uma classe User pode ter seus dados armazenados na tabela Customer. Seguindo a convenção, seria na tabela Users. Com isso, o tempo de desenvolvimento cai ainda mais.
  • 15. Criando um aplicação Rails Ruby and Rails
  • 17. Ruby and Rails Por que deveria aprender Rails O Ruby on Rails é o framework número das StartUps. Foco no negócio 90% e desenvolvimento 10% Rápida resposta a mudanças no negócio Rails é por padrão RESTful (REpresentational State Transfer) Baixa curva de aprendizagem
  • 18. Ruby and Rails Pastas importantes App → controllers, models, views Config Db Public Test Vendor
  • 21. Ruby and Rails Heroku create Git push heroku master Deployment
  • 22. Ruby and Rails IDE (Integrated Development Environment ou Ambiente de Desenvolvimento Integrado)
  • 23. Ruby and Rails IDE (Integrated Development Environment ou Ambiente de Desenvolvimento Integrado)
  • 24. Ruby and Rails IDE (Integrated Development Environment ou Ambiente de Desenvolvimento Integrado)
  • 26. Ruby and Rails Intregração Continua (Continuous Integration) CI
  • 27. Ruby and Rails A influência do Ecossistema Ruby e Rails
  • 28. Ruby and Rails Site: http://gilcierweb.com.br/ Github: https://github.com/gilcierweb Projeto Open Source: https://github.com/gilcierweb/CMS-Rails Ruby on Rails Nordeste Phoenix Framework Brasil Elixir Brasil Laravel Brasil Instalando Ruby e Rails no Ubuntu https://gorails.com/setup/ubuntu/14.04 Referências: https://www.ruby-lang.org/pt/ http://ruby-doc.org/core-2.3.0/ http://guides.rubyonrails.org/ https://www.caelum.com.br/apostila-ruby-on-rails/ http://tryruby.org https://www.heroku.com/ https://codeclimate.com/ https://travis-ci.org/