Ruby Viviane Souza (vess). Roteiro Teoria Prática Testes em Ruby Conclusões Dúvidas.

41
Ruby Ruby Viviane Souza (vess) “E m vez de enfatizar o ' o quê' , eu quero enfatizar a parte do ' c omo' : C omo nos s entimos enquanto es tamos programando.” Yukihiro M atsumoto,2003

Transcript of Ruby Viviane Souza (vess). Roteiro Teoria Prática Testes em Ruby Conclusões Dúvidas.

Page 1: Ruby Viviane Souza (vess). Roteiro  Teoria  Prática  Testes em Ruby  Conclusões  Dúvidas.

RubyRuby

Viviane Souza (vess)

“Em vez de enfatizar o 'o quê' , eu quero enfatizar a parte do 'como': Como nos sentimos enquanto estamos programando.”

Yukihiro Matsumoto, 2003

Page 2: Ruby Viviane Souza (vess). Roteiro  Teoria  Prática  Testes em Ruby  Conclusões  Dúvidas.

Roteiro

Teoria Prática Testes em Ruby Conclusões Dúvidas

Page 3: Ruby Viviane Souza (vess). Roteiro  Teoria  Prática  Testes em Ruby  Conclusões  Dúvidas.

RubyRuby Teoria

Page 4: Ruby Viviane Souza (vess). Roteiro  Teoria  Prática  Testes em Ruby  Conclusões  Dúvidas.

Introdução

Linguagem de script: Interpretada; Orientada a objetos; Tipagem dinâmica e forte;

Boa API de extensões; Portável; Totalmente livre:

Não paga para usá-la; Liberdade de copiar, modificar e distribuí-

la.

Page 5: Ruby Viviane Souza (vess). Roteiro  Teoria  Prática  Testes em Ruby  Conclusões  Dúvidas.

História

Criada por Matz em 1993, inicialmente popular no Japão;

Busca simplicidade e concisão, para reduzir o tempo dos programadores na frente de um computador;

Agrega as melhores características das outras linguagens (na visão do seu idealizador).

Page 6: Ruby Viviane Souza (vess). Roteiro  Teoria  Prática  Testes em Ruby  Conclusões  Dúvidas.

Paradigma de Programação

Orientada a objeto: Tudo é objeto; Não há tipos primitivos; Não há operadores Tudo é método (o que dá grande

liberdade de modificação); Suporte a polimorfismo; Dinâmica e fortemente tipada;

Page 7: Ruby Viviane Souza (vess). Roteiro  Teoria  Prática  Testes em Ruby  Conclusões  Dúvidas.

Semelhanças

Perl Ortogonalidade

SmalTalk Inexistência de tipos primitivos

Python Manipulação de exceções

Page 8: Ruby Viviane Souza (vess). Roteiro  Teoria  Prática  Testes em Ruby  Conclusões  Dúvidas.

Utilização

Administradores de sistemas UNIX Desenvolvimento de Scripts;

Sketchup – Desenhos em 3D;

Page 9: Ruby Viviane Souza (vess). Roteiro  Teoria  Prática  Testes em Ruby  Conclusões  Dúvidas.

Utilização

Framework Web – Ruby on Rails: Responsável por boa parte da

divulgação de Ruby entre os programadores;

Extremamente completo; Arquitetura bem definida e acessível.

RubyGems Ferramenta para Gerenciamento de

Pacotes e Bibliotecas

Page 10: Ruby Viviane Souza (vess). Roteiro  Teoria  Prática  Testes em Ruby  Conclusões  Dúvidas.

Sintaxe

Estrutura Léxica - o conjunto de caracteres é baseado em ASCII: Identificadores; Comentário; Documentação embutida; Palavras chave;

Programa: É uma seqüência de expressões.

Page 11: Ruby Viviane Souza (vess). Roteiro  Teoria  Prática  Testes em Ruby  Conclusões  Dúvidas.

Variáveis

Globais precedidas por: $

Instâncias Precedidas por @

Locais Pseudo-variáveis

nil true False ...

