SlideShare uma empresa Scribd logo
1 de 57
Ruby on Rails
O que é Ruby on Rails?
Ruby on RailsLinguagem + Framework
Um pouco de história
Características do Ruby
Princípios do Ruby
"Vocêdevefazercódigosqueresolvamseusproblemas, e nãoosproblemasdalinguagem e/ouinterpretador/compilador"
Exemplo de código
5.times{ print “Hello!”} exit unless “restaurant”.include? “aura” [‘toast’,‘cheese’,‘wine’].each { |food| print food.capitalize }
class Person attr_reader:name#cria um getter para o atributoname attr_accessor:hair#cria getter e setter   definitialize(name, hair)‏     @name, @hair = name, hair   end def walk     “Walking”   end end Lennon = Person.new(“John”, “Dark”)‏ Lennon.class_evaldo   def play_guitar “playing”   end end
receita"Bolo de Fubá"do  ingrediente"Farinha", "1 kilo"  ingrediente"Açúcar", "200 gramas"  ingrediente"Ovos", "2 unidades" preparo"Misture todos ingrediantes" preparo"Leve ao forno" preparo"Sirva" tempo"2 horas" porcoes 3  end
Um pouco de História
Características do Rails
(Meta)Framework
Metaframework ActiveRecord ActionPack ActionMailer ActiveSupport ActiveResource
MVCModel-View-Controller
Extensível
Suporte a diversosBancos de dadosMySQL, PostgreSQL, SQLite, Oracle, SQL Server, DB2
Agilidade
publicActionForward execute(ActionMappingmapping, ActionFormform, HttpServletRequestrequest, HttpServletResponseresponse)  throws Exception {     TopicoFormtopicoForm = (TopicoForm)form;  Topicotopico = newTopico();  topico.setTitulo(topicoForm.getTitulo());  topico.setDescricao(topicoForm.getDescricao());  TopicoDAOMysqltopicoDao = newTopicoDAOMysql();  try{     topicoDao.adiciona(topico);      }    catch(Exception e){  thrownew Exception("Erro ao adicionar topico " +e);    }  ActionForwardforward = mapping.findForward("Cadastrado");  returnforward;   }  publicvoid adiciona (Topicotopico) throws Exception{    Connection conn = null; 64  ConexaoBDconBD = ConexaoBD.getInstancia();  conn = conBD.getConnection();  PreparedStatementpstmt = null;      String sql = "";  introwsAfected = 0;  try {  if (conn  ==  null)  thrownew  Exception("Conexão  não foi estabelecida.");  sql = "insertintoTopicos (" + " titulo, descricao, data_postagem) " + " values((?), (?), now())";  pstmt = conn.prepareStatement(sql);    pstmt.setString(1,topico.getTitulo());  pstmt.setString(2,topico.getDescricao());  rowsAfected = pstmt.executeUpdate();  if (rowsAfected <= 0) {  thrownew Exception("Erro na inserção do tópico. Por favor, tente novamente.");      }    }catch(SQLException se) {  thrownewSQLException("Erro  em TopicoDAOMysql.adiciona(): " + se.getMessage());        }catch (Exception e) {  thrownew  Exception("Erro  em TopicoDAOMysql.adiciona(): " + e.getMessage());        }finally {  if(pstmt != null) pstmt.close();  conBD.returnConnection(conn);        }  }
def create  @topico= Topico.new(params[:topico])  if@topico.save     flash[:notice] = 'Topicocriado com sucesso.' redirect_to:action => 'list' else      render :action => 'new' end  end
Extraído de umanecessidade realBasecampda 37signals
FREE!
Princípios do Rails
DRY!Don't Repeat Yourself
CTRL + C / CRTL + V
Convention Over Configuration
Tradução de Convention Over Configuration
Maissobre Rails
Para onde o Rails vai?
Livros – Pragmatic Programmers
Livros – O’Reilly
LivrosemPortuguês
Cursos ,[object Object]
TechOffice/POA
Target Trust/POA
E-Genial (EAD)
SENAC/SC
PUC/MG
Object Training/SP,[object Object]
RubyonRails já instalado no Mac OS X Leopard

Mais conteúdo relacionado

Destaque

DecáLogo Del Docente Edja
DecáLogo Del Docente EdjaDecáLogo Del Docente Edja
DecáLogo Del Docente Edja17135fabian
 
Artículo revista beatriz risco
Artículo revista  beatriz riscoArtículo revista  beatriz risco
Artículo revista beatriz riscobeitarisco
 
Trabajo para el blog
Trabajo para el blogTrabajo para el blog
Trabajo para el blogbernaljulieth
 
Por que somos feos?
Por que somos feos?Por que somos feos?
Por que somos feos?andres76
 
Test-driven Development - Introdução
Test-driven Development - IntroduçãoTest-driven Development - Introdução
Test-driven Development - IntroduçãoFelipe Elias Philipp
 
Why Men Die Young
Why Men Die YoungWhy Men Die Young
Why Men Die Youngpeter
 

Destaque (9)

DecáLogo Del Docente Edja
DecáLogo Del Docente EdjaDecáLogo Del Docente Edja
DecáLogo Del Docente Edja
 
Artículo revista beatriz risco
Artículo revista  beatriz riscoArtículo revista  beatriz risco
Artículo revista beatriz risco
 
Trabajo para el blog
Trabajo para el blogTrabajo para el blog
Trabajo para el blog
 
