Desenvolvimento Ágil para Web
     com Ruby on Rails
Ruby




                 Release público em 1995




Ruby is designed to make programmers happy
PragDave




2000 – Ocidente
Ruby
●   Melhor amigo do desenvolvedor
●   Legível e Humana
●   Perl, Smalltalk, Ada e LISP
●   Orientada a Objetos
●   Ex...
Características do Ruby
●   A sintaxe é enxuta
●   Tudo é objeto
●   Geração de código em tempo real
●   Fortemente Tipada...
Características do Ruby
●   Classes abertas
●   Garbage Collector
●   Multi-plataforma
●   Herança Simples
Vantagens
●   Memoria controlada automaticamente
●   Linguagem humana
●   Simplicidade
●   Tipagem Dinâmica
●   Extensibil...
Desvantagens
●   Maquina Virtual Lenta (1.8)
●   Matemática Intensa – Estatísticas e fins cientificos
●   Threading – Gree...
Instalando Ruby
●   Ubuntu - sudo apt-get install ruby irb
●   Windows - http://rubyforge.org/projects/rubyinstaller/
●   ...
Escopo Variáveis
●   thiago – variavel local
●   @thiago – variavel de instancia
●   @@thiago – variavel de classe
●   $th...
Classes em Ruby


class Personagem

 def initialize(tipo, nome)
  @tipo = tipo
  @nome = nome
 end

end
Classes em Ruby

thiago = Personagem.new(:ator, "Thiago Cifani")

