SlideShare a Scribd company logo
1 of 12
Download to read offline
Paradigmas da Linguagem Ruby



sexta-feira, 7 de outubro de 11
Introdução
                 • Desenvolvida por Yukishiro Matsumoto
                 • Lançada em 1995
                 • Baseado na linguagem Perl, Smalltalk,
                         Python

                 • Escrita em C
                 • Multiplataforma
                 • O projeto mais famoso é o
                         meta-framework Ruby on Rails.
sexta-feira, 7 de outubro de 11
Características
               • Interpretada
                      • não é compilada
                      • analise sintática é feita em tempo de execução

               • Tipagem dinâmica e forte
                      • não é necessário declaração de variável

               • Tipos Primitivos são Classes
               • Herança Simples
                       (É usado Mixin’s, ultiliza o conceito de módulos ou coleções de métodos)


                       • Diferente das linguagens Python e C++

sexta-feira, 7 de outubro de 11
Características
                 • Multi-paradigma
                         • Orientada Objetos
                         • Funcional
                         • Programação Imperativa
                         • Open Source	 	

                 • Case-sensitive
                 • Bibliotécas (Ruby Gems)


sexta-feira, 7 de outubro de 11
Características
                 • Variáveis
                         •        Variáveis de Instância   - @cliente
                         •        Variáveis Classes        - @@cliente
                         •        Variáveis Globais        - $cliente
                         •        Variáveis Locais         - cliente




sexta-feira, 7 de outubro de 11
Características
               • Ver tudo como um Objeto
                       Cada parcela de informação e código podem receber as suas próprias
                       propriedades e ações.



                         Classe                  Classe herdando outra
                        class MyLib              class MyOtherLib < MyLib
                        ! @@name = "mylib"       ! @@name = "myotherlib"
                        !                        end
                        ! def self.name
                        ! ! @@name
                        ! end                     MyOtherLib.name
                        end                       #=> "myotherlib"

                        MyLib.name                MyLib.name
                        #=> "mylib"               #=> "myotherlib"




sexta-feira, 7 de outubro de 11
Características
            • Os métodos sempre retornam algo, nem
                    que seja nil
                        def um_metodo             def um_metodo   def um_metodo
                        end                         (1..5).to_a    1 == 2-1
                        um_metodo                 end             end
                        # nil                     um_metodo       um_metodo
                                                  # [1,2,3,4,5]   # true




            • Multiplos retornos por métodos
                             def um_metodo
                                return 1,2,3
                             end
                             a ,b,c = um_metodo
                             puts a ,b ,c
                             #1
                             #2
                             #3

sexta-feira, 7 de outubro de 11
Critérios de Avaliação
                 • Legibilidade(Facilidade de Leitura e Entendimento)
                         • Syntaxe limpa
                                  # Output “Eu gosto de Ruby”


                                   diz = "Eu gosto de Ruby"
                                   puts diz




                 • Redigibilidade (Facilidade em escrever programas)
                         • class Carro < Veiculo #suporte a abstração
                         • carro = 1
                                  carro = ”Gol” # não precisa definir o tipo da variável

                 • Confiabilidade
                         • Verificação de Tipos de variáveis (x.kind_of? Integer)
                                  • Tratamento de Exceção (raise, Throw/Catch)


sexta-feira, 7 de outubro de 11
Critérios de Avaliação
            • Facilidade de Aprendizado
                   • Documentação para aprendizado
                   • Similaridade com outras linguagens (C, Python, Smalltalk)

            • Reusabilidade
                   • Possui o Paradigma Orientado a Objetos possuindo Herança
                   • No Ruby existe o conceito de módulos (chamados categorias em
                            Objective-C). Os módulos são coleções de métodos.
                            class MyArray
                             include Enumerable
                            end




            • Portabilidade
                           • Roda em todos Sistemas Operacionais (Instalando o RVM)

sexta-feira, 7 de outubro de 11
Onde se pode usar?

           Testes Automatizados
           •Web
           •Desktop
           •Scripting
           •Computação Científica
           •Inteligência Artifícial
           •Bioinformática
           •etc...


