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

Upload: internet

Post on 19-Apr-2015

107 views

Category:

Documents


0 download

TRANSCRIPT

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