Ruby, Rails e Diversão

75 %
25 %
Information about Ruby, Rails e Diversão
Technology

Published on December 10, 2008

Author: jmonteiro

Source: slideshare.net

Description

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.

Ruby, Rails e diversão Júlio Santos Monteiro <julio@monteiro.eti.br> 25 de Novembro de 2008

Júlio Santos Monteiro?

seja.a2c.com.br

Ruby on Rails desde 2006

Desenvolver é Engenharia

Desenvolver é Engenharia

Programar é Arte

Programar é Arte

“ Beleza leva a felicidade. Felicidade leva a produtividade. Logo, beleza leva a produtividade.” (David Heinemeier Hansson)‏

“ Beleza leva a felicidade.

Felicidade leva a produtividade.

Logo, beleza leva a produtividade.”

“ Você pode reconhecer a verdade por sua beleza e simplicidade.” (Richard Feynman)‏

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?

1993: Yukihiro Matsumoto quer uma linguagem mais humana.

1993: Yukihiro Matsumoto faz uma linguagem mais humana.

1993: Yukihiro Matsumoto faz uma linguagem menos máquina, mais humana.

1993: Yukihiro Matsumoto cria o Java

1993: Yukihiro Matsumoto cria o Java

1993: Yukihiro Matsumoto cria o Ruby

O que é Ruby? Linguagem de Script Interpretada (e compilável)‏ Orientada a objetos (“100%”)‏ Programação: Direta Simples Extensível Portável

Linguagem de Script

Interpretada (e compilável)‏

Orientada a objetos (“100%”)‏

Programação:

Direta

Simples

Extensível

Portável

Propósito geral Voltada para realização de tarefas rápidas Vantagem sobre linguagens compiladas Poderosa Facilitadora O que é Ruby?

Propósito geral

Voltada para realização de tarefas rápidas

Vantagem sobre linguagens compiladas

Poderosa

Facilitadora

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

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)‏

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

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

1 .class

1 .class

1 .class => “Fixnum”

1 .class

=> “Fixnum”

 

1

1 Ei, 1, me responda a seguinte pergunta: class

1 Fixnum

1 .send(“ class ”)‏

1 .send(“ class ”)‏

1 .send(“ class ”)‏ => “Fixnum”

1 .send(“ class ”)‏

=> “Fixnum”

Palestra “A Beleza do Ruby”, de Glenn Vanderburg

Observações Ruby não é perfeita Ruby não é a única linguagem linda Gostos variam com frequência

Ruby não é perfeita

Ruby não é a única linguagem linda

Gostos variam 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 }

Closures. Funções anônimas. Lambdas.

Sintaxe concisa (similar a Smalltalk).

Duas sintaxes

do |a, b|

# código com a, b

end

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

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 }

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

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

Exemplos Parênteses é opcional Ponto-e-vírgula é opcional Duas formas de blocos

Parênteses é opcional

Ponto-e-vírgula é opcional

Duas formas de blocos

Classes são abertas

Classes são abertas Toda classe pode ser alterada Liberdade total Flexibilidade no código “ Ruby Way”

Toda classe pode ser alterada

Liberdade total

Flexibilidade no código

“ Ruby Way”

Exemplos class NilClass def blank? true end end class String def blank? self == &quot;&quot; end end

class NilClass

def blank?

true

end

end

Você, amanhã, na sua empresa: “Chefinho, vamos usar Ruby?”

O Chefe: “Por que nós iriamos usar Ruby?”

Você: “A linguagem é bonita, fácil de escrever, não é verbalmente pesada, e é extensível.”

O Chefe: “F*da-se. Para quê tudo isso?Vamos continuar com nosso excelente _ _ _ _.”

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

 

(Obs: quando estiver preparando a apresentação, colocar aqui blá-blá-blá sobre a história do Rails e da 37signals)‏

Direto ao ponto:

No Rails, você se preocupa com a Lógica de Negócio

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.

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

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

Rails agora é (pelo jeito) mainstream

 

 

 

 

 

 

Observações:

Ruby é difícil

Ruby é difícil pois é diferente

Ruby é difícil pois é diferente e é meta-programável

Ruby on Rails é difícil

Ruby on Rails é difícil pois é um framework

Ruby on Rails é difícil pois é um framework e usa Ruby.

Mas vale apena, ao menos aprender para conhecer e aproveitar suas idéias.

Obrigado! Júlio Santos Monteiro <julio@monteiro.eti.br> 25 de Novembro de 2008

Add a comment

Related presentations

Related pages

Ruby Programming Language

Ruby Prize 2016 nominations are now open. Ruby Prize 2016 nominations are now being accepted for new and outstanding members in the Ruby community.
Read more

Ruby, Rails e Diversão - Technology - docslide.com.br

1. Ruby, Rails e diversão Júlio Santos Monteiro 25 de Novembro de 2008. 2. Júlio Santos Monteiro? 3. seja.a2c.com.br
Read more

Apostila Completa de Ruby On Rails[Rails para sua Diversão ...

Apostila Completa de Ruby On Rails[Rails para sua Diversão e Lucro][Português]download from 4shared
Read more

Ruby on Rails: Produtividade e diversão na web - Technology

Palestra proferida no IFF Web Day, no dia 13/04/2010. Uma apresentação geral do ecossistema Ruby on Rails.
Read more

n00b - tutorial para rails - Google Groups

Você pode começar com o tutorial [1] "Rails para sua Diversão e Lucro" ... Acredito que estudando o Rails tu vai aprendendo aos pouquinhos o Ruby.
Read more

AkitaOnRails.com

Blog about Ruby, Ruby on Rails, tutorials for beginners, several off-topic subjects, software development, project management, Agile techniques, and ...
Read more