Práticas de Desenvolvimento de Software



Documentos relacionados
Ruby. Simplicidade e produtividade

Ruby e Ruby on Rails

Alunos. Hudson Martins da Silva Laércio Pedro Hoppe

Começando com Ruby on

História. Nasceu em 1993, numa discussão entre Yuhikiro Matsumoto e um colega.

Fundamentos de Programação II. Introdução à linguagem de programação C++

Programação WEB. Prof. André Gustavo Duarte de Almeida docente.ifrn.edu.br/andrealmeida. Aula III Introdução PHP

Bruno Jurkovski Lucas Fialho Zawacki. Site do curso:

PHP. Hypertext Pre-Processor

Instituto Federal do Sertão-PE. Curso de PHP. Professor: Felipe Correia

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa

2 Orientação a objetos na prática

UFRPE Prof. Gustavo Callou

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática

Tudo o que Você Sempre Quis Saber Sobre Linguagens de Programação* (*Mas Tinha Medo de Perguntar) Diego Padilha Rubert FACOM

Allisson Barros 12/ Daniel Luz 13/ Leandro Bergmann 14/ Luiz Fernando Vieira 13/ Uriel Silva 12/

Algoritmos e Estrutura de Dados. Introdução a Linguagem Python (Parte I) Prof. Tiago A. E. Ferreira

Fundamentos de Programação. Turma CI-240-EST. Josiney de Souza.

Quem sou eu? Daniel Coelho de Andrade. Graduando em Engenharia de Computação - UEFS. Membro da Empresa Júnior de Engenharia de Computação da UEFS

Linguagens de programação

Minicurso de Python Aula 1. Raphael Lupchinski Marcelo Millani

Slides_Java_1 !"$ % & $ ' ' Output: Run java. Compile javac. Name of program. Must be the same as name of file. Java source code.

Python. Introdução à Programação SI1 - BSI

FBV - Linguagem de Programação II. Um pouco sobre Java

Mini Curso DESCOMPLICANDO C# Professor Hélio

Panorâmica geral sobre PHP. PHP é uma linguagem que permite fazer. um ficheiro em PHP contem código PHP misturado com HTML.

Linguagem de Programação. Helder Lucas S. Silas Valdemar

Aula 1. // exemplo1.cpp /* Incluímos a biblioteca C++ padrão de entrada e saída */ #include <iostream>

CURSO DE PROGRAMAÇÃO EM JAVA

2 echo "PHP e outros.";

Programação Web com PHP. Prof. Wylliams Barbosa Santos Optativa IV Projetos de Sistemas Web

Aspectos de Segurança em Programação com Java

Organização de programas em Python. Vanessa Braganholo

Treinamento em PHP. Aula 1. Ari Stopassola Junior

Curso de Programação Web com PHP Aula 01

Oracle PL/SQL Overview

Técnicas de Programação II

Programação de Computadores. Professor Ilaim Costa Junior

Programação para web JavaScript

MC-102 Aula 01. Instituto de Computação Unicamp

Java - Introdução. Professor: Vilson Heck Junior. vilson.junior@ifsc.edu.br

Introdução sobre Scilab

OOP - Java. Artur Duque Rossi Mestrado em Modelagem Computacional Universidade Federal de Juiz de Fora

Programando em C++ Histórico da Linguagem C

Programação para Dispositivos Móveis Aula 1. Prof. William Yamamoto

A Linguagem Python: Uma visão geral. Prof. Alberto Costa Neto Programação em Python

Arduino e Python. Do It Yourself! Luís Bruno Jefferson Jarden Francisco Marcelino

O código JavaScript deve ser colocado entre tags de comentário para ficar escondido no caso de navegadores antigos que não reconhecem a linguagem.

e à Linguagem de Programação Python

Python: Comandos Básicos. Claudio Esperança

Estruturas de controle no nível de sentença

Introdução ao FORTRAN (Parte I)

Aula 09 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Linguagens de Programação

Programação WEB I Estruturas de controle e repetição

Para testar seu primeiro código utilizando PHP, abra um editor de texto (bloco de notas no Windows) e digite o código abaixo:

Algoritmos e programação

Linguagem de Programação. Introdução ao PHP. Prof Mauricio Lederer Ciência da Computação - UNIANDRADE 1

Aprendendo Python na Prática. Dante Moreira Zaupa Mestrando em Computação Aplicada Bolsista de Pesquisa

Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: Prof. Dr. Raimundo Moura

Linguagem de Programação III Aula 2 - Apresentação da Disciplina

Ambientes Visuais. Ambientes Visuais

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc.

Primeiro Curso de Programação em C 3 a Edição

Redes de Computadores

Organização de Computadores Software

Curso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais

Programação Web Prof. Wladimir

Telefonia IP MOT. Prática 1

LINGUAGEM DE PROGRAMAÇÃO WEB

Programação de Computadores I. Conhecendo a IDE Code::Blocks

Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões

FundamentosemInformática

Plugins TerraView. Última revisão: 12/12/32006 Versão TerraLib: 3.1.4

