Ruby Viviane Souza (vess). Roteiro Teoria Prática Testes em Ruby Conclusões Dúvidas.
Transcript of 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
Roteiro
Teoria Prática Testes em Ruby Conclusões Dúvidas
RubyRuby Teoria
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.
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).
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;
Semelhanças
Perl Ortogonalidade
SmalTalk Inexistência de tipos primitivos
Python Manipulação de exceções
Utilização
Administradores de sistemas UNIX Desenvolvimento de Scripts;
Sketchup – Desenhos em 3D;
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
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.
Variáveis
Globais precedidas por: $
Instâncias Precedidas por @
Locais Pseudo-variáveis
nil true False ...
Estruturas de Controle
Condicionais if...elsif...else...end case...when...else...end ...
Loops while for ...
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
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;
Ambientes de Desenvolvimento
FreeRIDE: É instalado automaticamente; Não dá suporte à expressões regulares; Muito Lento e péssima interface gráfica;
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;
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.
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.
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.
RubyRuby Prática
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
Criando um novo Projeto
Selecionando um Projeto Ruby
Atribuindo nome ao projeto
Finalizar Criação do Projeto
Criando Arquivos
Atribuindo nome ao arquivo
IMPORTANTE: Não esquecer de colocar a extensão (.rb) no nome do arquivo
Criando Classes
Construtor
Variável de instância
Método
Herança
Interpolação de expressão/ substituído pelo valor da expressão
Criando métodos
Método “get” / atributos virtuais
Retorna true ou false
Modifica valores
Exemplos Variados
Cópia de variáveis
Listas / Arrays
Procedimentos
Executando *.rb
Resultados no Console
RubyRuby Testes
Testes Unitários
SuiteTest TestCase
assert_nil assert_instance_of assert_match assert_same assert_kind_of
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”
Classe de Teste
Métodos de Teste
Destrutor
Construtor
Resultado do Teste
Erro no test_subtrai, analisar e corrigir
RubyRuby Conclusões
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.
RubyRuby Dúvidas ???
RubyRubyObrigada!
vess at cin.ufpe.br