Page 12: Ruby Viviane Souza (vess). Roteiro  Teoria  Prática  Testes em Ruby  Conclusões  Dúvidas.

Estruturas de Controle

Condicionais if...elsif...else...end case...when...else...end ...

Loops while for ...

Page 13: Ruby Viviane Souza (vess). Roteiro  Teoria  Prática  Testes em Ruby  Conclusões  Dúvidas.

Especificação

Documentação de Referência: Ruby Core Reference; Ruby Standard Library Reference; Ruby C API Reference;

Manuais: Programming Ruby; Ruby User’s Guide

Tutoriais “Rápidos” : Try Ruby! Ruby in Twenty Minutes

Page 14: Ruby Viviane Souza (vess). Roteiro  Teoria  Prática  Testes em Ruby  Conclusões  Dúvidas.

Implementação

Ruby é implementado em várias plataformas e há 3 formas principais de contato com o programador;

Interpretador Ruby: Utiliza arquivos na extensão .rb para rodar o

programa; Sintaxe Básica : ruby hello.rb;

Interactive Ruby Shell – IRB: Interpretador interativo onde o usuário executa o

programa linha a linha; JRuby:

Uma implementação em Java do Interpretador Ruby. Muito usado na comunicação de Ruby com Java;

Page 15: Ruby Viviane Souza (vess). Roteiro  Teoria  Prática  Testes em Ruby  Conclusões  Dúvidas.

Ambientes de Desenvolvimento

FreeRIDE: É instalado automaticamente; Não dá suporte à expressões regulares; Muito Lento e péssima interface gráfica;

Page 16: Ruby Viviane Souza (vess). Roteiro  Teoria  Prática  Testes em Ruby  Conclusões  Dúvidas.

Ambientes de Desenvolvimento

Arachno: É mais rápido, dá suporte à expressões

regulares sem precisar instalar plugins; Permite visualizar o código dos plugins,

debbug simultâneo; Permite visualizar as mensagens da

rede; Permite o uso e a definição de

Templates;

Page 17: Ruby Viviane Souza (vess). Roteiro  Teoria  Prática  Testes em Ruby  Conclusões  Dúvidas.

Ambientes de Desenvolvimento

Eclipse RDT / Aptana: Traz as facilidades do eclipse; Muitos programadores já a conhecem; Tem que configurar(plugins +

interpretador); Checa a sintaxe do código (bastante

básico); Traz assistente de conteúdo para Ruby.

Page 18: Ruby Viviane Souza (vess). Roteiro  Teoria  Prática  Testes em Ruby  Conclusões  Dúvidas.

Vantagens

Simplicidade e consistência; Há manipulação de variáveis; Checa os tipos das variáveis em tempo

de execução; Gerenciamento de memória; Biblioteca facilmente expansível; Portável.

Page 19: Ruby Viviane Souza (vess). Roteiro  Teoria  Prática  Testes em Ruby  Conclusões  Dúvidas.

Desvantagens

Modelo de threading Pouco eficiente; Impossibilita múltiplas CPU’s

É lenta: Toda operação em Ruby é feita por

invocação de método; É interpretada; Gerenciamento de memória automático.

Page 20: Ruby Viviane Souza (vess). Roteiro  Teoria  Prática  Testes em Ruby  Conclusões  Dúvidas.

RubyRuby Prática

Page 21: Ruby Viviane Souza (vess). Roteiro  Teoria  Prática  Testes em Ruby  Conclusões  Dúvidas.

Configurando o Ambiente

Baixar Eclipse disponível em: www.cin.ufpe.br/~vess/talc IDE já configurada por motivos didáticos

Baixar Arquivos “*.rb” disponíveis em: www.cin.ufpe.br/~vess/talc/arquivos

Page 22: Ruby Viviane Souza (vess). Roteiro  Teoria  Prática  Testes em Ruby  Conclusões  Dúvidas.

Criando um novo Projeto

Page 23: Ruby Viviane Souza (vess). Roteiro  Teoria  Prática  Testes em Ruby  Conclusões  Dúvidas.

Selecionando um Projeto Ruby