Ruby on Rails. Aprendizado evolutivo do Ruby até o desenvolvimento de aplicações em Rails

Sistemas Microcontrolados

Programando em C# Orientado a Objetos. By: Maromo

Programação por Objectos. Java

Fundament n os s da platafo f rm r a. NE N T André Menegassi

PROGRAMA DE DISCIPLINA

PÓS-GRADUAÇÃO EM MATEMÁTICA COMPUTACIONAL INFORMÁTICA INSTRUMENTAL

Representação de Algoritmos - Linguagens de Programação

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi

Transações Seguras em Bancos de Dados (MySQL)

Groovy & Grails. Arian Pasquali. quarta-feira, 12 de outubro de 11

OPERADORES E ESTRUTURAS DE CONTROLE

SQL Procedural. Josino Rodrigues Neto

O que é o JavaScript?

ESTUDO SOBRE AS LINGUAGENS DE PROGRAMAÇÃO HOSPEDEIRAS SUPORTADAS PELA FERRAMENTA HTML. Aluno: Rodrigo Ristow Orientador: Wilson Pedro Carli

Introdução à Programação

António Rocha Nuno Melo e Castro

Analisar os sistemas operacionais apresentados na figura e responder as questões abaixo: Identificar

Tecnologias para apresentação de dados - Java Script. Aécio Costa

Ruby Uma Linguagem Atraente

Transcrição:

Aula 3. 09/03/2015. Práticas de Desenvolvimento de Software Aula 3 - Introdução à linguagem de programação Ruby Oferecimento

Ruby (1) Ruby

Ruby (2) Ruby Linguagem de programação dinâmica, de código aberto, com foco em simplicidade e produtividade. Tem sintaxe elegante, natural para ler e fácil de escrever.

Ruby (3) Ruby Matz 2005 Multi Open source Yukihiro Matsumoto criou a linguagem em 1995. I was thinking about the possibility of an objectoriented scripting language. Perl was ugly. Python wasn t a true OO language.

Ruby (4) Ruby Matz 2005 Multi Open source Em 2005, Ruby ganhou popularidade junto com o framework de desenvolvimento web Ruby on Rails.

