Ruby, Rails e Diversão Júlio Monteiro <julio@monteiro.eti.br> 23 de Janeiro de 2009 - Campus Party Brasil 2009
@jmonteiro /jmonteiro www.monteiro.eti.br Júlio Monteiro
http://www.akitaonrails.com/2009/1/20/palestra-na-campus-party
Linguagem de Script
Interpretada* * Dependendo do ambiente de execução.
Orientada a Objeto
Programação:
General* Purpose * General como em non-specific, ao invés de universal
Tarefas Rápidas
Influências
Linguagem Prática
Orientação a Objetos
Metaprogramação
Sintaxe
Tratamento de Exceções (similar, não baseado)
Características
Não existem “procedimentos” nem “funções”
Tudo é um objeto
Métodos são mensagens
1
1
1 Fixnum
1.class
1.class => “Fixnum”
1.send(“class”)
1.send(“class”) => “Fixnum”
Até operadores matemáticos são métodos
“Beleza leva a felicidade. Felicidade leva a produtividade. Logo, beleza leva a produtividade.” (David Heinemeier Hansson)
“Você pode reconhecer a verdade por sua beleza e simplicidade.” (Richard Feynman)
Observações • Ruby não é perfeita • Ruby não é a única linguagem linda • Gosto varia com frequência
Blocos
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 }
Blocos do |a, b| # código com a, b end {|a, b| # código com a, b }
Blocos obj.each do |e| e.save! end (quot;aquot;..quot;zquot;).each do |char| puts char end array.group_by {|a| a.type}
Blocos File.open(quot;config.txtquot;) do |in| in.each_line do |line| process_config_line(line) end end (0..100).collect {|n| User.find(n).destroy }
Sintaxe para Servir
Código simples: ;
Código complexo: ;
Ruby suporta: ; ;
Parênteses opcionais ( )
Classes são abertas
Classes são abertas • Toda classe pode ser alterada • Liberdade total • Flexibilidade no código • “Ruby Way”
Exemplos class NilClass class String def blank? def blank? true self == quot;quot; end end end end
Qual a utilidade disso tudo?
Código simples
Pouco código
É mais fácil achar e corrigir um bug em: a) 100 LOC b) 10.000 LOC c) 10^42 LOC
Facilidade de correção
Facilidade para extensão
Menos tempo de desenvolvimento
Menos tempo para entregar um produto
Direto ao ponto:
No Rails, você se preocupa mais com a “Lógica de Negócio”
No Rails, você se preocupa mais com a “Lógica de Negócio”
Classe Livro: Pertence a um Autor Tem várias Tags Tem um Upload O título tem no máximo 300 caracteres Tem uma máquina de estados
class Book < ActiveRecord::Base # Relacionamentos belongs_to :author has_and_belongs_to_many :tags has_one :upload # Validação validates_length_of :subtitle, :maximum => 300
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
Hey, mas o framework ______ também faz isso!
Rails usa Ruby :)
Ruby não é melhor que _______, mas tem muita coisa interessante!
10 anos 12 funcionários muito sucesso (e alguns milhões)
12 meses 20+ projetos entregues todos de sucesso
E muitas outras empresas!
Observações:
Ruby é difícil
Ruby é difícil porque é diferente.
Ruby on Rails é difícil
Ruby on Rails é difícil porque é um framework
Ruby on Rails é difícil porque é um framework e usa Ruby.
Mas vale apena :)
www.rubyonrails.com.br
www.rubyonrails.pro.br
Perguntas? Júlio Monteiro <julio@monteiro.eti.br> @jmonteiro /jmonteiro www.monteiro.eti.br
Obrigado! Júlio Monteiro <julio@monteiro.eti.br> @jmonteiro /jmonteiro www.monteiro.eti.br
I am Julio Monteiro ... 28 Jan 2010 » pt Segurança & Ruby on Rails (Campus Party Brasil '10) ... 23 Jan 2009 » pt Ruby, Rails e Diversão (Campus Party ...
Read more
... //www.eventials.com/locaweb/twitter-redis-bitcoins-ruby-nuvem-para-aprendizado-e-diversao ... Campus Party Brasil ... Ruby On Rails ...
Read more
... autor do primeiro livro sobre Ruby on Rails escrito em português ... se tornando cada vez mais popular no Brasil. ... by Campus Party ...
Read more
With the increasing interest in Ruby on Rails from ... With the latest release of DB2 on Rails, parameterized queries are ... 2009 ): Read this free ...
Read more
Desde o Campus Party no começo ... e de promover o Rails Summit Latin America 2009, ... nomes internacionais de Ruby e Rails estarão ...
Read more
O responsável pelo projeto aqui no Brasil é o ... Ruby e Rails. Learning Ruby ... Rails para sua Diversão e Lucro – O tutorial de Rails em português ...
Read more
Add a comment