sexta-feira, 7 de outubro de 11
Plataformas Suportadas
            • Mac OS x
            •Linux
            •MS-DOS
            •BSDs (inclui o FreeBSD e o OpenBSD)
            •Acorn RISC OS
            •Microsoft Windows 95, 98, XP, and Vista
            •OS/2
            •Amiga
            •Celulares Symbian Series 60
            •Plataformas que contém uma Máquina Virtual Java
                       (Usando JRuby ao invés de Ruby oficial)



sexta-feira, 7 de outubro de 11
Paradigmas
                Linguagem Ruby

                Faculdade Anglo Americano
                Curso: Ciência da Computação
                Nomes:	Heverson Damasceno




sexta-feira, 7 de outubro de 11

More Related Content

What's hot

Redes - Camada Fisica
Redes - Camada FisicaRedes - Camada Fisica
Redes - Camada FisicaLuiz Arthur
 
Sistemas Distribuídos - Computação Paralela - Introdução
Sistemas Distribuídos - Computação Paralela - IntroduçãoSistemas Distribuídos - Computação Paralela - Introdução
Sistemas Distribuídos - Computação Paralela - IntroduçãoAdriano Teixeira de Souza
 
Sistemas Distribuídos - Comunicação Distribuída – Middleware
Sistemas Distribuídos - Comunicação Distribuída – MiddlewareSistemas Distribuídos - Comunicação Distribuída – Middleware
Sistemas Distribuídos - Comunicação Distribuída – MiddlewareAdriano Teixeira de Souza
 
Linha de Produto de Software: Diferentes produtos para diferentes clientes
Linha de Produto de Software: Diferentes produtos para diferentes clientesLinha de Produto de Software: Diferentes produtos para diferentes clientes
Linha de Produto de Software: Diferentes produtos para diferentes clientesPriscylla Silva
 
Modelos de Processo de Software Parte 5
Modelos de Processo de Software Parte 5Modelos de Processo de Software Parte 5
Modelos de Processo de Software Parte 5Elaine Cecília Gatto
 
Aula 02-processos-e-threads-tanenbaum-parte-1
Aula 02-processos-e-threads-tanenbaum-parte-1Aula 02-processos-e-threads-tanenbaum-parte-1
Aula 02-processos-e-threads-tanenbaum-parte-1Cristiano Pires Martins
 
Chomsky e sua teoria inatista
Chomsky e sua teoria inatistaChomsky e sua teoria inatista
Chomsky e sua teoria inatistaJuliana Soares
 
Aprendendo a programar - Programação Procedural vs OOP
Aprendendo a programar - Programação Procedural vs OOPAprendendo a programar - Programação Procedural vs OOP
Aprendendo a programar - Programação Procedural vs OOPLeonardo Bastos
 
Apostilas - cliente servidor - aula 1 - fabiula
Apostilas - cliente servidor - aula 1 - fabiulaApostilas - cliente servidor - aula 1 - fabiula
Apostilas - cliente servidor - aula 1 - fabiulaDaniel Silveira
 
Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de OliveiraSistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de OliveiraWellington Oliveira
 
Introdução ao Android
Introdução ao AndroidIntrodução ao Android
Introdução ao AndroidJanynne Gomes
 
Aula 2 – Introdução a HTML - conceitos básicos e estrutura
Aula 2 – Introdução a HTML - conceitos básicos e estruturaAula 2 – Introdução a HTML - conceitos básicos e estrutura
Aula 2 – Introdução a HTML - conceitos básicos e estruturaAndré Constantino da Silva
 
Linguagem C - Funções e ponteiros
Linguagem C - Funções e ponteiros Linguagem C - Funções e ponteiros
Linguagem C - Funções e ponteiros Karoline Tavares
 

What's hot (20)

Redes - Camada Fisica
Redes - Camada FisicaRedes - Camada Fisica
Redes - Camada Fisica
 
Sistemas Distribuídos - Computação Paralela - Introdução
Sistemas Distribuídos - Computação Paralela - IntroduçãoSistemas Distribuídos - Computação Paralela - Introdução
Sistemas Distribuídos - Computação Paralela - Introdução
 