Ruby (5) Ruby Matz 2005 Multi Open source É uma linguagem multiparadigma (procedural, OO, funcional), multiplataforma (Linux, Mac, Windows) e tipicamente interpretada (Matz's Ruby Interpreter).

Ruby (6) Ruby Matz 2005 Multi Open source https://github.com/ruby/ruby

Ruby (7) Aplicações criadas com Ruby

Linguagem compilada vs. interpretada (1) Linguagem compilada vs. interpretada

Linguagem compilada vs. interpretada (2) Processo em uma linguagem compilada Desenvolvedor Usuário "compilar" "executar" Código fonte Código executável A compilação gera um arquivo binário nativo com instruções de máquina Executa nativamente

Linguagem compilada vs. interpretada (3) Processo em uma linguagem interpretada Desenvolvedor "executar" Código fonte Trecho executável Trechos de código são compilados dinamicamente por um interpretador Executa trecho

Linguagem compilada vs. interpretada (3) Processo em uma linguagem interpretada Desenvolvedor Usuário "executar" Código fonte Trecho executável Trechos de código são compilados dinamicamente por um interpretador Executa trecho

Linguagem compilada vs. interpretada (4) Java é uma linguagem compilada?

Linguagem compilada vs. interpretada (5) Processo em Java Desenvolvedor Usuário "compilar" "executar" Código fonte Código executável pela JVM A compilação gera um arquivo bytecode com instruções para a máquina virtual java (JVM) Interpreta com a JVM

Linguagem compilada vs. interpretada (6) E o que Ruby tem com isso?

Linguagem compilada vs. interpretada (7) Ruby Pode ser interpretada ou compilada. MRI mruby jruby ironruby RubyMotion Rubinius Matz Ruby Interpreter (interpretador mais popular de Ruby) Implementação leve/"embeddable" de Ruby Implementação em Java Implementação em.net Implementação comercial que roda em ios, OS X e Android Implementação em Ruby capaz de compilar Ruby

Instalação de um interpretador Ruby RVM é uma ferramenta em linha de comando que permite instalar, gerenciar e trabalhar com múltiplos ambientes (interpretadores/bibliotecas) de Ruby facilmente. https://rvm.io/

Scripts em Ruby (1) DEMO irb (Interactive Ruby) Permite interpretar código passo a passo

Scripts em Ruby (1) DEMO Execução de um script

Estrutura da linguagem de programação Ruby (1) Tipos de dados mais comuns Tipo Nulo Booleano Exemplos nil true, false Inteiro 1, 100, 3000, 3_000 Ponto flutuante String Símbolos 2.53, 3.1415, 3000.2, 3_000.20 "duplas", 'simples' :username, :password, :name, :age Array [1, 2, 3] Hash { 'a' => 1, 'b' => 2, 3 => 'c' }

Estrutura da linguagem de programação Ruby (2) Operadores aritméticos Operador Exemplos + 1 + 1 # 2-9 - 5 # 4 * 3 * 2 # 6 / 10 / 3 # 3 % 10 % 3 # 1

Estrutura da linguagem de programação Ruby (3) Operadores relacionais Operador Exemplos > 5 > 5 # false >= 5 >= 5 # true < 3 < 4 # true <= 3 <= 2.9 # false == 5 == 5.5 # false!= 5!= 5.5 # true

Estrutura da linguagem de programação Ruby (4) Operadores condicionais Operador && and Exemplos true && false # false true and false # false true false # true or true or false # true!!true # false not not true # false

Estrutura da linguagem de programação Ruby (5) Operadores de atribuição Operador Exemplos = num = 1 # 1 += -= *= /= %= num = 1 num += 1 # 2 num = 1 num -= 1 # 0 num = 2 num *= 3 # 6 num = 4 num /= 2 # 2 num = 3 num %= 2 # 1

Sintaxe da linguagem de programação Ruby (1) Comentário # This is an inline comment =begin # This is a multiline comment def todo end =end def done puts "Ready to go" end

Sintaxe da linguagem de programação Ruby (1) String # String concatenation. a = "Hello" b = "World" c = a + b # => "HelloWorld" # String interpolation. s = "2 * 3 = #{2*3}" # => "2 * 3 = 6"

Sintaxe da linguagem de programação Ruby (1) Array # Create a new array with numbers. a = [ 1, 2, 3, 4, 5 ] a[0] # 1 a[4] # 5 a[-1] # 5 a.pop # remove the last element (5) a.shift # remove the first element (1) a.push(10) # add 10 to the tail of the array a.unshift(20) # add 20 to the head of the array a.size a.index(2) # length/size of the array # position of the 1st occurrence # of element 2 in the array a.count(3) # how many times the element 3 # occurs in the array

Sintaxe da linguagem de programação Ruby (1) Hash # A Ruby Hash is an associative table. h = { :name => 'Rafael', :surname => 'Barbolo', :age => 27 } h[:name] # "Rafael" h[:surname] # "Barbolo" h[:age] # 27 a.size # 3, how many associations (keys/values) a.keys # [ :name, :surname, :age ] a.values # [ "Rafael", "Barbolo", 27 ]

Sintaxe da linguagem de programação Ruby (1) Funções (1) # It's a Ruby convention to use snake_case instead # of CamelCase for functions and variables names. def function_name(arg1, arg2 = 3) puts "This function receives arg1 and arg2." puts "The default value of arg2 is 3." puts "The result is the product of arg1 with arg2." return arg1 * arg2 # "return" can be omitted end function_name(2) # 6 function_name(2, 4) # 8

Sintaxe da linguagem de programação Ruby (1) Funções (2) def function_name puts "This function doesn't receive arguments." puts "The result will always be 1000." 1000 end function_name() # 1000 function_name # 1000

Sintaxe da linguagem de programação Ruby (1) Impressão # Examples of printing functions print "printing without line break" puts "printing with line break" p "p is an alias of puts" puts 2*5 # => 10

Sintaxe da linguagem de programação Ruby (1) Controle condicional: if/else # Example of conditional control with if/else if condition1 puts "condition 1 is met" elsif condition2 puts "condition 2 is met" else puts "no conditions met" end

Sintaxe da linguagem de programação Ruby (1) Controle condicional: case/when # Example of conditional control with case/when case condition when 1 puts "condition 1 is met" when 2 puts "condition 2 is met" else puts "no conditions met" end

Sintaxe da linguagem de programação Ruby (1) Controle de iteração: while # Example of loop control with while while some_condition next # jump to the next iteration redo # reexecute the current iteration break # break the loop end

Sintaxe da linguagem de programação Ruby (1) Controle de iteração: each # There is "for" in Ruby, however it's rarely used. # The convention is to use object's methods to navigate # throughout the elements. # Example on how to navigate in an Array's elements array = [ 1, 2, 3, 4, 5 ] array.each do element puts element*10 end

Sintaxe da linguagem de programação Ruby (1) Leitura/escrita em arquivo # Read from file contents = File.open("path/to/file", "r").read # Write to file contents = "this is the content to be written" f = File.open("path/to/file", "w") f.write(contents) f.close

Instalação de bibliotecas e dependências (1) RubyGems RubyGems é o serviço de hospedagem de gems (bibliotecas) da comunidade Ruby. https://rubygems.org/

Instalação de bibliotecas e dependências (2) DEMO RubyGems gem install rails (exemplo de como instalar a gem Rails) https://rubygems.org/

Exemplo de um programa que calcula o fibonacci de um número DEMO fibonacci.rb # fibonacci: 1 1 2 3 5 8 13 def fibonacci(n) return n if [0, 1].include? n fibonacci(n - 1) + fibonacci(n - 2) end # Example on how to use: # fibonacci(6) # 8

Bibliografia: referência para esta aula Programming Ruby Dave Thomas Primeira edição gratuita: http://ruby-doc.com/docs/programmingruby/