SlideShare uma empresa Scribd logo
Desenvolvimento web ágil e descomplicado usando

RUBY ON RAILS
Quem?

 Maurício Linhares
   Desenvolvedor da CodeVader
   JUG Leader do PBJUG
   Instrutor da LinuxFi
Problemas?

 Desenvolvimento web é:
   Complicado;
   Lento;
   Caro;
   Cheio de tecnologias diferentes e que não se
    falam;
Pra descomplicar, surgem
frameworks
 Java
   Struts
   Spring MVC
   JSF
 PHP
   CodeIgniter
   PRADO
 C#
   ASP.NET
Mas surgem novas
complicações...
 Arquivos XML pra configurar tudo;


 Nem só de frameworks web vive o mundo:
   Persistência?
   Web services?


 Como estender um framework para criar
  novas funcionalidades?
Desenvolvimento web ágil e descomplicado usando ruby on rails
O que é isso?

 Framework web escrito na linguagem Ruby;


 Desenvolvido originalmente por David
  Heinemeyer Hanson, como um “framework
  caseiro” para os projetos da 37signals.com;

 Liberado originalmente como open source
  em julho de 2004;
Por que Rails é diferente?
Porque é Ruby

 É uma linguagem de tipagem dinâmica;


 Puramente orientada a objetos;


 Desenvolvida com foco no programador, não
  na ferramenta;
3.times do
 puts "Hello!"
end

puts -175.abs
for ( int x = 0; x < 3; x++ ){
  System.out.println( “Hello” )
}
list = [ "I", "am", "a", "list" ]
puts list.join(" ")
list.each do |item|
  puts item
end
hash = { :water => 'wet',
                 :fire => 'hot' }
puts hash[:fire]

hash.each_pair do |key, value|
  puts "#{key} is #{value}"
end

hash.delete :water
hash.delete_if do |key,value|
  value=='hot'
end
Princípios

 Linguagens de programação devem ser fáceis
  para as pessoas, não para as máquinas;

 Você não deve ser surpreendido por novos
  comportamentos ou efeitos colaterais
  inesperados;

 Código deve ser claro e fácil de ser lido,
  métodos/mensagens devem ser claros na sua
  intenção;
Voltando ao Rails...
                       Use Rails ou
                       você vai se
                       arrepender!