Diagramas de componentes
Diagramas de componentesDiagramas de componentes
Diagramas de componentes
 
Sistemas Distribuídos - Comunicação Distribuída – Middleware
Sistemas Distribuídos - Comunicação Distribuída – MiddlewareSistemas Distribuídos - Comunicação Distribuída – Middleware
Sistemas Distribuídos - Comunicação Distribuída – Middleware
 
Introdução ao MySQL
Introdução ao MySQLIntrodução ao MySQL
Introdução ao MySQL
 
Linha de Produto de Software: Diferentes produtos para diferentes clientes
Linha de Produto de Software: Diferentes produtos para diferentes clientesLinha de Produto de Software: Diferentes produtos para diferentes clientes
Linha de Produto de Software: Diferentes produtos para diferentes clientes
 
Flutter do zero a publicacao
Flutter do zero a publicacaoFlutter do zero a publicacao
Flutter do zero a publicacao
 
Modelos de Processo de Software Parte 5
Modelos de Processo de Software Parte 5Modelos de Processo de Software Parte 5
Modelos de Processo de Software Parte 5
 
Aula 02-processos-e-threads-tanenbaum-parte-1
Aula 02-processos-e-threads-tanenbaum-parte-1Aula 02-processos-e-threads-tanenbaum-parte-1
Aula 02-processos-e-threads-tanenbaum-parte-1
 
Linguagem PHP
Linguagem PHPLinguagem PHP
Linguagem PHP
 
Chomsky e sua teoria inatista
Chomsky e sua teoria inatistaChomsky e sua teoria inatista
Chomsky e sua teoria inatista
 
Aprendendo a programar - Programação Procedural vs OOP
Aprendendo a programar - Programação Procedural vs OOPAprendendo a programar - Programação Procedural vs OOP
Aprendendo a programar - Programação Procedural vs OOP
 
Apostilas - cliente servidor - aula 1 - fabiula
Apostilas - cliente servidor - aula 1 - fabiulaApostilas - cliente servidor - aula 1 - fabiula
Apostilas - cliente servidor - aula 1 - fabiula
 
Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de OliveiraSistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
 
Introdução ao Android
Introdução ao AndroidIntrodução ao Android
Introdução ao Android
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
 
Aula 2 – Introdução a HTML - conceitos básicos e estrutura
Aula 2 – Introdução a HTML - conceitos básicos e estruturaAula 2 – Introdução a HTML - conceitos básicos e estrutura
Aula 2 – Introdução a HTML - conceitos básicos e estrutura
 
Programação web e o front-end
Programação web e o front-endProgramação web e o front-end
Programação web e o front-end
 
Linguagem C - Funções e ponteiros
Linguagem C - Funções e ponteiros Linguagem C - Funções e ponteiros
Linguagem C - Funções e ponteiros
 
1 - Introdução ao linux
1 - Introdução ao linux1 - Introdução ao linux
1 - Introdução ao linux
 

Viewers also liked

Introdução a Linguagem de Programação Ruby
Introdução a Linguagem de Programação RubyIntrodução a Linguagem de Programação Ruby
Introdução a Linguagem de Programação RubyDiego Rubin
 
Ruby and Rails short motivation
Ruby and Rails short motivationRuby and Rails short motivation
Ruby and Rails short motivationjistr
 
Atps paradigmas linguagem programacao
Atps paradigmas linguagem programacaoAtps paradigmas linguagem programacao
Atps paradigmas linguagem programacaopablogranola
 
Atps paradigmas da linguagem
Atps paradigmas da linguagemAtps paradigmas da linguagem
Atps paradigmas da linguagemRafael Cianci
 
Interaccion2014 - Presentation about Open Books, MOOCs and Instructional Design
Interaccion2014 - Presentation about Open Books, MOOCs and Instructional DesignInteraccion2014 - Presentation about Open Books, MOOCs and Instructional Design
Interaccion2014 - Presentation about Open Books, MOOCs and Instructional DesignIsmar Silveira
 
Um Sistema De Recomendacao para Web 2
Um Sistema De Recomendacao para Web 2Um Sistema De Recomendacao para Web 2
Um Sistema De Recomendacao para Web 2Ismar Silveira
 
