ruby viviane souza (vess). roteiro teoria prática testes em ruby conclusões dúvidas
TRANSCRIPT
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