SlideShare une entreprise Scribd logo
1  sur  22
Télécharger pour lire hors ligne
Ruby on Rails
Introdução ao framework

Guilherme Theodoro Carlos
www.showthecode.com.br
“There is something distinct about the Rails philosophy in
comparison to the Java or .NET environments. If you are the
type of person who "thinks in code" and likes to work with
scripts to get things done, Rails may be a great fit for you.”
— Justin James, TechRepublic.com
O que é Ruby?
➔ Linguagem dinâmica e de código aberto
desenvolvida em C
➔ Tem foco na simplicidade e produtividade
➔ Puramente orientada à objetos
➔ Baseada em Perl, Smalltalk e LISP
➔ Criada em 1995 por Yukihiro Matsumoto (Matz)
O que é Ruby on Rails?
➔ Framework de código aberto desenvolvido em Ruby
➔ Tem por objetivo o desenvolvimento rápido
e fácil de aplicações web
➔ Convenção em vez de configuração
➔ Don’t Repeat Yourself
➔ Criado em 2004 por David Heinemeier Hansson (DHH)
Modelo Arquitetural
Model View Controller
Linguagens e Tecnologias
O Ruby on Rails é compatível com várias tecnologias:
➔ HTML5, CSS3
➔ Javascript — jQuery, AJAX, Backbone.js, JSON
➔ MySQL, PostgreSQL, Oracle, SQL Server
➔ MongoDB, CouchDB, Cassandra, Redis
➔ JVM (JRuby)
Estrutura

Criando uma aplicação Rails
Desenvolvendo com RoR
➔ O uso de IDE’s não é necessário
➔ Plug-in para Eclipse (Aptana Studio)

Vim

Eclipse + Aptana Studio
Comandos básicos
➔ Criar banco de dados

➔ Atualizar banco de dados

➔ Rodar o servidor
Comandos básicos II
➔ Criar um model

➔ Criar um controller
Comandos básicos III
➔ Criar um scaffold (Model, View, Controller)
Active Record
➔ Desacoplar a aplicação do banco de dados
➔ Facilitar a manipulação de dados
Active Model
➔ Relacionamento entre objetos
➔ Define validações e erros do Model
Migrations
➔ DSL para gerenciamento da base de dados
➔ Provê um histórico de modificações
Database.yml
➔ Arquivo de configurações de banco de dados
➔ Diferentes bancos de dados por ambiente da aplicação
Routes
➔ Reconhece a URL e direciona para a ação do Controller
➔ Gera caminhos e URLs evitando código estático na View
Testes
➔ Cria estrutura de testes ao criar Models e Controllers
➔ Facilidade ao usar tecnicas como TDD e BDD
➔ Bibliotecas como Capybara, Cucumber e RSpec
Vantagens
➔ Alta velocidade de desenvolvimento
➔ Flexibilidade
➔ Código legível e com qualidade
➔ Integração fácil entre times
➔ Deploy facilitado
Desvantagens
➔ Curva de aprendizado da linguagem é maior
➔ Mais lento que outras linguagens web (Java, Python)
➔ Internacionalização complicada
➔ Material em português escasso
Empresas que utilizam
Referências
➔ Ruby - www.ruby-lang.org

➔ Ruby on Rails - www.rubyonrails.org

➔ Ruby Installer - www.rubyinstaller.org
Dúvidas?

Contenu connexe

Tendances

De zero a cem em cloud computing transformando idéias em aplicações em pouco...
De zero a cem em cloud computing  transformando idéias em aplicações em pouco...De zero a cem em cloud computing  transformando idéias em aplicações em pouco...
De zero a cem em cloud computing transformando idéias em aplicações em pouco...
Ricardo Martinelli de Oliveira
 

Tendances (20)

Microsoft Azure role-based certifications valem a pena? | Interop Day Edição ...
Microsoft Azure role-based certifications valem a pena? | Interop Day Edição ...Microsoft Azure role-based certifications valem a pena? | Interop Day Edição ...
Microsoft Azure role-based certifications valem a pena? | Interop Day Edição ...
 
NoSQL + Node.js
NoSQL + Node.jsNoSQL + Node.js
NoSQL + Node.js
 
[Sass] Aula 01
[Sass] Aula 01[Sass] Aula 01
[Sass] Aula 01
 