Muitas siglas

 DRY – Don`t RepeatYourself


 KISS – Keep It Simple, Stupid


 CoC – Convention Over Configuration
O MVC do Rails

                ActionPack




   ActionView                ActiveRecord
ActiveRecord

 Model
   Representa os objetos do modelo que estão ou
    vão ser gravados no banco de dados relacional;
   É uma ferramenta de mapeamento objeto-
    relacional (como o Hibernate) , que visa facilitar o
    acesso a bancos de dados;
ActionPack

 Controller
   Faz o papel que Servlets fariam em Java, recebe
    uma requisição da web e se comunica com o
    modelo para executar a lógica e depois repassar
    para a visualização;
ActionView

 View
   Controla a visualização de conteúdo nas páginas;


   Contém complementos que facilitam a criação de
    formulários e simplificam a geração de HTML;

   Traz um “gerador” de JavaScript que facilita o uso
    de Ajax na aplicação;
Outros pedaços

 ActiveResource
   Para acesso a serviços REST (web services)
    disponíveis;


 ActionMailer
   Envio e recebimento de e-mails dentro da
    aplicação, diretamente integrado ao ActionView;
Eu quero
  ver o
 código!
Será que ele é pra mim?

 Aplicação web?
   Check!
 Ambiente Linux/Unix?
   Check!
 Equipe de desenvolvimento interessada em
  novidades?
   Check!
 Conciência de que isso não vai salvar o
  mundo?
   Check!
Rails não é a única opção

 Python
   Django
 PHP
   CakePHP
 Perl
   Catalyst
 Java
   Não cabem aqui nesse slide;
 C#
   Bem... Erh... Deixa pra lá;
Quando eu não devo usar
Rails?
 Quando a equipe não está convencida;


 Quando você não tem (ou não está disposto a
  ter) uma forte cultura de testes nos projetos;

 Quando o débito técnico for muito alto e
  você não tiver condições de parar tudo e
  colocar ele em um nível aceitável;
Rails não é o Santo Graal

 As técnicas que fazem Rails especial já se
  espalharam pelas outras comunidades;

 Hoje ele não é mais revolucionário como foi a
  cinco anos atrás;

 Mão de obra especializada ainda não dá em
  árvore;
Sim, e não tem mais
vantagens?
 Plugins, plugins e plugins. Milhares deles. Dá pra
  se afogar em tanta coisa diferente;

 guides.rubyonrails.org


 Vários livros e material pronto publicados;


 Em constante evolução, com versões saindo com
  novas funcionalidades em menos de 6 meses;
 Agile Web Development With Rails – 3rd
  Edition
Ruby vs Java!
Mas a verdade é triste...
Dúvidas?

Mais conteúdo relacionado

PPT
Mini-curso RoR - Aula 01
PDF
TDC São Paulo 2015 - Interfaces Ricas com Rails e React.JS
PPTX
Como a Natura vem diminuindo seu custo de operação total com Drupal - DrupalC...
PDF
TDC2018SP | Trilha UX - Deploy Continuo de Software Legado: Loucura ou Genial...
PDF
TDC2018SP | Trilha UX - Pair Programming: Troque seu FONE por um DEV
PDF
Ruby on rails porque usar rails?!
PDF
Projeto de API, por Gilmar P.S
Mini-curso RoR - Aula 01
TDC São Paulo 2015 - Interfaces Ricas com Rails e React.JS
Como a Natura vem diminuindo seu custo de operação total com Drupal - DrupalC...
TDC2018SP | Trilha UX - Deploy Continuo de Software Legado: Loucura ou Genial...
TDC2018SP | Trilha UX - Pair Programming: Troque seu FONE por um DEV
Ruby on rails porque usar rails?!
Projeto de API, por Gilmar P.S

Mais procurados (7)

PDF
Experiências, Erros e Acertos no Desenvolvimento de Projeto Ágeis
PDF
Introdução ao java fx e visage
PDF
Grafana & Zabbix - Webinar JLCP
PPTX
Testes Automatizados
PDF
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
PDF
Além do MVP com PHP - TDC Floripa 2016
PPTX
ASP.NET Web Forms X ASP.NET MVC
Experiências, Erros e Acertos no Desenvolvimento de Projeto Ágeis
Introdução ao java fx e visage
Grafana & Zabbix - Webinar JLCP
Testes Automatizados
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Além do MVP com PHP - TDC Floripa 2016
ASP.NET Web Forms X ASP.NET MVC
Anúncio

Semelhante a Desenvolvimento web ágil e descomplicado usando ruby on rails (20)

PDF
Curso de Ruby on Rails - Aula 01
PDF
Esta começando a programar para a web? Então começe com Rails
PPTX
Ruby e Rails
PPT
Desenvolvimento Ágil com Ruby on Rails
PDF
Palestra Desenvolvimento Ágil para Web com ROR UVA
PDF
Rails 03
PDF
Desenvolvimento ágil de software com Ruby on Rails
PDF
Ruby & Rails
PDF
Workshop Ruby on Rails dia 2 ruby-pt
PDF
Conhecendo o Ruby on Rails
PPT
Introdução Ruby 1.8.7 + Rails 3
PDF
Palestra ror edted
PDF
Introdução ao Ruby on Rails
ODP
Mini-curso RubyOnRails CESOL
KEY
Palestra Fatec
PPT
Tendências do Mercado de Internet
PDF
Conhecendo Ruby on Rails
ODP
Ruby on Rails - Filosofia e Prática
PPT
RoR Beta
Curso de Ruby on Rails - Aula 01
Esta começando a programar para a web? Então começe com Rails
Ruby e Rails
Desenvolvimento Ágil com Ruby on Rails
Palestra Desenvolvimento Ágil para Web com ROR UVA
Rails 03
Desenvolvimento ágil de software com Ruby on Rails
Ruby & Rails
Workshop Ruby on Rails dia 2 ruby-pt
Conhecendo o Ruby on Rails
Introdução Ruby 1.8.7 + Rails 3
Palestra ror edted
Introdução ao Ruby on Rails
Mini-curso RubyOnRails CESOL
Palestra Fatec
Tendências do Mercado de Internet
Conhecendo Ruby on Rails
Ruby on Rails - Filosofia e Prática
RoR Beta
Anúncio

Mais de Maurício Linhares (20)

PPTX
Mercado de TI
PPTX
Unindo Ruby e Java através de uma arquitetura orientada a serviços na OfficeDrop
PPTX
Mixing Ruby and Java in a Service Oriented Architecture at OfficeDrop
PDF
Aprendendo ruby
PDF
Curso java 07 - exceções
PDF
Curso java 08 - mais sobre coleções
PDF
Curso java 06 - mais construtores, interfaces e polimorfismo
PDF
Curso java 05 - herança, classes e métodos abstratos
PDF
Curso java 04 - ap is e bibliotecas
PPTX
Curso java 01 - molhando os pés com java
PDF
Curso java 02 - variáveis
PDF
Curso java 03 - métodos e parâmetros
PDF
Extreme programming
PDF
Feature Driven Development
PDF
Migrando pra Scala
PPTX
Outsourcing e trabalho remoto para a nuvem
PDF
Mercado hoje
PDF
Análise de sistemas oo 1
PDF
Revisão html e java script
PPTX
Aulas de Java Avançado 2- Faculdade iDez 2010
Mercado de TI
Unindo Ruby e Java através de uma arquitetura orientada a serviços na OfficeDrop
Mixing Ruby and Java in a Service Oriented Architecture at OfficeDrop
Aprendendo ruby
Curso java 07 - exceções
Curso java 08 - mais sobre coleções
Curso java 06 - mais construtores, interfaces e polimorfismo
Curso java 05 - herança, classes e métodos abstratos
Curso java 04 - ap is e bibliotecas
Curso java 01 - molhando os pés com java
Curso java 02 - variáveis
Curso java 03 - métodos e parâmetros
Extreme programming
Feature Driven Development
Migrando pra Scala
Outsourcing e trabalho remoto para a nuvem
Mercado hoje
Análise de sistemas oo 1
Revisão html e java script
Aulas de Java Avançado 2- Faculdade iDez 2010

Último (19)

PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
Processos na gestão de transportes, TM100 Col18
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PDF
Apple Pippin Uma breve introdução. - David Glotz
PDF
Aula04-Academia Heri- Tecnologia Geral 2025
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PPTX
Aula 18 - Manipulacao De Arquivos python
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Custos e liquidação no SAP Transportation Management, TM130 Col18
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Processos na gestão de transportes, TM100 Col18
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Apple Pippin Uma breve introdução. - David Glotz
Aula04-Academia Heri- Tecnologia Geral 2025
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
COBITxITIL-Entenda as diferença em uso governança TI
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Aula 18 - Manipulacao De Arquivos python
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express

Desenvolvimento web ágil e descomplicado usando ruby on rails

  • 1. Desenvolvimento web ágil e descomplicado usando RUBY ON RAILS
  • 2. Quem?  Maurício Linhares  Desenvolvedor da CodeVader  JUG Leader do PBJUG  Instrutor da LinuxFi
  • 3. Problemas?  Desenvolvimento web é:  Complicado;  Lento;  Caro;  Cheio de tecnologias diferentes e que não se falam;
  • 4. Pra descomplicar, surgem frameworks  Java  Struts  Spring MVC  JSF  PHP  CodeIgniter  PRADO  C#  ASP.NET
  • 5. Mas surgem novas complicações...  Arquivos XML pra configurar tudo;  Nem só de frameworks web vive o mundo:  Persistência?  Web services?  Como estender um framework para criar novas funcionalidades?
  • 7. O que é isso?  Framework web escrito na linguagem Ruby;  Desenvolvido originalmente por David Heinemeyer Hanson, como um “framework caseiro” para os projetos da 37signals.com;  Liberado originalmente como open source em julho de 2004;
  • 8. Por que Rails é diferente?
  • 9. Porque é Ruby  É uma linguagem de tipagem dinâmica;  Puramente orientada a objetos;  Desenvolvida com foco no programador, não na ferramenta;
  • 10. 3.times do puts "Hello!" end puts -175.abs
  • 11. for ( int x = 0; x < 3; x++ ){ System.out.println( “Hello” ) }
  • 12. list = [ "I", "am", "a", "list" ] puts list.join(" ") list.each do |item| puts item end
  • 13. hash = { :water => 'wet', :fire => 'hot' } puts hash[:fire] hash.each_pair do |key, value| puts "#{key} is #{value}" end hash.delete :water hash.delete_if do |key,value| value=='hot' end
  • 14. Princípios  Linguagens de programação devem ser fáceis para as pessoas, não para as máquinas;  Você não deve ser surpreendido por novos comportamentos ou efeitos colaterais inesperados;  Código deve ser claro e fácil de ser lido, métodos/mensagens devem ser claros na sua intenção;
  • 15. Voltando ao Rails... Use Rails ou você vai se arrepender!
  • 16. Muitas siglas  DRY – Don`t RepeatYourself  KISS – Keep It Simple, Stupid  CoC – Convention Over Configuration
  • 17. O MVC do Rails ActionPack ActionView ActiveRecord
  • 18. ActiveRecord  Model  Representa os objetos do modelo que estão ou vão ser gravados no banco de dados relacional;  É uma ferramenta de mapeamento objeto- relacional (como o Hibernate) , que visa facilitar o acesso a bancos de dados;
  • 19. ActionPack  Controller  Faz o papel que Servlets fariam em Java, recebe uma requisição da web e se comunica com o modelo para executar a lógica e depois repassar para a visualização;
  • 20. ActionView  View  Controla a visualização de conteúdo nas páginas;  Contém complementos que facilitam a criação de formulários e simplificam a geração de HTML;  Traz um “gerador” de JavaScript que facilita o uso de Ajax na aplicação;
  • 21. Outros pedaços  ActiveResource  Para acesso a serviços REST (web services) disponíveis;  ActionMailer  Envio e recebimento de e-mails dentro da aplicação, diretamente integrado ao ActionView;
  • 22. Eu quero ver o código!
  • 23. Será que ele é pra mim?  Aplicação web?  Check!  Ambiente Linux/Unix?  Check!  Equipe de desenvolvimento interessada em novidades?  Check!  Conciência de que isso não vai salvar o mundo?  Check!
  • 24. Rails não é a única opção  Python  Django  PHP  CakePHP  Perl  Catalyst  Java  Não cabem aqui nesse slide;  C#  Bem... Erh... Deixa pra lá;
  • 25. Quando eu não devo usar Rails?  Quando a equipe não está convencida;  Quando você não tem (ou não está disposto a ter) uma forte cultura de testes nos projetos;  Quando o débito técnico for muito alto e você não tiver condições de parar tudo e colocar ele em um nível aceitável;
  • 26. Rails não é o Santo Graal  As técnicas que fazem Rails especial já se espalharam pelas outras comunidades;  Hoje ele não é mais revolucionário como foi a cinco anos atrás;  Mão de obra especializada ainda não dá em árvore;
  • 27. Sim, e não tem mais vantagens?  Plugins, plugins e plugins. Milhares deles. Dá pra se afogar em tanta coisa diferente;  guides.rubyonrails.org  Vários livros e material pronto publicados;  Em constante evolução, com versões saindo com novas funcionalidades em menos de 6 meses;
  • 28.  Agile Web Development With Rails – 3rd Edition
  • 30. Mas a verdade é triste...