marano = Personagem.new(:revisor, "Thiago
Marano")
Classes em Ruby

def to_s
 "#{@nome} é um #{@tipo}"
end
Classes em Ruby
def nome
 @nome
end

def tipo
 @tipo
end

def nome=(value)
  @nome = value
end

def tipo=(value)
 @tipo = ...
Classes em Ruby




attr_accessor :nome, :tipo
Controle de Acesso
class Test               class Test
public                    def method1
 def method1
                ...
Herança Simples




   class B < A
   end
Livros OpenSource
●   http://aprendaaprogramar.rubyonrails.pro.br/
●   http://why.nomedojogo.com/
try {
        BufferedReader in = new BufferedReader(new
FileReader("nome do arquivo"));
            String str;
         ...
DEMO
DHH 2004
BaseCamp
Rails: o que é ?



  Framework baseado em Ruby que facilita o
desenvolvimento web, fazendo-o com agilidade e
            ...
“Eles servem mais de 23 milhões de visitantes por mês. A conversão resultou
em 20 mil linhas de Ruby ao invés de 120 mil l...
Rails instalação
●   Sudo apt-get install rubygems
●   Sudo gem update –system
●   Sudo gem install rails
Rails - Filosofia


●   Convention over Configuration
●   DRY - Don't repeat yourself
●   KISS – Keep it simple stupid
●  ...
Convention over Configuration
●   Grande parte do desenvolvimento segue
    padrões de convenção.
●   Ex.: Para o model ve...
Convention over Configuration
●   Nomes de Arquivos
●   Nomes de Tabelas no BD
●   Mapeamentos
●   Chaves do BD
●   Nome d...
Don't Repeat Yourself
●   Todo código gerado deve ficar apenas em um
    local, não deve haver repetição de código em
    ...
Don't Repeat Yourself
 development:
   adapter: sqlite3
   database: db/development.sqlite3
   pool: 5
   timeout: 5000
 t...
Don't Repeat Yourself
●   Gems
●   Plugins
●   Generators
●   Templates
●   Partials
Keep it Simple Stupid
●   Simplicidade acima de tudo
●   Refatoração
●   Testes legíveis
●   Código enxuto
Comandos
●   Scaffolding
●   Migrations
●   script/server
●   script/generate model / controller / view
●   rake
MVC
●   Model - Parte da aplicação que faz ligação com
    o banco de dados.
●   View – Interface com o usuário.
●   Contr...
REST

●   Consiste em utilizar os métodos HTTP no lugar
    do nome das ações para rotear a ação correta
    dentro do Con...
REST
●   Solicitações com o método:
    ●   GET são encaminhadas para as ações
        “index” e “show”
    ●   POST são e...
Rotas
●   Rails não trabalha com URLs bagunçadas e
    sim Rotas.
●   Facilitação na leitura por engines de busca



     ...
Facilidades
●   Logs
●   Ajax
●   Javascript
●   Jquery
●   Prototype e Scriptaculous
●   HTML
●   Testes Automatizados
Facilidades
●   TDD e BDD
●   Cucumber e Rspec
●   XP
Ferramentas Ágeis
●   Github - Repositório
●   Integração contínua – Cruise Control
●   Deployment – Capistrano, Inploy (d...
Código PHP
<?
  $email = $_POST['email'];
  $opcao = $_POST['opcoes'];

  $db = mysql_connect("localhost","root", "");
  $...
DEMO RAILS
Comunidade
Por akitaonrails




                   or
Dizem que rails é pouco usado!
Links
●   http://www.nomedojogo.com/
●   http://akitaonrails.com/
●   http://blog.areacriacoes.com.br/
●   http://guides.r...
@egenial
@danielvlopes
@AkitaOnRails
  @tapajos
@carlosbrando
@thiagomarano
  @fredmp
OBRIGADO!!
Perguntas?
@thiagocifani
 cifani.thiago@gmail.com
  github.com/thiagocifani
slideshare.net/thiagocifani
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVA
Upcoming SlideShare
Loading in …5
×

Palestra Desenvolvimento Ágil para Web com ROR UVA

888 views

Published on

palestra sobre ruby on rails na veiga cabo frio dia 5 de novembro de 2009.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
888
On SlideShare
0
From Embeds
0
Number of Embeds
40
Actions
Shares
0
Downloads
13
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Palestra Desenvolvimento Ágil para Web com ROR UVA

  1. 1. Desenvolvimento Ágil para Web com Ruby on Rails
  2. 2. Ruby Release público em 1995 Ruby is designed to make programmers happy
  3. 3. PragDave 2000 – Ocidente
  4. 4. Ruby ● Melhor amigo do desenvolvedor ● Legível e Humana ● Perl, Smalltalk, Ada e LISP ● Orientada a Objetos ● Extremamente Flexível
  5. 5. Características do Ruby ● A sintaxe é enxuta ● Tudo é objeto ● Geração de código em tempo real ● Fortemente Tipada ● Tipagem dinâmica ● Closures Reais
  6. 6. Características do Ruby ● Classes abertas ● Garbage Collector ● Multi-plataforma ● Herança Simples
  7. 7. Vantagens ● Memoria controlada automaticamente ● Linguagem humana ● Simplicidade ● Tipagem Dinâmica ● Extensibilidade ● simbolos
  8. 8. Desvantagens ● Maquina Virtual Lenta (1.8) ● Matemática Intensa – Estatísticas e fins cientificos ● Threading – Green Threading/ melhora no ruby 1.9 (jruby)
  9. 9. Instalando Ruby ● Ubuntu - sudo apt-get install ruby irb ● Windows - http://rubyforge.org/projects/rubyinstaller/ ● easyrails
  10. 10. Escopo Variáveis ● thiago – variavel local ● @thiago – variavel de instancia ● @@thiago – variavel de classe ● $thiago – variavel global
  11. 11. Classes em Ruby class Personagem def initialize(tipo, nome) @tipo = tipo @nome = nome end end
  12. 12. Classes em Ruby thiago = Personagem.new(:ator, "Thiago Cifani") marano = Personagem.new(:revisor, "Thiago Marano")
  13. 13. Classes em Ruby def to_s "#{@nome} é um #{@tipo}" end
  14. 14. Classes em Ruby def nome @nome end def tipo @tipo end def nome=(value) @nome = value end def tipo=(value) @tipo = value end
  15. 15. Classes em Ruby attr_accessor :nome, :tipo
  16. 16. Controle de Acesso class Test class Test public def method1 def method1 end end def method2 protected end def method2 def method3 end end private public :method1 def method3 end protected :method2 private :method2 end end
  17. 17. Herança Simples class B < A end
  18. 18. Livros OpenSource ● http://aprendaaprogramar.rubyonrails.pro.br/ ● http://why.nomedojogo.com/
  19. 19. try { BufferedReader in = new BufferedReader(new FileReader("nome do arquivo")); String str; while (in.ready()) { str = in.readLine(); process(str); } in.close(); } catch (IOException e) { } teste = File.readlines("/home/thiagocifani/Documentos/txt.txt") puts teste
  20. 20. DEMO
  21. 21. DHH 2004
  22. 22. BaseCamp
  23. 23. Rails: o que é ? Framework baseado em Ruby que facilita o desenvolvimento web, fazendo-o com agilidade e produtividade
  24. 24. “Eles servem mais de 23 milhões de visitantes por mês. A conversão resultou em 20 mil linhas de Ruby ao invés de 120 mil linhas de Java, e mais importante, Facilitou a dificuldade que tinham com manutenção. Eles também finalizaram a escrita do programa com apenas 3 meses com 4 desenvolvedores. Uma vez completo e otimizado o site deles é mais rapido do que antes.”
  25. 25. Rails instalação ● Sudo apt-get install rubygems ● Sudo gem update –system ● Sudo gem install rails
  26. 26. Rails - Filosofia ● Convention over Configuration ● DRY - Don't repeat yourself ● KISS – Keep it simple stupid ● Diversão
  27. 27. Convention over Configuration ● Grande parte do desenvolvimento segue padrões de convenção. ● Ex.: Para o model venda, temos uma tabela no banco de dados chamada vendas. ● Resume-se em menos código e menos repetição.
  28. 28. Convention over Configuration ● Nomes de Arquivos ● Nomes de Tabelas no BD ● Mapeamentos ● Chaves do BD ● Nome das Classes ● Ambientes
  29. 29. Don't Repeat Yourself ● Todo código gerado deve ficar apenas em um local, não deve haver repetição de código em outras áreas da aplicação. ● Ex.: Active Record – Não é necessário colocar os códigos de CRUD no modelo, nome das colunas, etc.
  30. 30. Don't Repeat Yourself development: adapter: sqlite3 database: db/development.sqlite3 pool: 5 timeout: 5000 test: adapter: sqlite3 database: db/test.sqlite3 pool: 5 timeout: 5000 production: adapter: sqlite3 database: db/production.sqlite3 pool: 5 timeout: 5000
  31. 31. Don't Repeat Yourself ● Gems ● Plugins ● Generators ● Templates ● Partials
  32. 32. Keep it Simple Stupid ● Simplicidade acima de tudo ● Refatoração ● Testes legíveis ● Código enxuto
  33. 33. Comandos ● Scaffolding ● Migrations ● script/server ● script/generate model / controller / view ● rake
  34. 34. MVC ● Model - Parte da aplicação que faz ligação com o banco de dados. ● View – Interface com o usuário. ● Controller – Responsável por receber as requisições feitas pela aplicação e executar as ações necessárias para atender essas requisições. É onde definimos a lógica do funcionamento da aplicação.
  35. 35. REST ● Consiste em utilizar os métodos HTTP no lugar do nome das ações para rotear a ação correta dentro do Controller. ● Dependendo do método HTTP o Rails encaminha automaticamente para a ação correspondente dentro do Controller.
  36. 36. REST ● Solicitações com o método: ● GET são encaminhadas para as ações “index” e “show” ● POST são encaminhadas para a ação “create” ● PUT são encaminhadas para a ação “update” ● DELETE são encaminhadas para a ação “destroy”
  37. 37. Rotas ● Rails não trabalha com URLs bagunçadas e sim Rotas. ● Facilitação na leitura por engines de busca http://www.torrentleech.org/details.php?id=188684
  38. 38. Facilidades ● Logs ● Ajax ● Javascript ● Jquery ● Prototype e Scriptaculous ● HTML ● Testes Automatizados
  39. 39. Facilidades ● TDD e BDD ● Cucumber e Rspec ● XP
  40. 40. Ferramentas Ágeis ● Github - Repositório ● Integração contínua – Cruise Control ● Deployment – Capistrano, Inploy (dcrec1)
  41. 41. Código PHP <? $email = $_POST['email']; $opcao = $_POST['opcoes']; $db = mysql_connect("localhost","root", ""); $banco = mysql_select_db("teste",$db); if($opcao == "cadastrar"){ $sql = mysql_query("INSERT INTO email (email) value ('$email')"); }else{ $sql = mysql_query("DELETE FROM email where email = '$email'"); } ?>
  42. 42. DEMO RAILS
  43. 43. Comunidade
  44. 44. Por akitaonrails or
  45. 45. Dizem que rails é pouco usado!
  46. 46. Links ● http://www.nomedojogo.com/ ● http://akitaonrails.com/ ● http://blog.areacriacoes.com.br/ ● http://guides.rubyonrails.org/ ● http://ruby-doc.org/core/ ● http://aprendaaprogramar.rubyonrails.pro.br/ ●
  47. 47. @egenial @danielvlopes @AkitaOnRails @tapajos @carlosbrando @thiagomarano @fredmp
  48. 48. OBRIGADO!!
  49. 49. Perguntas?
  50. 50. @thiagocifani cifani.thiago@gmail.com github.com/thiagocifani slideshare.net/thiagocifani

×