Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Minicurso de
Ruby on Rails
Quem sou eu?
empreendedor
desenvolvedor web
desenvolvedor mobile
aspirante a desenvolvedor de games
designer
funcionário p...
Agenda
O que é Ruby
Como funciona uma aplicação web
O que é Rails
Aprofundando no Rails
O poder do Scaffold
*Surpresa (Se ...
O que é Ruby
Criada porYukihiro Matsumoto
Ideia concebida em 24 de fevereiro de 1993
Versão 1.0 lançada em 25 de dezembro ...
Porque programar em Ruby
 A simplicidade da linguagem afeta diretamente a
produtividade diária do desenvolvedor
 Linguag...
Afinal, o que fazer com Ruby?
 Cálculos complexos
 Scripts de teste
 Importação de dados para Bancos de Dados
 Automat...
Um resumo da linguagem Ruby!
Tipos de Dados
‘‘Não existem "tipos primitivos" em Ruby; todos os tipos são classes’’
Object ...
Um resumo da linguagem Ruby!
Tipos de Dados
‘‘Não existem "tipos primitivos" em Ruby; todos os tipos são classes’’
 Numer...
Um resumo da linguagem Ruby!
Tipos de Dados
‘‘Não existem "tipos primitivos" em Ruby; todos os tipos são classes’’
String ...
Um resumo da linguagem Ruby!
Tipos de Dados
‘‘Não existem "tipos primitivos" em Ruby; todos os tipos são classes’’
Symbol ...
Um resumo da linguagem Ruby!
Tipos de Dados
‘‘Não existem "tipos primitivos" em Ruby; todos os tipos são classes’’
Array s...
Um resumo da linguagem Ruby!
Tipos de Dados
‘‘Não existem "tipos primitivos" em Ruby; todos os tipos são classes’’
Hash re...
Um resumo da linguagem Ruby!
Tipos de Dados
‘‘Não existem "tipos primitivos" em Ruby; todos os tipos são classes’’
Regexp ...
Um resumo da linguagem Ruby!
Declaração de variáveis
Um objeto em Ruby é declarado com uma atribuição comum:
var = 1
var =...
Um resumo da linguagem Ruby!
Declaração de variáveis
Uma variável local é declarada normalmente.Uma variável de
instância ...
Um resumo da linguagem Ruby!
Arrays
a = [1, 'oi', 3.14, 1, 2, [4, 5]]
a[2] # => 3.14
a.reverse # => [[4, 5], 2, 1, 3.14, '...
Um resumo da linguagem Ruby!
Hash
hash = {'água' => 'molhada', 'fogo' => 'quente'}
puts hash['fogo'] # "quente"
hash.each_...
Um resumo da linguagem Ruby!
Blocos e Iteradores
Blocos de código (ou code blocks) são trechos de código que são
passados ...
Um resumo da linguagem Ruby!
Blocos e Iteradores
Iterando em arrays usando blocos:
array = [1, 'oi', 3.14]
array.each do |...
Um resumo da linguagem Ruby!
Blocos e Iteradores
Em Ruby,a estrutura de repetição for é apenas sugar syntax para
acessar o...
Um resumo da linguagem Ruby!
Classes
O código a seguir define uma classe chamada Pessoa.Além de initialize,o
construtor pa...
Um resumo da linguagem Ruby!
Classes
class Pessoa
attr_reader :nome, :idade
def initialize(nome = "Desconhecido", idade)
@...
Um resumo da linguagem Ruby!
Herança
Ruby não suporta herança múltipla.Ao invés disso,Ruby usa Mixins para
emular herança ...
Fatos interessantes sobre Ruby
 Em Ruby você não precisa declarar o tipo de variável
explicitamente
 O uso de Meta-progr...
Gems em Ruby
 Abstraem funcionalidades básicas da aplicação para pedaços
separados, podendo assim serem usados em qualque...
Como funciona uma aplicaçãoWeb?
O que é o Rails?
 Framework de código aberto desenvolvido em Ruby
 Tem por objetivo o desenvolvimento rápido e fácil de
...
O que é o Rails?
Arquitetura do Rails - MVC
O que é o Rails?
Arquitetura do Rails - MVC
 A parte responsável por apresentar os resultados na página
web é chamado de ...
Porque usar Rails?
 Alta velocidade de desenvolvimento
 Flexibilidade
 Código legível e com qualidade
 Integração fáci...
Onde estudar Rails?
 http://blog.caelum.com.br/ - Blog da Caelum
 http://andersonleite.com.br/ - Anderson Leite
 http:/...
Mãos no Rails
Instalar o rails
#gem install rails
Ajuda do rails
#rails --help
Criar uma aplicação
#rails new [caminho-da-...
Estrutura do Rails App
 app - A maioria dos arquivos especícos da nossa aplicação ficam aqui (inclusive
todo o MVC, divid...
Comandos do Rails
Criar um modelo
#rails generate model [nome do modelo]
Criar uma migração
#rails generate migration [nom...
Desenvolvendo com Rails
Vamos criar uma aplicação CRUD agora
C reate
R ead
U pdate
D elete
Desenvolvendo com Rails
O poderoso SCAFFOLD
rails generate scaffold cliente nome:string idade:integer
Desenvolvendo com Rails
E agora?! O que fazer!?
 Estudar como Rails faz o relacionamento entre os
modelos
 Procurar pro ...
Chegou o fim...
Dúvidas?
@zarathon | fb.com/zarathon
Upcoming SlideShare
Loading in …5
×

Minicurso de Rails - WTISC 2014

596 views

Published on

Minicurso desenvolvido para o WTISC 2014, na Universidade Federal do Ceará
Realizado na cidade de Quixadá/Ce

Published in: Internet

Minicurso de Rails - WTISC 2014

  1. 1. Minicurso de Ruby on Rails
  2. 2. Quem sou eu? empreendedor desenvolvedor web desenvolvedor mobile aspirante a desenvolvedor de games designer funcionário público @zarathon | fb.com/zarathon
  3. 3. Agenda O que é Ruby Como funciona uma aplicação web O que é Rails Aprofundando no Rails O poder do Scaffold *Surpresa (Se der tempo)
  4. 4. O que é Ruby Criada porYukihiro Matsumoto Ideia concebida em 24 de fevereiro de 1993 Versão 1.0 lançada em 25 de dezembro de 1996 Última versão estável (até 29/11/2013) é a 2.0.0-p353 Orientada a objeto Inspirada no Perl e Python Open-Source
  5. 5. Porque programar em Ruby  A simplicidade da linguagem afeta diretamente a produtividade diária do desenvolvedor  Linguagem de fácil leitura  Tudo é um objeto  Interactive Shell. Os comandos podem ser testados direto em terminal, sem necessidade de escrever e “compilar" código para ver se deu certo  Comunidade tem o instinto de ajuda, e é fácil conseguir soluções bem elaboradas  Na versão 1.9+ o Ruby ganhou uma máquina virtual chamada YARV (Yet Another Ruby Virtual Machine) que proporcionou grande aumento de performance
  6. 6. Afinal, o que fazer com Ruby?  Cálculos complexos  Scripts de teste  Importação de dados para Bancos de Dados  Automatização de tarefas  Outras linguagens (Frameworks, assim como o Rails)  APIs  Parser de logs  Trabalhar com protocolos diversos  Ler e escrever arquivos em diversos formatos  Uma infinidade de coisas bem complexas
  7. 7. Um resumo da linguagem Ruby! Tipos de Dados ‘‘Não existem "tipos primitivos" em Ruby; todos os tipos são classes’’ Object é a classe mãe de todas as outras classes em Ruby
  8. 8. Um resumo da linguagem Ruby! Tipos de Dados ‘‘Não existem "tipos primitivos" em Ruby; todos os tipos são classes’’  Numeric é uma classe abstrata que representa números  Integer é uma classe que representa números inteiros  Fixnum representa números inteiros de precisão fixa  Bignum representa números inteiros de precisão infinita, dependente apenas da memória disponível  Float é uma classe que representa números de ponto flutuante (números reais)
  9. 9. Um resumo da linguagem Ruby! Tipos de Dados ‘‘Não existem "tipos primitivos" em Ruby; todos os tipos são classes’’ String uma cadeia de caracteres. Pode ser delimitado por apóstrofes (') ou aspas (").Tudo o que há entre apóstrofes é interpretado literalmente, entre aspas o programador deve se utilizar de símbolos para representar caracteres específicos, como em C. Exemplos: 'azul', "anbnc"
  10. 10. Um resumo da linguagem Ruby! Tipos de Dados ‘‘Não existem "tipos primitivos" em Ruby; todos os tipos são classes’’ Symbol é semelhante a uma string, mas dois símbolos iguais possuem o mesmo endereço de memória, sendo assim é ótimo para se utilizar como índice numa Hash. Porém, devido à sua natureza, o coletor de lixo do Ruby não os elimina. É definido com um sinal de dois pontos (:), por exemplo, :nome
  11. 11. Um resumo da linguagem Ruby! Tipos de Dados ‘‘Não existem "tipos primitivos" em Ruby; todos os tipos são classes’’ Array são arrays dinâmicos, que podem ser usados para representar matrizes e vetores. É delimitado por colchetes ([]) e cada valor é separado por vírgula. Exemplo: [4, 'azul', :termometro]
  12. 12. Um resumo da linguagem Ruby! Tipos de Dados ‘‘Não existem "tipos primitivos" em Ruby; todos os tipos são classes’’ Hash representa um vetor associativo, e, assim como as Arrays, é dinâmica. É delimitada por chaves ({}), e o índice precede o valor com um sinal '=>'. Exemplo: {:controller => 'user', :action => 'index'}. Qualquer objeto pode ser um índice, mas os mais usados são as Strings e os Symbols
  13. 13. Um resumo da linguagem Ruby! Tipos de Dados ‘‘Não existem "tipos primitivos" em Ruby; todos os tipos são classes’’ Regexp representa expressões regulares, delimitadas por //. Funciona de forma semelhante a Perl. Exemplo: /a|ae/
  14. 14. Um resumo da linguagem Ruby! Declaração de variáveis Um objeto em Ruby é declarado com uma atribuição comum: var = 1 var = ‘foo’ var = new Class var = new Class(parâmetros)
  15. 15. Um resumo da linguagem Ruby! Declaração de variáveis Uma variável local é declarada normalmente.Uma variável de instância é declarada com um "@" no nome.Uma variável de classe é declarada com "@@",e uma variável global é declarada com "$".Variáveis que iniciam com uma letra maiúscula são consideradas constantes. local = "local» @instancia = 42 @@classe = /f+/ $Pi = 3.1415926
  16. 16. Um resumo da linguagem Ruby! Arrays a = [1, 'oi', 3.14, 1, 2, [4, 5]] a[2] # => 3.14 a.reverse # => [[4, 5], 2, 1, 3.14, 'oi', 1] a.flatten.uniq # => [1, 'oi', 3.14, 2, 4, 5] a.push(23) # a = [1, 'oi', 3.14, 1, 2, [4, 5], 23] a << 22 # a = [1, 'oi', 3.14, 1, 2, [4, 5], 23, 22]
  17. 17. Um resumo da linguagem Ruby! Hash hash = {'água' => 'molhada', 'fogo' => 'quente'} puts hash['fogo'] # "quente" hash.each_pair do |chave, valor| puts «#{chave} é #{valor}" end # Imprime: # água é molhada # fogo é quente hash.delete_if {|chave, valor| chave == 'água'} # Apaga 'água' => 'molhada'
  18. 18. Um resumo da linguagem Ruby! Blocos e Iteradores Blocos de código (ou code blocks) são trechos de código que são passados como parâmetros para métodos.Blocos são extremamente usados em Ruby. class Paises @paises = ["Argentina", "Brasil", "Paraguai", "Uruguai"] def self.each for pais in @paises yield pais end end end Paises.each do |pais| puts "Olá, #{pais}!" end
  19. 19. Um resumo da linguagem Ruby! Blocos e Iteradores Iterando em arrays usando blocos: array = [1, 'oi', 3.14] array.each do |item| puts item end # => 1 # => 'oi’ # => 3.14 # Equivalente, usando chaves: array.each { |item| puts item } # => 1 # => 'oi’ # => 3.14
  20. 20. Um resumo da linguagem Ruby! Blocos e Iteradores Em Ruby,a estrutura de repetição for é apenas sugar syntax para acessar o método each,existente em iteratores. array = [1, 'oi', 3.14] for item in array puts item end # => 1 # => 'oi’ # => 3.14
  21. 21. Um resumo da linguagem Ruby! Classes O código a seguir define uma classe chamada Pessoa.Além de initialize,o construtor para criar novos objetos,essa classe tem dois métodos: um que sobre-escreve o operador de comparação > (maior),e sobre-escreve o método to_s (assim o comando puts pode formatar a saída).Aqui attr_reader é um exemplo de metaprogramação em Ruby: attr_reader define o método getter, attr_writer define o método setter,e attr_accessor define ambos.Em Ruby, todos os atributos são privados e todos os métodos públicos,por padrão.Ruby permite definir opcionalmente o tipo de acesso usando três palavras-chave: public (público),private (privado) e protected (protegido).Ruby não suporta sobrecarga de métodos,mas suporta argumentos padrão,que podem ser utilizados para o mesmo fim.Também,o último comando em um método é considerado o seu valor de retorno,permitindo a omissão de um explícito return.
  22. 22. Um resumo da linguagem Ruby! Classes class Pessoa attr_reader :nome, :idade def initialize(nome = "Desconhecido", idade) @nome, @idade = nome, idade end def >(pessoa) if self.idade > pessoa.idade return true else return false end end # Método usado pelo método puts() para formatar a saída def to_s «#@nome (#@idade anos)" end end
  23. 23. Um resumo da linguagem Ruby! Herança Ruby não suporta herança múltipla.Ao invés disso,Ruby usa Mixins para emular herança múltipla: class Pessoa < Mamifero # Herança de Mamifero include Humano # Emulando herança múltipla end
  24. 24. Fatos interessantes sobre Ruby  Em Ruby você não precisa declarar o tipo de variável explicitamente  O uso de Meta-programação é fácil e faz parte da proposta da linguagem  Sobre-escrever métodos é fácil  Sem getter e setters escritos manualmente  Parêntese é opcional  Monkey Patch é de fácil implementação
  25. 25. Gems em Ruby  Abstraem funcionalidades básicas da aplicação para pedaços separados, podendo assim serem usados em qualquer novo projeto sem ter que duplicar código manualmente  Ajudam a comunidade proporcionando funcionalidades que são úteis a mais de uma pessoa  Criar GEMs ajudam no entendimento de como Ruby funciona e como implementar meta-programação  São em geral GRATUITAS, apenas sendo pagas em casos muito específicos relacionadas a regras de negócio de um cliente, por exemplo
  26. 26. Como funciona uma aplicaçãoWeb?
  27. 27. O que é o Rails?  Framework de código aberto desenvolvido em Ruby  Tem por objetivo o desenvolvimento rápido e fácil de aplicações web  Convenção em vez de configuração  Don’t Repeat Yourself (DRY)  Criado em 2004 por David Heinemeier Hansson (DHH)
  28. 28. O que é o Rails? Arquitetura do Rails - MVC
  29. 29. O que é o Rails? Arquitetura do Rails - MVC  A parte responsável por apresentar os resultados na página web é chamado de Apresentação (View).  A camada que faz o trabalho de tratar os parâmetros da requisição e direcionar para as demais camadas é chamada de Controladora (Controller).  As classes que representam suas entidades e as que te ajudam a armazenar e buscar os dados são chamadas de Modelo (Model).
  30. 30. Porque usar Rails?  Alta velocidade de desenvolvimento  Flexibilidade  Código legível e com qualidade  Integração fácil entre times  Deploy facilitado  Boa documentação, vasto material na internet  Apostila da Caelum gratuita sobre Rails
  31. 31. Onde estudar Rails?  http://blog.caelum.com.br/ - Blog da Caelum  http://andersonleite.com.br/ - Anderson Leite  http://yehudakatz.com/ - Yehuda Katz  http://fabiokung.com/ - Fabio Kung  http://akitaonrails.com/ - Fábio Akita  http://blog.plataformatec.com.br/ - José Valim  http://nomedojogo.com/ - Carlos Brando  http://devblog.avdi.org/ - Avdi Grimm  http://blog.hasmanythrough.com/ - Josh Susser  http://rubyflow.com/ - Agrega conteúdo de vários sites
  32. 32. Mãos no Rails Instalar o rails #gem install rails Ajuda do rails #rails --help Criar uma aplicação #rails new [caminho-da-app] Rodar o servidor #rails server
  33. 33. Estrutura do Rails App  app - A maioria dos arquivos especícos da nossa aplicação ficam aqui (inclusive todo o MVC, dividido em diretórios);  bin - Executáveis do Rails e das gems instaladas;  config - Configurações da aplicação;  db - Migrações, esquema e outros arquivos relacionados ao banco de dados;  doc - Documentação do sistema;  lib - Bibliotecas auxiliares;  log - Informações de log;  public - Arquivos estáticos que serão servidos pela WEB;  test - Testes da nossa aplicação;  tmp - Arquivos temporários como cache e informações de sessões;  vendor - Dependências e bibliotecas de terceiros.
  34. 34. Comandos do Rails Criar um modelo #rails generate model [nome do modelo] Criar uma migração #rails generate migration [nome da migração] Criar um controller #rails generate controller [nome do controller]
  35. 35. Desenvolvendo com Rails Vamos criar uma aplicação CRUD agora C reate R ead U pdate D elete
  36. 36. Desenvolvendo com Rails O poderoso SCAFFOLD rails generate scaffold cliente nome:string idade:integer
  37. 37. Desenvolvendo com Rails E agora?! O que fazer!?  Estudar como Rails faz o relacionamento entre os modelos  Procurar pro grupos, recomendo o GURU-SP  Ler um pouco mais a documentação do Rails  Fazer um grupo de estudo  Procurar a apostila da Caelum, é grátis! 
  38. 38. Chegou o fim... Dúvidas? @zarathon | fb.com/zarathon

×