Curso de Node.js e MongoDB - 01
Curso de Node.js e MongoDB - 01Curso de Node.js e MongoDB - 01
Curso de Node.js e MongoDB - 01
 
Tecnologias de bancos de dados no Azure: conhecendo as opções relacionais e N...
Tecnologias de bancos de dados no Azure: conhecendo as opções relacionais e N...Tecnologias de bancos de dados no Azure: conhecendo as opções relacionais e N...
Tecnologias de bancos de dados no Azure: conhecendo as opções relacionais e N...
 
Banco de dados nas nuvens - aula 1
Banco de dados nas nuvens - aula 1Banco de dados nas nuvens - aula 1
Banco de dados nas nuvens - aula 1
 
NoSQL no Azure - Azure Tech Nights - 2017
NoSQL no Azure - Azure Tech Nights - 2017NoSQL no Azure - Azure Tech Nights - 2017
NoSQL no Azure - Azure Tech Nights - 2017
 
Azure Cosmos DB - TDC 2017 - São Paulo
Azure Cosmos DB - TDC 2017 - São PauloAzure Cosmos DB - TDC 2017 - São Paulo
Azure Cosmos DB - TDC 2017 - São Paulo
 
NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017
NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017
NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017
 
Banco de dados nas nuvens - aula 2
Banco de dados nas nuvens - aula 2Banco de dados nas nuvens - aula 2
Banco de dados nas nuvens - aula 2
 
De zero a cem em cloud computing transformando idéias em aplicações em pouco...
De zero a cem em cloud computing  transformando idéias em aplicações em pouco...De zero a cem em cloud computing  transformando idéias em aplicações em pouco...
De zero a cem em cloud computing transformando idéias em aplicações em pouco...
 
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaTécnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
 
Banco de dados nas nuvens - aula 3
Banco de dados nas nuvens - aula 3Banco de dados nas nuvens - aula 3
Banco de dados nas nuvens - aula 3
 
Distribuindo seu app Blazor no Azure com Storage + CDN
Distribuindo seu app Blazor no Azure com Storage + CDNDistribuindo seu app Blazor no Azure com Storage + CDN
Distribuindo seu app Blazor no Azure com Storage + CDN
 
Kubernetes - do Pod ao Deployment Automatizado - DevOps Professionals - Janei...
Kubernetes - do Pod ao Deployment Automatizado - DevOps Professionals - Janei...Kubernetes - do Pod ao Deployment Automatizado - DevOps Professionals - Janei...
Kubernetes - do Pod ao Deployment Automatizado - DevOps Professionals - Janei...
 
Por que Node JS?
Por que Node JS?Por que Node JS?
Por que Node JS?
 
Palestra de PHP
Palestra de PHPPalestra de PHP
Palestra de PHP
 
Drupal 7 - Nova Versão para Novos Desafios
Drupal 7 - Nova Versão para Novos DesafiosDrupal 7 - Nova Versão para Novos Desafios
Drupal 7 - Nova Versão para Novos Desafios
 
ASP.NET MVC Core
ASP.NET MVC CoreASP.NET MVC Core
ASP.NET MVC Core
 
[MinhaVida TechDay] NoSQL
[MinhaVida TechDay] NoSQL[MinhaVida TechDay] NoSQL
[MinhaVida TechDay] NoSQL
 

En vedette

Minicurso Ruby on Rails - Wake Up Systems
Minicurso Ruby on Rails - Wake Up SystemsMinicurso Ruby on Rails - Wake Up Systems
Minicurso Ruby on Rails - Wake Up Systems
WakeUpSystems
 
Ruby vs python
Ruby vs pythonRuby vs python
Ruby vs python
Igor Leroy
 
Rest API's with Ruby on Rails
Rest API's with Ruby on RailsRest API's with Ruby on Rails
Rest API's with Ruby on Rails
Ricardo Silva
 

En vedette (7)

7 coisas que todo desenvolvedor Ruby on Rails deveria fazer
7 coisas que todo desenvolvedor Ruby on Rails deveria fazer7 coisas que todo desenvolvedor Ruby on Rails deveria fazer
7 coisas que todo desenvolvedor Ruby on Rails deveria fazer
 
