41
Ruby on Rails Magnum Fonseca | Thales Lima | Weslley Almeida

Ruby e Rails

Embed Size (px)

DESCRIPTION

Um pouco sobre a história e funcionalidades do Ruby e como juntou-se com o Rails. Um pouco também dos projetos na PTInovação que se utilizam dessas tecnologias.

Citation preview

Page 1: Ruby e Rails

Ruby on RailsMagnum Fonseca | Thales Lima | Weslley Almeida

Page 2: Ruby e Rails

> O que é Ruby?

> Ruby é uma linguagem interpretada multiparadigma, dinâmica e open source com foco na simplicidade e produtividade.

> Seus objetos e classes podem ser alterados em tempo de execução. Além disso é totalmente orientada a objetos, ou seja, em Ruby tudo é um objeto.

Ruby

Page 3: Ruby e Rails

> Como Surgiu?

> Desenvolvido no Japão em 1995, por Yukihiro “Matz” Matsumoto.

> Matz desejava uma linguagem mais poderosa que Perl e mais orientada a objetos que Python. A partir disso Matz decidiu desenhar a sua própria linguagem de programação.

Page 4: Ruby e Rails

> Como Surgiu?

Eles são os escravos

Nós somos os mestres

Page 5: Ruby e Rails

Diferenças de outras linguagens

> Interpretadores* O interpretador Ruby é o programa que faz todo o

trabalho pesado e roda seu código Ruby. No entanto existem diversos interpretadores:

* MRI (Matz Ruby Interpreter)* JRuby* IronRuby* MacRuby* Etc…

Page 6: Ruby e Rails

Diferenças de outras linguagens

> Gems* Gem é um pacote ou uma aplicação escrita em ruby.

Essas bibliotecas podem ser instaladas e divulgadas em diversos computadores, como as “libs” em C.

* Uma adição interessante é que é muito fácil instalar uma gem

gem install rails

Page 7: Ruby e Rails

Diferenças de outras linguagens

> IRB (Interactive Ruby Execution)* Basicamente um shell para

Ruby. É um interpretador em tempo real dos códigos digitados.

* É um método ágil de testar seus códigos ou de aprender Ruby

Page 8: Ruby e Rails

> O que Ruby tem de tão legal?

Page 9: Ruby e Rails

> Tudo é objeto!* Não existe variável primitiva

* +, -, /… são todos métodos

Page 10: Ruby e Rails

> Syntax Sugar* Linguagem onde o que importa é a

beleza do código, expressividade do mesmo

* Algumas regras podem ser quebradas, para que o código seja melhor entendido por humanos

Page 11: Ruby e Rails

> Syntax Sugarif(a<b){ System.out.println("a é menor");}

puts("a é menor") if(a.<(b))puts "a é menor" if a < b

Page 12: Ruby e Rails

> Duck typing* Se ele anda como um pato, e faz quack

como um pato, eu devo tratá-lo como um pato

* Foco no que os objetos podem fazer, não no que eles são

Page 13: Ruby e Rails

> Metaprogamação

* Linguagem dinâmica

* Código gerando código

* Código modificando código

Page 14: Ruby e Rails

> Blocos* Uma das coisas mais poderosas em Ruby

* É um bloco, um fechamento do código que recebe código como parâmetro

* Como um iterador mas executa códigos

Page 15: Ruby e Rails

> Códigos legais* Métodos recebem Hash de parâmetros

* Unless

Page 16: Ruby e Rails

> O que é Rails? Rails

<%= Ruby on Rails é um framework livre que promete aumentar velocidade e facilidade no desenvolvimento de sites orientados a banco de dados (database-driven web sites), uma vez que é possível criar aplicações com base em estruturas pré-definidas. %>

<%= Frequentemente referenciado como Rails ou RoR, o Ruby on Rails é um projeto de código aberto escrito na linguagem de programação Ruby. %>

Page 17: Ruby e Rails

> O inícioDavid Hannson em 2004

Extraído do trabalho dele na 37Signals

Page 18: Ruby e Rails

> Do que é formado?

> Rails é um meta-framework formado de:– Action Pack;– Action Mailer;– Active Record;– Active Support;– Active Web Services.

Page 19: Ruby e Rails

> MVC

> Model-view-controller (MVC) é um padrão de arquitetura de software que visa separar a lógica de negócio da lógica de apresentação, permitindo o desenvolvimento, teste e manutenção isolado de ambos

Page 20: Ruby e Rails

> MVC

> Model> View> Controller

Page 21: Ruby e Rails

> Filosofias

> Filosofias tem um pé (ou os dois) nas metodologias ágeis e em seus designs

Page 22: Ruby e Rails

> Filosofias

DDont

R

Y

Repeat

Yourself

Page 23: Ruby e Rails

> Filosofias

CConvention

O

C

Over

Configuration

Page 24: Ruby e Rails

> Produtividade> Active RecordDesign Pattern, Framework ORM

c = Celular.newc.nome = "Galaxy S II"c.preco = 2000c.save

=== Em SQL ===

INSERT INTO CELULARES(NOME,PRECO) VALUES ("Galaxy S II", 2000);

Page 25: Ruby e Rails

> Produtividade> Action Pack

Pacote que gerencia as ações que ocorrem na aplicação, do request ao response

Page 26: Ruby e Rails

> Action Pack> Action Controller

Gerencia o que ocorre na Controller, quais ações e como elas devem ser tomadas

Page 27: Ruby e Rails

> Action Pack> Action View

* Gerencia como os dados serão apresentados na tela* .erb, rotas, …

Todos os celulares: <%= @celulares.collect { |c| c.nome }.join ", " %>

Page 28: Ruby e Rails

> Comandos!!!

Page 29: Ruby e Rails

> Novo projeto

rails new <nome>

Page 30: Ruby e Rails

> Scaffold

rails generate scaffold <modelo com atributos>

Page 31: Ruby e Rails

> Rake

rake <script>

Page 32: Ruby e Rails

> Quem usa?

> Diversas empresas utilizam o Rails para seus sites

Page 33: Ruby e Rails

> Basecamp

Page 34: Ruby e Rails

> Twitter

Page 35: Ruby e Rails

> github

Page 36: Ruby e Rails

> Groupon

Page 37: Ruby e Rails

> E na PT Inovação?

Page 38: Ruby e Rails

> Wardon

Page 39: Ruby e Rails

> Dialogus

Page 40: Ruby e Rails

> Tornar as coisas simples fáceis, e as complexas possíveis

Page 41: Ruby e Rails

> puts “Muito Obrigado!”

=> nil