Apresentação WAvalia - SBIE 2009
Apresentação WAvalia - SBIE 2009Apresentação WAvalia - SBIE 2009
Apresentação WAvalia - SBIE 2009Ismar Silveira
 
MOOC e Educação Aberta - Painel @ #cbie2013
MOOC e Educação Aberta - Painel @ #cbie2013MOOC e Educação Aberta - Painel @ #cbie2013
MOOC e Educação Aberta - Painel @ #cbie2013Ismar Silveira
 
#latinproject @openeducationweek2014 - Methodologies
#latinproject @openeducationweek2014 - Methodologies#latinproject @openeducationweek2014 - Methodologies
#latinproject @openeducationweek2014 - MethodologiesIsmar Silveira
 
Mini-curso RubyOnRails CESOL
Mini-curso RubyOnRails CESOLMini-curso RubyOnRails CESOL
Mini-curso RubyOnRails CESOLtarginosilveira
 
Plp aula-02-critérios de avaliação
Plp aula-02-critérios de avaliaçãoPlp aula-02-critérios de avaliação
Plp aula-02-critérios de avaliaçãoJosé Meirelles
 
E:\Plp 2009 2\Plp Aula11
E:\Plp 2009 2\Plp Aula11E:\Plp 2009 2\Plp Aula11
E:\Plp 2009 2\Plp Aula11Ismar Silveira
 
Paradigmas de Linguagens de Programação - Introdução
Paradigmas de Linguagens de Programação - IntroduçãoParadigmas de Linguagens de Programação - Introdução
Paradigmas de Linguagens de Programação - IntroduçãoAdriano Teixeira de Souza
 
Charla juegos udelar2015_vfinal
Charla juegos udelar2015_vfinalCharla juegos udelar2015_vfinal
Charla juegos udelar2015_vfinalIsmar Silveira
 
Fundamentos de Sistemas de Informacao - Aula 13
Fundamentos de Sistemas de Informacao - Aula 13Fundamentos de Sistemas de Informacao - Aula 13
Fundamentos de Sistemas de Informacao - Aula 13Ismar Silveira
 
Fundamentos de Sistemas de Informacao - Aula #14 2009_2
Fundamentos de Sistemas de Informacao - Aula #14 2009_2Fundamentos de Sistemas de Informacao - Aula #14 2009_2
Fundamentos de Sistemas de Informacao - Aula #14 2009_2Ismar Silveira
 

Viewers also liked (20)

Introdução a Linguagem de Programação Ruby
Introdução a Linguagem de Programação RubyIntrodução a Linguagem de Programação Ruby
Introdução a Linguagem de Programação Ruby
 
Ruby and Rails short motivation
Ruby and Rails short motivationRuby and Rails short motivation
Ruby and Rails short motivation
 
Atps paradigmas linguagem programacao
Atps paradigmas linguagem programacaoAtps paradigmas linguagem programacao
Atps paradigmas linguagem programacao
 
Atps paradigmas da linguagem
Atps paradigmas da linguagemAtps paradigmas da linguagem
Atps paradigmas da linguagem
 
Interaccion2014 - Presentation about Open Books, MOOCs and Instructional Design
Interaccion2014 - Presentation about Open Books, MOOCs and Instructional DesignInteraccion2014 - Presentation about Open Books, MOOCs and Instructional Design
Interaccion2014 - Presentation about Open Books, MOOCs and Instructional Design
 
wei2010
wei2010wei2010
wei2010
 
Um Sistema De Recomendacao para Web 2
Um Sistema De Recomendacao para Web 2Um Sistema De Recomendacao para Web 2
Um Sistema De Recomendacao para Web 2
 
Sinatra - Primeiros Passos
Sinatra - Primeiros PassosSinatra - Primeiros Passos
Sinatra - Primeiros Passos
 
Apresentação WAvalia - SBIE 2009
Apresentação WAvalia - SBIE 2009Apresentação WAvalia - SBIE 2009
Apresentação WAvalia - SBIE 2009
 
