Ruby, Rails e Diversão
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Ruby, Rails e Diversão

on

  • 3,109 views

Palestra ministrada dia 25 de novembro de 2008 (2008-11-25) para a turma de Bacharel em Sistemas de Informação da Faculdade Cenecista de Joinville (FCJ), em Joinville/SC.

Palestra ministrada dia 25 de novembro de 2008 (2008-11-25) para a turma de Bacharel em Sistemas de Informação da Faculdade Cenecista de Joinville (FCJ), em Joinville/SC.

Statistics

Views

Total Views
3,109
Views on SlideShare
3,095
Embed Views
14

Actions

Likes
2
Downloads
41
Comments
0

3 Embeds 14

http://www.linkedin.com 8
http://www.slideshare.net 4
http://coderwall.com 2

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

CC Attribution License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Ruby, Rails e Diversão Presentation Transcript

  • 1. Ruby, Rails e diversão Júlio Santos Monteiro <julio@monteiro.eti.br> 25 de Novembro de 2008
  • 2. Júlio Santos Monteiro?
  • 3. seja.a2c.com.br
  • 4. Ruby on Rails desde 2006
  • 5.
    • Desenvolver é Engenharia
  • 6.
    • Programar é Arte
  • 7.
    • “ Beleza leva a felicidade.
    • Felicidade leva a produtividade.
    • Logo, beleza leva a produtividade.”
    (David Heinemeier Hansson)‏
  • 8. “ Você pode reconhecer a verdade por sua beleza e simplicidade.” (Richard Feynman)‏
  • 9. Por que o Ruby, se já temos Java, Python, Perl, PHP, Lisp, .Net, Obj-C, ActionScript, Erlang, Lua, Smalltalk, Haskell, (digite aqui o nome de uma linguagem) , etc?
  • 10. 1993: Yukihiro Matsumoto quer uma linguagem mais humana.
  • 11. 1993: Yukihiro Matsumoto faz uma linguagem mais humana.
  • 12. 1993: Yukihiro Matsumoto faz uma linguagem menos máquina, mais humana.
  • 13. 1993: Yukihiro Matsumoto cria o Java
  • 14. 1993: Yukihiro Matsumoto cria o Java
  • 15. 1993: Yukihiro Matsumoto cria o Ruby
  • 16. O que é Ruby?
    • Linguagem de Script
    • Interpretada (e compilável)‏
    • Orientada a objetos (“100%”)‏
    • Programação:
      • Direta
      • Simples
      • Extensível
      • Portável
  • 17.
    • Propósito geral
    • Voltada para realização de tarefas rápidas
    • Vantagem sobre linguagens compiladas
    • Poderosa
    • Facilitadora
    O que é Ruby?
  • 18.
    • Linguagem prática (Perl)‏
    • Orientação a objetos (Smalltalk)‏
    • Metaprogramação (Smalltalk, Lisp)‏
    • Sintaxe (Smalltalk, Eiffel e Ada)‏
    • Tratamento de exceções (Java e Python)‏
    Influências
  • 19. Características
      • Não possui procedimentos nem funções
      • Tudo é um objeto
      • Objetos possuem métodos
      • Métodos são mensagens
      • Até mesmo operadores matemáticos são métodos
  • 20.
    • 1 .class
  • 21.
    • 1 .class
    • => “Fixnum”
  • 22.  
  • 23. 1
  • 24. 1 Ei, 1, me responda a seguinte pergunta: class
  • 25. 1 Fixnum
  • 26.
    • 1 .send(“ class ”)‏
  • 27.
    • 1 .send(“ class ”)‏
    • => “Fixnum”
  • 28. Palestra “A Beleza do Ruby”, de Glenn Vanderburg
  • 29. Observações
    • Ruby não é perfeita
    • Ruby não é a única linguagem linda
    • Gostos variam com frequência
  • 30. Blocos
  • 31. Blocos
    • Closures. Funções anônimas. Lambdas.
    • Sintaxe concisa (similar a Smalltalk).
    • Duas sintaxes
    • do |a, b|
    • # código com a, b
    • end
    {|a, b| # código com a, b }
  • 32. Blocos obj.each do |e| e.save! end array.group_by {|a| a.type} (&quot;a&quot;..&quot;z&quot;).each do |char| puts char end
  • 33. Blocos File.open(&quot;config.txt&quot;) do |in| in.each_line do |line| process_config_line(line)‏ end end (0..100).collect {|n| User.find(n).destroy }
  • 34. Sintaxe para servir
    • Código simples tende a ser mais legível sem pontuação
    • Código complexo tende a ser mais legível com pontuação
    • Tudo em Ruby, geralmente, tem duas maneiras de ser feito
  • 35. Exemplos
    • Parênteses é opcional
    • Ponto-e-vírgula é opcional
    • Duas formas de blocos
  • 36. Classes são abertas
  • 37. Classes são abertas
    • Toda classe pode ser alterada
    • Liberdade total
    • Flexibilidade no código
    • “ Ruby Way”
  • 38. Exemplos
    • class NilClass
    • def blank?
    • true
    • end
    • end
    class String def blank? self == &quot;&quot; end end
  • 39. Você, amanhã, na sua empresa: “Chefinho, vamos usar Ruby?”
  • 40. O Chefe: “Por que nós iriamos usar Ruby?”
  • 41. Você: “A linguagem é bonita, fácil de escrever, não é verbalmente pesada, e é extensível.”
  • 42. O Chefe: “F*da-se. Para quê tudo isso?Vamos continuar com nosso excelente _ _ _ _.”
  • 43. Qual a utilidade disso tudo?
  • 44. Código simples
  • 45. Pouco código
  • 46. É mais fácil achar e corrigir um bug em: a) 100 LOC b) 10.000 LOC c) 10^42 LOC
  • 47. Facilidade de correção
  • 48. Facilidade para extensão
  • 49. Menos tempo de desenvolvimento
  • 50. Menos tempo para entregar um produto
  • 51.  
  • 52. (Obs: quando estiver preparando a apresentação, colocar aqui blá-blá-blá sobre a história do Rails e da 37signals)‏
  • 53. Direto ao ponto:
  • 54. No Rails, você se preocupa com a Lógica de Negócio
  • 55. Classe Livro: Pertence a um Usuário, tem várias Tags e Tópicos, e tem um Upload. O subtítulo deve ter entre 0 e 256 caracteres A descrição deve ter entre 1 e 1024 caracteres. Tem uma máquina de estados com vários estados e eventos.
  • 56. class Book < ActiveRecord::Base # Relacionamentos belongs_to :user has_and_belongs_to_many :tags has_and_belongs_to_many :topics has_one :upload # Validações validates_length_of :subtitle, :mininum => 0, :maximum => 256, :allow_nil => true validates_length_of :description, :mininum => 1, :maximum => 1024
  • 57. acts_as_state_machine :initial => :registred state :passive state :registred state :waiting_processing state :in_processing state :preview state :published state :unpublished event :register do transitions :from => :passive, :to => :registred end # ... end
  • 58. Hey, mas o framework ______ também faz isso!
  • 59. Rails usa Ruby
  • 60. Rails agora é (pelo jeito) mainstream
  • 61.  
  • 62.  
  • 63.  
  • 64.  
  • 65.  
  • 66.  
  • 67. Observações:
  • 68. Ruby é difícil
  • 69. Ruby é difícil pois é diferente
  • 70. Ruby é difícil pois é diferente e é meta-programável
  • 71. Ruby on Rails é difícil
  • 72. Ruby on Rails é difícil pois é um framework
  • 73. Ruby on Rails é difícil pois é um framework e usa Ruby.
  • 74. Mas vale apena, ao menos aprender para conhecer e aproveitar suas idéias.
  • 75. Obrigado! Júlio Santos Monteiro <julio@monteiro.eti.br> 25 de Novembro de 2008