Minicurso Ruby on Rails - Wake Up Systems
Minicurso Ruby on Rails - Wake Up SystemsMinicurso Ruby on Rails - Wake Up Systems
Minicurso Ruby on Rails - Wake Up Systems
 
Palestra Ruby
Palestra RubyPalestra Ruby
Palestra Ruby
 
Ruby vs python
Ruby vs pythonRuby vs python
Ruby vs python
 
Rest API's with Ruby on Rails
Rest API's with Ruby on RailsRest API's with Ruby on Rails
Rest API's with Ruby on Rails
 
Java VS Python
Java VS PythonJava VS Python
Java VS Python
 
Apache Storm 0.9 basic training - Verisign
Apache Storm 0.9 basic training - VerisignApache Storm 0.9 basic training - Verisign
Apache Storm 0.9 basic training - Verisign
 

Similaire à Ruby on Rails - Introdução ao Framework

Slide Aula - Curso CakePHP
Slide Aula - Curso CakePHPSlide Aula - Curso CakePHP
Slide Aula - Curso CakePHP
Rangel Javier
 
Desenvolvimento Web Avançado usando PHP
Desenvolvimento Web Avançado usando PHPDesenvolvimento Web Avançado usando PHP
Desenvolvimento Web Avançado usando PHP
elliando dias
 

Similaire à Ruby on Rails - Introdução ao Framework (20)

Ruby on Rails for beginners 2.0
Ruby on Rails for beginners 2.0Ruby on Rails for beginners 2.0
Ruby on Rails for beginners 2.0
 
Ruby on Rails: um estudo de viabilidade em ambientes empresariais
Ruby on Rails: um estudo de viabilidade em ambientes empresariaisRuby on Rails: um estudo de viabilidade em ambientes empresariais
Ruby on Rails: um estudo de viabilidade em ambientes empresariais
 
Mini-curso RoR - Aula 01
Mini-curso RoR - Aula 01Mini-curso RoR - Aula 01
Mini-curso RoR - Aula 01
 
Desenvolvendo Sistema Cloud e Web Full-stack Developer
Desenvolvendo Sistema Cloud e Web Full-stack DeveloperDesenvolvendo Sistema Cloud e Web Full-stack Developer
Desenvolvendo Sistema Cloud e Web Full-stack Developer
 
Ruby on Rails
Ruby on RailsRuby on Rails
Ruby on Rails
 
Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011
 
Utilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentesUtilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentes
 
Slide Aula - Curso CakePHP
Slide Aula - Curso CakePHPSlide Aula - Curso CakePHP
Slide Aula - Curso CakePHP
 
Iniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando PimentaIniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando Pimenta
 
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
 
Web Scale Data Management
Web Scale Data ManagementWeb Scale Data Management
Web Scale Data Management
 
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
 
Palestra Ruby on Rails SETA 2008/01
Palestra Ruby on Rails SETA 2008/01Palestra Ruby on Rails SETA 2008/01
Palestra Ruby on Rails SETA 2008/01
 
Cakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHPCakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHP
 
DocumentDB - Azure Fridays São Paulo
DocumentDB - Azure Fridays São PauloDocumentDB - Azure Fridays São Paulo
DocumentDB - Azure Fridays São Paulo
 
Desenvolvimento Web Avançado usando PHP
Desenvolvimento Web Avançado usando PHPDesenvolvimento Web Avançado usando PHP
Desenvolvimento Web Avançado usando PHP
 
NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.
 
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAPalestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVA
 
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
 
Desenvolvendo uma aplicacao Full Javascript
Desenvolvendo uma aplicacao Full JavascriptDesenvolvendo uma aplicacao Full Javascript
Desenvolvendo uma aplicacao Full Javascript
 

Plus de Guilherme Carlos (8)

Fun Ruby
Fun Ruby Fun Ruby
Fun Ruby
 
What's new on Rails 5
What's new on Rails 5What's new on Rails 5
What's new on Rails 5
 
StartMe - Apresentação TCC
StartMe - Apresentação TCCStartMe - Apresentação TCC
StartMe - Apresentação TCC
 
StartMe: pitch de empreendedorismo
StartMe: pitch de empreendedorismoStartMe: pitch de empreendedorismo
StartMe: pitch de empreendedorismo
 