MOOC e Educação Aberta - Painel @ #cbie2013
MOOC e Educação Aberta - Painel @ #cbie2013MOOC e Educação Aberta - Painel @ #cbie2013
MOOC e Educação Aberta - Painel @ #cbie2013
 
Fundcompsis 1.1
Fundcompsis 1.1Fundcompsis 1.1
Fundcompsis 1.1
 
Ismar webinar-udelar
Ismar webinar-udelarIsmar webinar-udelar
Ismar webinar-udelar
 
#latinproject @openeducationweek2014 - Methodologies
#latinproject @openeducationweek2014 - Methodologies#latinproject @openeducationweek2014 - Methodologies
#latinproject @openeducationweek2014 - Methodologies
 
Mini-curso RubyOnRails CESOL
Mini-curso RubyOnRails CESOLMini-curso RubyOnRails CESOL
Mini-curso RubyOnRails CESOL
 
Plp aula-02-critérios de avaliação
Plp aula-02-critérios de avaliaçãoPlp aula-02-critérios de avaliação
Plp aula-02-critérios de avaliação
 
E:\Plp 2009 2\Plp Aula11
E:\Plp 2009 2\Plp Aula11E:\Plp 2009 2\Plp Aula11
E:\Plp 2009 2\Plp Aula11
 
Paradigmas de Linguagens de Programação - Introdução
Paradigmas de Linguagens de Programação - IntroduçãoParadigmas de Linguagens de Programação - Introdução
Paradigmas de Linguagens de Programação - Introdução
 
Charla juegos udelar2015_vfinal
Charla juegos udelar2015_vfinalCharla juegos udelar2015_vfinal
Charla juegos udelar2015_vfinal
 
Fundamentos de Sistemas de Informacao - Aula 13
Fundamentos de Sistemas de Informacao - Aula 13Fundamentos de Sistemas de Informacao - Aula 13
Fundamentos de Sistemas de Informacao - Aula 13
 
Fundamentos de Sistemas de Informacao - Aula #14 2009_2
Fundamentos de Sistemas de Informacao - Aula #14 2009_2Fundamentos de Sistemas de Informacao - Aula #14 2009_2
Fundamentos de Sistemas de Informacao - Aula #14 2009_2
 

Similar to Paradigmas do Ruby

Conhecendo Ruby on Rails
Conhecendo Ruby on RailsConhecendo Ruby on Rails
Conhecendo Ruby on RailsSergio Henrique
 
Esta começando a programar para a web? Então começe com Rails
Esta começando a programar para a web? Então começe com RailsEsta começando a programar para a web? Então começe com Rails
Esta começando a programar para a web? Então começe com Railsismaelstahelin
 
Uma Abordagem Prática de Orientação a Objetos com PHP (FLISOL DF 2011)
Uma Abordagem Prática de Orientação a Objetos com PHP (FLISOL DF 2011)Uma Abordagem Prática de Orientação a Objetos com PHP (FLISOL DF 2011)
Uma Abordagem Prática de Orientação a Objetos com PHP (FLISOL DF 2011)George Mendonça
 
Orientação a Objetos com PHP
Orientação a Objetos com PHPOrientação a Objetos com PHP
Orientação a Objetos com PHPAugusto Pascutti
 
Workshop ExtJS4
Workshop ExtJS4Workshop ExtJS4
Workshop ExtJS4javamanrj
 
Abordagem geral - Ruby on rails
Abordagem geral - Ruby on railsAbordagem geral - Ruby on rails
Abordagem geral - Ruby on railsCOTIC-PROEG (UFPA)
 
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAPalestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAThiago Cifani
 
Introdução ao Rails (Linguagil)
Introdução ao Rails (Linguagil)Introdução ao Rails (Linguagil)
Introdução ao Rails (Linguagil)Daniel Lopes
 
Apresentação ruby + rails 2014
Apresentação ruby + rails 2014Apresentação ruby + rails 2014
Apresentação ruby + rails 2014Marcelo Bohn
 
Ruby, Rails e Diversão (Campus Party Brasil 2009)
Ruby, Rails e Diversão (Campus Party Brasil 2009)Ruby, Rails e Diversão (Campus Party Brasil 2009)
Ruby, Rails e Diversão (Campus Party Brasil 2009)Julio Monteiro
 
