Começando com Ruby on Rails @gibsongabriel



Documentos relacionados
Ruby. Simplicidade e produtividade

JSP - ORIENTADO A OBJETOS

Tutorial Básico. Instalando e testando o Ruby on Rails no Windows

RevISTa: Publicação técnico-científica do IST-Rio. nº 05 Data: Dezembro / 2012 ISSN

FRWTC800 - Desenvolvimento Web com Ruby on Rails

Programação de Computadores - I. Profª Beatriz Profº Israel

Alunos. Hudson Martins da Silva Laércio Pedro Hoppe

4 O Workflow e a Máquina de Regras

Sistema Gerador de Anúncios para Compra e Venda On-line. Leandro de Oliveira ol.leandro@gmail.com

Bruno Jurkovski Lucas Fialho Zawacki. Site do curso:

Características do PHP. Começando a programar

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza

Desenvolvendo Websites com PHP

2 Diagrama de Caso de Uso

Orientação a Objetos

Internet e Programação Web

1º passo: Instalando a rvm.

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL

PHP AULA1. Prof. Msc. Hélio Esperidião

NOVIDADES DO JAVA PARA PROGRAMADORES C

ECD1200 Equipamento de Consulta de Dados KIT DE DESENVOLVIMENTO

Componentes da linguagem C++

2 echo "PHP e outros.";

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

AULA 4 VISÃO BÁSICA DE CLASSES EM PHP

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA

Construindo portais com Plone

CURSO DE PROGRAMAÇÃO EM JAVA

Programando em PHP. Conceitos Básicos

PHP() é uma linguagem de integração de servidor que permite a criação de paginas dinâmicas. Como todas

Sistemas Distribuídos

formação em WeB developer

Programando em C# Orientado a Objetos. By: Maromo

3 SCS: Sistema de Componentes de Software

Organização de programas em Python. Vanessa Braganholo

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Professor: Douglas Sousa Cursos de Computação

Sumário. Uma visão mais clara da UML

COMPILADORES E INTERPRETADORES

5 Mecanismo de seleção de componentes

Curso de Aprendizado Industrial Desenvolvedor WEB

LINGUAGEM DE BANCO DE DADOS

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

Capítulo 14. Herança a e Polimorfismo. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

PRESIDÊNCIA DA REPÚBLICA SECRETARIA-GERAL Secretaria-Executiva

Computação II Orientação a Objetos

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0

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

Na tela dele, clique no sinal de + ao lado do nome do seu computador, para expandi-lo. A seguir, expanda também o item "Sites da web".

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

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

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;

Sistemas Operacionais

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

Como se tornar um desenvolvedor de plug-ins para AutoCAD e Revit

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES


Introdução a Banco de Dados

No Fedora, instalamos os pacotes "mysql" e "mysql-server", usando o yum:

Feature-Driven Development

Manual QuotServ Todos os direitos reservados 2006/2007

Programação Web Prof. Wladimir

SISTEMA DE BANCO DE IMAGENS MANUAL DE USO

INTRODUÇÃO AO JAVA PARA PROGRAMADORES C

HIBERNATE EM APLICAÇÃO JAVA WEB

CONSTRUÇÃO DE BLOG COM O BLOGGER

Algoritmos com VisuAlg

Artur Petean Bove Júnior Tecnologia SJC

ANDRÉ APARECIDO DA SILVA APOSTILA BÁSICA SOBRE O POWERPOINT 2007

Introdução ao PHP. Prof. Késsia Marchi

Diagrama de Classes. Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes.

Aspectos técnicos do desenvolvimento baseado em componentes

Programação Orientada a Objetos Herança Técnico em Informática. Prof. Marcos André Pisching, M.Sc.

Criando & Consumindo um WebService com ASP.NET 2.0 Publicado em: 25 de Agosto de 2007 Por Herman Ferdinando Arais

Comunidade de Suporte e Feedback

Projeto de Software Orientado a Objeto

Especificação do 3º Trabalho

Prof. Esp. Adriano Carvalho

PROGRAMANDO EM C# ORIENTADO A OBJETOS