Sistema Gerenciador de Eventos - DFD
Sistema Gerenciador de Eventos - DFDSistema Gerenciador de Eventos - DFD
Sistema Gerenciador de Eventos - DFD
 
Gestão Do Conhecimento
Gestão Do ConhecimentoGestão Do Conhecimento
Gestão Do Conhecimento
 
Estatística - PUC Campinas (Sistemas de Informação 3º Semestre 2011)
Estatística - PUC Campinas (Sistemas de Informação 3º Semestre 2011)Estatística - PUC Campinas (Sistemas de Informação 3º Semestre 2011)
Estatística - PUC Campinas (Sistemas de Informação 3º Semestre 2011)
 
Modem - PUC Campinas (Sistemas de Informação 1º Semestre 2010)
Modem - PUC Campinas (Sistemas de Informação 1º Semestre 2010)Modem - PUC Campinas (Sistemas de Informação 1º Semestre 2010)
Modem - PUC Campinas (Sistemas de Informação 1º Semestre 2010)
 

Ruby on Rails - Introdução ao Framework

  • 1. Ruby on Rails Introdução ao framework Guilherme Theodoro Carlos www.showthecode.com.br
  • 2. “There is something distinct about the Rails philosophy in comparison to the Java or .NET environments. If you are the type of person who "thinks in code" and likes to work with scripts to get things done, Rails may be a great fit for you.” — Justin James, TechRepublic.com
  • 3. O que é Ruby? ➔ Linguagem dinâmica e de código aberto desenvolvida em C ➔ Tem foco na simplicidade e produtividade ➔ Puramente orientada à objetos ➔ Baseada em Perl, Smalltalk e LISP ➔ Criada em 1995 por Yukihiro Matsumoto (Matz)
  • 4. O que é Ruby on Rails? ➔ Framework de código aberto desenvolvido em Ruby ➔ Tem por objetivo o desenvolvimento rápido e fácil de aplicações web ➔ Convenção em vez de configuração ➔ Don’t Repeat Yourself ➔ Criado em 2004 por David Heinemeier Hansson (DHH)
  • 6. Linguagens e Tecnologias O Ruby on Rails é compatível com várias tecnologias: ➔ HTML5, CSS3 ➔ Javascript — jQuery, AJAX, Backbone.js, JSON ➔ MySQL, PostgreSQL, Oracle, SQL Server ➔ MongoDB, CouchDB, Cassandra, Redis ➔ JVM (JRuby)
  • 8. Desenvolvendo com RoR ➔ O uso de IDE’s não é necessário ➔ Plug-in para Eclipse (Aptana Studio) Vim Eclipse + Aptana Studio
  • 9. Comandos básicos ➔ Criar banco de dados ➔ Atualizar banco de dados ➔ Rodar o servidor
  • 10. Comandos básicos II ➔ Criar um model ➔ Criar um controller
  • 11. Comandos básicos III ➔ Criar um scaffold (Model, View, Controller)
  • 12. Active Record ➔ Desacoplar a aplicação do banco de dados ➔ Facilitar a manipulação de dados
  • 13. Active Model ➔ Relacionamento entre objetos ➔ Define validações e erros do Model
  • 14. Migrations ➔ DSL para gerenciamento da base de dados ➔ Provê um histórico de modificações
  • 15. Database.yml ➔ Arquivo de configurações de banco de dados ➔ Diferentes bancos de dados por ambiente da aplicação
  • 16. Routes ➔ Reconhece a URL e direciona para a ação do Controller ➔ Gera caminhos e URLs evitando código estático na View
  • 17. Testes ➔ Cria estrutura de testes ao criar Models e Controllers ➔ Facilidade ao usar tecnicas como TDD e BDD ➔ Bibliotecas como Capybara, Cucumber e RSpec
  • 18. Vantagens ➔ Alta velocidade de desenvolvimento ➔ Flexibilidade ➔ Código legível e com qualidade ➔ Integração fácil entre times ➔ Deploy facilitado
  • 19. Desvantagens ➔ Curva de aprendizado da linguagem é maior ➔ Mais lento que outras linguagens web (Java, Python) ➔ Internacionalização complicada ➔ Material em português escasso
  • 21. Referências ➔ Ruby - www.ruby-lang.org ➔ Ruby on Rails - www.rubyonrails.org ➔ Ruby Installer - www.rubyinstaller.org