Your SlideShare is downloading. ×
0
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

O mundo visto de dentro do Ruby

929

Published on

Palestra realizada no DSC (Departamento de Sistemas e Computação) para alunos do curso de Ciência da Computação da UFCG. …

Palestra realizada no DSC (Departamento de Sistemas e Computação) para alunos do curso de Ciência da Computação da UFCG.

Agradecimentos:
- Fábio Akita (/akitaonrails)
- Daniel V. Lopes (/danielvlopes)

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
929
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. O mundo visto de dentro do Ruby
  • 2. 2007
  • 3. 2007 Ciência da Computação
  • 4. E vocês, já ouviram falar ou usaram Ruby?
  • 5. Yukihiro “Matz” Matsumoto
  • 6. “Se você terminar seu trabalho rápido e de forma divertida, isso não é bom?” Yukihiro “Matz” Matsumoto
  • 7. “Se você terminar seu trabalho rápido e de forma divertida, isso não é bom?” “Eu queria uma linguagem mais poderosa que perl, e mais orientada a objetos que Python. Foi por isso que eu decidi projetar minha própria linguagem.” Yukihiro “Matz” Matsumoto
  • 8. 1993 Primeiros rabiscos Yukihiro “Matz” Matsumoto
  • 9. 1993 Primeiros rabiscos 1995 Primeiro release público Yukihiro “Matz” Matsumoto
  • 10.  Sintaxe simples, inspirada por Ada, Eiffel e Perl  Semântica compacta, inspirada por Smalltalk  Object Model igual ao de Smalltalk  Expressões regulares do Perl  Conceitos de linguagem funcional  Características do C e C++
  • 11.  Sintaxe simples, inspirada por Ada, Eiffel e Perl  Semântica compacta, inspirada por Smalltalk  Object Model igual ao de Smalltalk  Expressões regulares do Perl  Conceitos de linguagem funcional  Características do C e C++
  • 12.  Produtividade no desenvolvedor  Simplicidade  Linguagem humana  Linguagem dinâmica e reflexiva  Extensibilidade  Todas as classes são abertas  Herança simples e mixins  DSL’s  Garbage collector
  • 13. Ruby 1.8.7 e 1.9.2
  • 14. Ruby 1.8.7 e 1.9.2 REE 1.8.7-2010.2
  • 15. Ruby 1.8.7 e 1.9.2 REE 1.8.7-2010.2 Rubinius 1.0.1
  • 16. Ruby 1.8.7 e 1.9.2 REE 1.8.7-2010.2 Rubinius 1.0.1 JRuby 1.5.X (Java)
  • 17. Ruby 1.8.7 e 1.9.2 REE 1.8.7-2010.2 Rubinius 1.0.1 JRuby 1.5.X (Java) MacRuby 0.6 (Objective-C)
  • 18. Ruby 1.8.7 e 1.9.2 REE 1.8.7-2010.2 Rubinius 1.0.1 JRuby 1.5.X (Java) MacRuby 0.6 (Objective-C) MagLev Beta (Smalltalk)
  • 19. Ruby 1.8.7 e 1.9.2 REE 1.8.7-2010.2 Rubinius 1.0.1 JRuby 1.5.X (Java) MacRuby 0.6 (Objective-C) MagLev Beta (Smalltalk) IronRuby 1.1 (.NET)
  • 20. Mas, por que Ruby?
  • 21. “Tornar as coisas simples fáceis e as coisas complexas possíveis.” Filosofia Ruby
  • 22. Focado no humano 3.times do print “Wee” end
  • 23. Focado no humano 3.times do print “Wee” end feed_dog if @dog.hungry?
  • 24. Focado no humano 3.times do print “Wee” end feed_dog if @dog.hungry? ['beer', 'vodka', 'wine'].each |drink| do print drink.capitalize end
  • 25. Verdadeiramente OO Tudo é objeto, não há sequer tipo primitivo.
  • 26. Verdadeiramente OO Tudo é objeto, não há sequer tipo primitivo. >> 1.class => Fixnum >> 1.class.class => Class >> nil.class => NilClass
  • 27. Código “bonito”
  • 28. 140 vs 40
  • 29. “Eu sempre soube que Smalltalk substituiria Java. Só não sabia que isso se chamaria Ruby.” Kent Beck, Criador do "Extreme Programming" e "TDD"
  • 30. O que podemos fazer com Ruby...
  • 31. No desktop
  • 32. Bowline Titanium
  • 33. Bowline Titanium Shoes GTK+
  • 34. Bowline Titanium Shoes GTK+ wxRuby Win32 widgets Aqua, GTK+
  • 35. Bowline Titanium Shoes GTK+ wxRuby Win32 widgets Aqua, GTK+ QtRuby Qt
  • 36. Bowline Titanium Shoes GTK+ wxRuby Win32 widgets Aqua, GTK+ QtRuby Qt Ruby Cocoa Cocoa
  • 37. Na web
  • 38. David “dhh” Heinemeier Hansson
  • 39. 2004 David “dhh” Heinemeier Hansson
  • 40. 2004 David “dhh” Heinemeier Hansson
  • 41. 2.3.8 3.0.0
  • 42.  Código gerando código  Convenção sobre configuração  DRY (don't repeat yourself)  Produtividade sustentável  Desenvolvimento ágil  Diversão
  • 43. Sinatra
  • 44. require 'rubygems' require 'sinatra' get '/hi' do "Hello World!" end
  • 45. Ferramentas
  • 46. 1.8.7 + 1.9.2 + REE + JRuby + Rubinius + MagLev + IronRuby + MacRuby
  • 47. 1.8.7 + 1.9.2 + REE + JRuby + Rubinius + MagLev + IronRuby + MacRuby = RVM
  • 48. Repositórios Github, Codebase
  • 49. Repositórios Github, Codebase Integração contínua Hudson, Cruise
  • 50. Repositórios Github, Codebase Integração contínua Hudson, Cruise Puppet, Chef Deploy Capistrano
  • 51. Repositórios Github, Codebase Integração contínua Hudson, Cruise Puppet, Chef Deploy Capistrano NewRelic, Scout Monitoramento BackupMyApp
  • 52. Repositórios Github, Codebase Integração contínua Hudson, Cruise Puppet, Chef Deploy Capistrano NewRelic, Scout Monitoramento BackupMyApp Servidores Passenger, Mongrel, Thin
  • 53. Testes Cucumber, Steak, RSpec, Minitest, Test::Unit, Shoulda, Bacon, Machinist, Factory Girl, Mocha
  • 54. Minispec http://gist.github.com/433067
  • 55. Cucumber http://github.com/danielvlopes/buggy/blob/master/features/authenticate.feature
  • 56. Steak
  • 57. Comunidade
  • 58. Ué, mas não dizem que Ruby é lento?
  • 59. Performance != Escalabilidade
  • 60. “O The New York Times usou Ruby on Rails para agregar, analisar e mostrar os resultados das eleições em quase tempo real em um de seus sites mais acessados de todos os tempos.” http://www.computerworld.com.au/article/268003/ruby_rails_rolls_into_enterprise/?fp=16&fpid=1
  • 61. Agradecimentos @akitaonrails (Fábio Akita) @danielvlopes (Daniel V. Lopes)
  • 62. OBRIGADO! @vitoravelino vitoravelino@octahedron.com.br

×