SAIBA MAIS SOBRE O LINUX E DESCUBRA QUAL DISTRIBUIÇÃO É MELHOR PARA VOCÊ! CURSO

INTRODUÇÃO À TECNOLOGIA SERVLETS

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Programação Orientada a Objetos Classes Abstratas Técnico em Informática. Prof. Marcos André Pisching, M.Sc.

VRAPTOR: O FRAMEWORK DE APRENDIZADO JAVA WEB AUGUSTO BEVILAQUA RAFAEL CIRINO LACERDA SAULO ALMEIDA LIMA

Sistemas Distribuídos

JavaScript (Funções, Eventos e Manipulação de Formulários)

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

REGISTRANDO DOMÍNIOS, COMO PUBLICAR UM SITE? DIRECIONANDO O DNS. Professor Carlos Muniz

CONVENÇÃO DE CÓDIGO JAVA

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource Rev: 02

Lógica de Programação

Curso de Programação Computadores

Introdução a Java. Hélder Nunes

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO

ARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo.

Para que o Educa Mobile seja disponibilizado para os alunos, responsáveis por alunos e/ou professores os passos abaixo devem ser seguidos:

Instalando o Internet Information Services no Windows XP

ATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS

Transcrição:

Começando com Ruby on Rails @gibsongabriel

Yukiriho 'Matz' Matsumoto

http://ruby-lang.org/pt/

Ruby é uma linguagem de programação interpretada, com tipagem forte e dinâmica, que tem como foco a simplicidade e produtividade.

Inspirações Perl, Smalltalk, Eiffel, ADA e Lisp.

~1 milhão de desenvolvedores 4M até 2013 (Gartner)

INSTALANDO

RVM

curl -L https://get.rvm.io bash -s stable rvm help install rvm install 1.9.3

Como aprender? http://lmgtfy.com/?q=come%c3%a7ando+com+ruby+on+rails

Ruby - IRB

Ruby - Variáveis Começam com letras minúsculas e possuem múltiplas palavras separadas por underscore, seguindo o formato snake_case.

Ruby - Constantes Começam com uma letra maiúscula e possuem duas semânticas diferentes dependendo do uso. Para classes e módulos, utiliza o formato CamelCase. Todas as outras constantes seguem o formato SCREAMING_SNAKE_CASE.

Ruby - Indentação Use dois espaços para fazer a indentação de blocos de código.

Strings Sequências de caracteres normalmente delimitadas por aspas ou apóstrofos.

Strings A diferença entre os dois delimitadores é que os apóstrofos ignoram caracteres como \n e \t e não podem ser interpoladas.

Strings

Strings - Interpolação Processo que permite definir uma expressão Ruby dentro de uma string, de modo que seu resultado substitua os delimitadores #{} que englobam a expressão.

Strings - Interpolação

Ruby - Números O Ruby possui 8 classes para representar números. Todos os objetos que representam números no Ruby são instâncias da classe Numeric. Numeric

Números Inteiros Números inteiros não possuem um tamanho determinado, pois o seu tamanho é definido pela quantidade de memória disponível.

Números Inteiros

Ponto-Flutuante Números de ponto flutuante são definidos pelo. (ponto decimal) após um ou mais números decimais, seguido por mais números decimais. Você também pode, opcionalmente, utilizar um expoente.

Ponto-Flutuante

Ruby - Arrays O Ruby possui arrays, que são listas que podem guardar qualquer tipo de objeto e não precisam ser criadas com tamanho determinado; novos ítens podem ser adicionados a qualquer momento.

Ruby - Arrays

Ruby - Arrays Arrays só podem ter índices numéricos. Os índices começam em 0 e também podem ser acessados de forma negativa.

Ruby - Arrays

Ruby - Hash Um outro tipo de estrutura de dados do Ruby é o Hash. Hashes são como arrays, com a diferença que o índice de um hash pode ser qualquer objeto.

Ruby - Hash

Ruby - Symbol Símbolos são objetos que representam nomes no Ruby e são muito utilizados como identificadores, principalmente como chaves de hashes.

Ruby - Symbol

Ruby - Boolean No Ruby os valores booleanos são true e false, que são instâncias das classes TrueClass e FalseClass.