Page 24: Ruby Viviane Souza (vess). Roteiro  Teoria  Prática  Testes em Ruby  Conclusões  Dúvidas.

Atribuindo nome ao projeto

Page 25: Ruby Viviane Souza (vess). Roteiro  Teoria  Prática  Testes em Ruby  Conclusões  Dúvidas.

Finalizar Criação do Projeto

Page 26: Ruby Viviane Souza (vess). Roteiro  Teoria  Prática  Testes em Ruby  Conclusões  Dúvidas.

Criando Arquivos

Page 27: Ruby Viviane Souza (vess). Roteiro  Teoria  Prática  Testes em Ruby  Conclusões  Dúvidas.

Atribuindo nome ao arquivo

IMPORTANTE: Não esquecer de colocar a extensão (.rb) no nome do arquivo

Page 28: Ruby Viviane Souza (vess). Roteiro  Teoria  Prática  Testes em Ruby  Conclusões  Dúvidas.

Criando Classes

Construtor

Variável de instância

Método

Herança

Interpolação de expressão/ substituído pelo valor da expressão

Page 29: Ruby Viviane Souza (vess). Roteiro  Teoria  Prática  Testes em Ruby  Conclusões  Dúvidas.

Criando métodos

Método “get” / atributos virtuais

Retorna true ou false

Modifica valores

Page 30: Ruby Viviane Souza (vess). Roteiro  Teoria  Prática  Testes em Ruby  Conclusões  Dúvidas.

Exemplos Variados

Cópia de variáveis

Listas / Arrays

Procedimentos

Page 31: Ruby Viviane Souza (vess). Roteiro  Teoria  Prática  Testes em Ruby  Conclusões  Dúvidas.

Executando *.rb

Page 32: Ruby Viviane Souza (vess). Roteiro  Teoria  Prática  Testes em Ruby  Conclusões  Dúvidas.

Resultados no Console

Page 33: Ruby Viviane Souza (vess). Roteiro  Teoria  Prática  Testes em Ruby  Conclusões  Dúvidas.

RubyRuby Testes

Page 34: Ruby Viviane Souza (vess). Roteiro  Teoria  Prática  Testes em Ruby  Conclusões  Dúvidas.

Testes Unitários

SuiteTest TestCase

assert_nil assert_instance_of assert_match assert_same assert_kind_of

Page 35: Ruby Viviane Souza (vess). Roteiro  Teoria  Prática  Testes em Ruby  Conclusões  Dúvidas.

Criando Arquivo de Teste

Semelhante a criação de um arquivo qualquer Inclui a extensão .rb

“Importar” arquivo a ser testado require “Arquivo”

“Importar” libs de UnitTest Require “test/unit”

Page 36: Ruby Viviane Souza (vess). Roteiro  Teoria  Prática  Testes em Ruby  Conclusões  Dúvidas.

Classe de Teste

Métodos de Teste

Destrutor

Construtor

Page 37: Ruby Viviane Souza (vess). Roteiro  Teoria  Prática  Testes em Ruby  Conclusões  Dúvidas.

Resultado do Teste

Erro no test_subtrai, analisar e corrigir

Page 38: Ruby Viviane Souza (vess). Roteiro  Teoria  Prática  Testes em Ruby  Conclusões  Dúvidas.

RubyRuby Conclusões

Page 39: Ruby Viviane Souza (vess). Roteiro  Teoria  Prática  Testes em Ruby  Conclusões  Dúvidas.

Conclusões

Como foi visto, Ruby nasceu da idéia de que a linguagem tem que se adaptar ao programador, e não o contrário;

Ruby tem tido grande aceitação em todo o mundo e continua a crescer, está hoje em 10º no ranking TIOBE.

Muito pouco foi mostrado, Ruby tem muito mais recursos.

Page 40: Ruby Viviane Souza (vess). Roteiro  Teoria  Prática  Testes em Ruby  Conclusões  Dúvidas.

RubyRuby Dúvidas ???

Page 41: Ruby Viviane Souza (vess). Roteiro  Teoria  Prática  Testes em Ruby  Conclusões  Dúvidas.

RubyRubyObrigada!

vess at cin.ufpe.br