Ruby para-programadores-php
Ruby para-programadores-phpRuby para-programadores-php
Ruby para-programadores-phpJuan Maiz
 
Ruby para programadores PHP
Ruby para programadores PHPRuby para programadores PHP
Ruby para programadores PHPJuan Maiz
 
Apresentação ruby - IEI 2013
Apresentação ruby - IEI 2013Apresentação ruby - IEI 2013
Apresentação ruby - IEI 2013Marcelo Bohn
 
Minicurso de Rails - WTISC 2014
Minicurso de Rails - WTISC 2014Minicurso de Rails - WTISC 2014
Minicurso de Rails - WTISC 2014Zarathon Maia
 
Doctrine 2 camada de persistência para php
Doctrine 2   camada de persistência para phpDoctrine 2   camada de persistência para php
Doctrine 2 camada de persistência para phpFabio B. Silva
 

Similar to Paradigmas do Ruby (20)

Conhecendo Ruby on Rails
Conhecendo Ruby on RailsConhecendo Ruby on Rails
Conhecendo Ruby on Rails
 
Esta começando a programar para a web? Então começe com Rails
Esta começando a programar para a web? Então começe com RailsEsta começando a programar para a web? Então começe com Rails
Esta começando a programar para a web? Então começe com Rails
 
Uma Abordagem Prática de Orientação a Objetos com PHP (FLISOL DF 2011)
Uma Abordagem Prática de Orientação a Objetos com PHP (FLISOL DF 2011)Uma Abordagem Prática de Orientação a Objetos com PHP (FLISOL DF 2011)
Uma Abordagem Prática de Orientação a Objetos com PHP (FLISOL DF 2011)
 
Orientação a Objetos com PHP
Orientação a Objetos com PHPOrientação a Objetos com PHP
Orientação a Objetos com PHP
 
Workshop ExtJS4
Workshop ExtJS4Workshop ExtJS4
Workshop ExtJS4
 
Abordagem geral - Ruby on rails
Abordagem geral - Ruby on railsAbordagem geral - Ruby on rails
Abordagem geral - Ruby on rails
 
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAPalestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVA
 
Introdução ao Rails (Linguagil)
Introdução ao Rails (Linguagil)Introdução ao Rails (Linguagil)
Introdução ao Rails (Linguagil)
 
Java virtual machine quantas linguas fala a jvm2
Java virtual machine   quantas linguas fala a jvm2Java virtual machine   quantas linguas fala a jvm2
Java virtual machine quantas linguas fala a jvm2
 
Apresentação ruby + rails 2014
Apresentação ruby + rails 2014Apresentação ruby + rails 2014
Apresentação ruby + rails 2014
 
Curso ruby on rails
Curso ruby on railsCurso ruby on rails
Curso ruby on rails
 
Ruby, Rails e Diversão (Campus Party Brasil 2009)
Ruby, Rails e Diversão (Campus Party Brasil 2009)Ruby, Rails e Diversão (Campus Party Brasil 2009)
Ruby, Rails e Diversão (Campus Party Brasil 2009)
 
Ruby para-programadores-php
Ruby para-programadores-phpRuby para-programadores-php
Ruby para-programadores-php
 
Ruby para programadores PHP
Ruby para programadores PHPRuby para programadores PHP
Ruby para programadores PHP
 
Ruby
RubyRuby
Ruby
 
Introdução ao Ruby on Rails
Introdução ao Ruby on RailsIntrodução ao Ruby on Rails
Introdução ao Ruby on Rails
 
Apresentação ruby - IEI 2013
Apresentação ruby - IEI 2013Apresentação ruby - IEI 2013
Apresentação ruby - IEI 2013
 
Minicurso de Rails - WTISC 2014
Minicurso de Rails - WTISC 2014Minicurso de Rails - WTISC 2014
Minicurso de Rails - WTISC 2014
 
Doctrine 2 camada de persistência para php
Doctrine 2   camada de persistência para phpDoctrine 2   camada de persistência para php
Doctrine 2 camada de persistência para php
 
Curso javascript básico
Curso javascript básicoCurso javascript básico
Curso javascript básico
 