Ruby - Boolean

Ruby Valor Nulo O Ruby define o tipo nulo através do objeto nil, que é uma instância da classe NilClass.

Ruby Valor Nulo

Ruby - Classes Tudo o que manipulamos no Ruby são objetos e cada objeto é gerado direta ou indiretamente de uma classe. Classes definem os métodos que objetos podem responder. Elas também podem estender ou ser subclasses de outras classes.

Ruby - Classes Para definir uma classe use a palavrachave class. Classes são constantes e, por este motivo, devem começar com uma letra maiúscula.

Ruby - Classes Embora ainda não tenhamos adicionado nenhum método à classe Page, nós já podemos instânciá-la. Para isso você irá usar o método Class.new.

Ruby - Classes Mesmo não tendo definido atributos e métodos, nós podemos executar alguns métodos fornecidos pelas superclasses da classe Page.

Ruby - Classes

Ruby - Classes

Ruby - Classes

Ruby - Classes Em outras linguagens, normalmente isso é feito com um método settitle(title) ou set_title(title), ou algo parecido. No Ruby, você pode definir o seu próprio método title=.

Ruby - Classes

Ruby - Classes Esta criação de getters e setters em classes é tão comum que o próprio Ruby fornece uma maneira de automatizar esta definição. Basta usar os métodos Module#attr_reader e Module#attr_writer.

Ruby - Classes

Ruby - Classes Para os casos onde você sempre define tanto o getter quanto o setter, é possível usar o método Module#attr_accessor, que fará isso de uma vez só!

Ruby - Classes

Ruby - Classes Você terá que implementar os seus próprios métodos se eles forem mais complexos (se eles precisarem computar valores, por exemplo) ou definirem variáveis de instância de nomes diferentes.

Ruby - Herança Herança é a especialização de uma classe, fazendo com que alguns comportamentos sejam sobrescritos, mantendo algumas características da superclasse.

Ruby - Herança

Ruby - Herança Podemos especializar a classe Shape, de modo que ela calcule a área de quadrados e retângulos.

Ruby - Herança

Ruby - Herança Agora, podemos instanciar os objetos e fazer o cálculo da área.

Ruby - Herança

Rubygems RubyGems é o gerenciador de pacotes padrão do Ruby. À partir do Ruby 1.9, começou a ser distribuído como parte da standard library. Ele permite resolver dependências e resolve, inclusive, dependências entre versões.

Rubygems Cada pacote, chamado de gem, pode conter arquivos Ruby que podem ser carregados pelo seu próprio código. Você pode instalar gems disponibilizadas por outros desenvolvedores e pode criar e distribuir suas próprias gems com muita facilidade.

Rubygems Atualmente existem mais 30 mil gems cadastradas no site http://rubygems.org/, o site que hospeda os pacotes disponibilizados pela comunidade Ruby.

E-book - Gratuito http://howtocode.com.br/ebooks @fnando

Rails

Quem utiliza o Rails hoje? Cases

Groupon

Slideshare

SoundCloud

Square

Abril (Veja)

Locaweb

Heroku

Rails Framework web Primeiro release em Julho de 2004

Instale o Ruby on Rails gem install rails

Criando a Aplicação rails new todo-list -d mysql

Criando a Aplicação Inicie o servidor rails s http://localhost:3000/

Rails - MySQL config/database.yml

Rails Fluxo de Requisição

Router Responsável por reconhecer as URLs e instanciar o controller e action

Controller Responsável por preparar os dados para a interface e criar/atualizar/ remover registros do banco de dados.

Model Responsável por representar os dados no banco de dados e regras de negócio.

View Responsável por apresentar uma interface aos clientes que iniciaram a requisição.

MVC Model-View-Controller

Ruby on Rails Quer saber mais?!

API Ruby on Rails

Rails - Guides

Github

Stackoverflow

@akitaonrails

Howto

Edukke

Caelum

Fontes https://speakerdeck.com/u/fnando/p/comecando-com-ruby-on-rails http://www.slideshare.net/akitaonrails/workshop-de-ruby-on-rails

Obrigado!