Por que somos feos?
Por que somos feos?Por que somos feos?
Por que somos feos?
 
Autoretrato
AutoretratoAutoretrato
Autoretrato
 
Test-driven Development - Introdução
Test-driven Development - IntroduçãoTest-driven Development - Introdução
Test-driven Development - Introdução
 
Catalogo Wv 2009
Catalogo Wv 2009Catalogo Wv 2009
Catalogo Wv 2009
 
Ciro alegria
Ciro alegriaCiro alegria
Ciro alegria
 
Why Men Die Young
Why Men Die YoungWhy Men Die Young
Why Men Die Young
 

Semelhante a Ruby on Rails guia

Ágil na Prática - Ruby
Ágil na Prática - RubyÁgil na Prática - Ruby
Ágil na Prática - RubyIgo Coelho
 
Combinando OO e Funcional em javascript de forma prática
Combinando OO e Funcional em javascript de forma práticaCombinando OO e Funcional em javascript de forma prática
Combinando OO e Funcional em javascript de forma práticaMilfont Consulting
 
Joomla! Otimizando performance
Joomla! Otimizando performanceJoomla! Otimizando performance
Joomla! Otimizando performanceMarcio Mota
 
Introdução ao Ruby on Rails
Introdução ao Ruby on RailsIntrodução ao Ruby on Rails
Introdução ao Ruby on RailsJuan Maiz
 
Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)Willian Magalhães
 
Introdução à MEAN Stack
Introdução à MEAN StackIntrodução à MEAN Stack
Introdução à MEAN StackBruno Catão
 
Melhorando a Experiência do Usuário com JavaScript e jQuery
Melhorando a Experiência do Usuário com JavaScript e jQueryMelhorando a Experiência do Usuário com JavaScript e jQuery
Melhorando a Experiência do Usuário com JavaScript e jQueryHarlley Oliveira
 
Testes Automatizados em Ruby on Rails
Testes Automatizados em Ruby on RailsTestes Automatizados em Ruby on Rails
Testes Automatizados em Ruby on RailsThiago Cifani
 
Manual-de-php
Manual-de-phpManual-de-php
Manual-de-phpdiogoa21
 
Pymordida0 Semana de computação da SOCIESC - 2008/10
Pymordida0 Semana de computação da SOCIESC - 2008/10Pymordida0 Semana de computação da SOCIESC - 2008/10
Pymordida0 Semana de computação da SOCIESC - 2008/10Marco Mendes
 
Controle de Fluxo, Exceções, Assertivas
Controle de Fluxo, Exceções, AssertivasControle de Fluxo, Exceções, Assertivas
Controle de Fluxo, Exceções, AssertivasElenilson Vieira
 

Semelhante a Ruby on Rails guia (20)

Ágil na Prática - Ruby
Ágil na Prática - RubyÁgil na Prática - Ruby
Ágil na Prática - Ruby
 
iOS 8 com swift
iOS 8 com swiftiOS 8 com swift
iOS 8 com swift
 
Combinando OO e Funcional em javascript de forma prática
Combinando OO e Funcional em javascript de forma práticaCombinando OO e Funcional em javascript de forma prática
Combinando OO e Funcional em javascript de forma prática
 
Joomla! Otimizando performance
Joomla! Otimizando performanceJoomla! Otimizando performance
Joomla! Otimizando performance
 
Beagajs
BeagajsBeagajs
Beagajs
 
Introdução ao Ruby on Rails
Introdução ao Ruby on RailsIntrodução ao Ruby on Rails
Introdução ao Ruby on Rails
 
Curso Ruby
Curso RubyCurso Ruby
Curso Ruby
 
Tdc2010 web
Tdc2010 webTdc2010 web
Tdc2010 web
 
Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)
 
Introdução à MEAN Stack
Introdução à MEAN StackIntrodução à MEAN Stack
Introdução à MEAN Stack
 
Melhorando a Experiência do Usuário com JavaScript e jQuery
Melhorando a Experiência do Usuário com JavaScript e jQueryMelhorando a Experiência do Usuário com JavaScript e jQuery
Melhorando a Experiência do Usuário com JavaScript e jQuery
 
Ruby learning
Ruby learningRuby learning
Ruby learning
 
Javascript
Javascript Javascript
Javascript
 
Testes Automatizados em Ruby on Rails
Testes Automatizados em Ruby on RailsTestes Automatizados em Ruby on Rails
Testes Automatizados em Ruby on Rails
 
Manual-de-php
Manual-de-phpManual-de-php
Manual-de-php
 
Pymordida0 Semana de computação da SOCIESC - 2008/10
Pymordida0 Semana de computação da SOCIESC - 2008/10Pymordida0 Semana de computação da SOCIESC - 2008/10
Pymordida0 Semana de computação da SOCIESC - 2008/10
 
Floggy-IIBoot-2008-09-25
Floggy-IIBoot-2008-09-25Floggy-IIBoot-2008-09-25
Floggy-IIBoot-2008-09-25
 
Palestra Ruby
Palestra RubyPalestra Ruby
Palestra Ruby
 
Controle de Fluxo, Exceções, Assertivas
Controle de Fluxo, Exceções, AssertivasControle de Fluxo, Exceções, Assertivas
Controle de Fluxo, Exceções, Assertivas
 
Java hidden features
Java hidden featuresJava hidden features
Java hidden features
 

Ruby on Rails guia