Paradigmas do Ruby

  • 1. Paradigmas da Linguagem Ruby sexta-feira, 7 de outubro de 11
  • 2. Introdução • Desenvolvida por Yukishiro Matsumoto • Lançada em 1995 • Baseado na linguagem Perl, Smalltalk, Python • Escrita em C • Multiplataforma • O projeto mais famoso é o meta-framework Ruby on Rails. sexta-feira, 7 de outubro de 11
  • 3. Características • Interpretada • não é compilada • analise sintática é feita em tempo de execução • Tipagem dinâmica e forte • não é necessário declaração de variável • Tipos Primitivos são Classes • Herança Simples (É usado Mixin’s, ultiliza o conceito de módulos ou coleções de métodos) • Diferente das linguagens Python e C++ sexta-feira, 7 de outubro de 11
  • 4. Características • Multi-paradigma • Orientada Objetos • Funcional • Programação Imperativa • Open Source • Case-sensitive • Bibliotécas (Ruby Gems) sexta-feira, 7 de outubro de 11
  • 5. Características • Variáveis • Variáveis de Instância - @cliente • Variáveis Classes - @@cliente • Variáveis Globais - $cliente • Variáveis Locais - cliente sexta-feira, 7 de outubro de 11
  • 6. Características • Ver tudo como um Objeto Cada parcela de informação e código podem receber as suas próprias propriedades e ações. Classe Classe herdando outra class MyLib class MyOtherLib < MyLib ! @@name = "mylib" ! @@name = "myotherlib" ! end ! def self.name ! ! @@name ! end MyOtherLib.name end #=> "myotherlib" MyLib.name MyLib.name #=> "mylib" #=> "myotherlib" sexta-feira, 7 de outubro de 11
  • 7. Características • Os métodos sempre retornam algo, nem que seja nil def um_metodo def um_metodo def um_metodo end (1..5).to_a 1 == 2-1 um_metodo end end # nil um_metodo um_metodo # [1,2,3,4,5] # true • Multiplos retornos por métodos def um_metodo return 1,2,3 end a ,b,c = um_metodo puts a ,b ,c #1 #2 #3 sexta-feira, 7 de outubro de 11
  • 8. Critérios de Avaliação • Legibilidade(Facilidade de Leitura e Entendimento) • Syntaxe limpa # Output “Eu gosto de Ruby” diz = "Eu gosto de Ruby" puts diz • Redigibilidade (Facilidade em escrever programas) • class Carro < Veiculo #suporte a abstração • carro = 1 carro = ”Gol” # não precisa definir o tipo da variável • Confiabilidade • Verificação de Tipos de variáveis (x.kind_of? Integer) • Tratamento de Exceção (raise, Throw/Catch) sexta-feira, 7 de outubro de 11
  • 9. Critérios de Avaliação • Facilidade de Aprendizado • Documentação para aprendizado • Similaridade com outras linguagens (C, Python, Smalltalk) • Reusabilidade • Possui o Paradigma Orientado a Objetos possuindo Herança • No Ruby existe o conceito de módulos (chamados categorias em Objective-C). Os módulos são coleções de métodos. class MyArray include Enumerable end • Portabilidade • Roda em todos Sistemas Operacionais (Instalando o RVM) sexta-feira, 7 de outubro de 11
  • 10. Onde se pode usar? Testes Automatizados •Web •Desktop •Scripting •Computação Científica •Inteligência Artifícial •Bioinformática •etc... sexta-feira, 7 de outubro de 11
  • 11. Plataformas Suportadas • Mac OS x •Linux •MS-DOS •BSDs (inclui o FreeBSD e o OpenBSD) •Acorn RISC OS •Microsoft Windows 95, 98, XP, and Vista •OS/2 •Amiga •Celulares Symbian Series 60 •Plataformas que contém uma Máquina Virtual Java (Usando JRuby ao invés de Ruby oficial) sexta-feira, 7 de outubro de 11
  • 12. Paradigmas Linguagem Ruby Faculdade Anglo Americano Curso: Ciência da Computação Nomes: Heverson Damasceno sexta-feira, 7 de outubro de 11