Ruby e o Mundo Mágico dos Unicórnios

118
RUBY e o mundo magico dos unicornios

Transcript of Ruby e o Mundo Mágico dos Unicórnios

Page 1: Ruby e o Mundo Mágico dos Unicórnios

RUBYe����������� ������������������  o����������� ������������������  mundo

magico����������� ������������������  dos

unicornios

Page 2: Ruby e o Mundo Mágico dos Unicórnios

Lailson BandeiraBacharel em Ciência da Computação pelo CIn

Mestrando em Aprendizagem de Máquina no CInMembro do grupo de pesquisa VIISAR

Co-fundador do Frevo on RailsSun Certified Java Programmer (SCJP)

quem

sou����������� ������������������  eu

?

Page 3: Ruby e o Mundo Mágico dos Unicórnios

Lailson BandeiraGuilherme Carvalho Lucas Marinho

quem

somos����������� ������������������  

nozes?

Page 4: Ruby e o Mundo Mágico dos Unicórnios

Consultoria e desenvolvimentode aplicações web e móveisprimariamente usando Ruby

agile

html css

mongodb

javascript ajax

json

railsgit

mysql

uxcloud

heroku

postgres

sinatra

padrinoamazon

websockets

s3

apisui

Page 5: Ruby e o Mundo Mágico dos Unicórnios

amazi

ng

clients

Page 6: Ruby e o Mundo Mágico dos Unicórnios

yeah,����������� ������������������  they����������� ������������������  rock

Page 7: Ruby e o Mundo Mágico dos Unicórnios

[email protected]/guavasoftwareRua Alfredo Coutinho, 74 – Casa Forte

Quer����������� ������������������  u

ma����������� ������������������  

aplica

cao����������� ������������������  jo

inha����������� ������������������  

tambem

?

Page 8: Ruby e o Mundo Mágico dos Unicórnios

Ruby����������� ������������������  e����������� ������������������  o����������� ������������������  mundomagico����������� ������������������  dos����������� ������������������  Unicornios����������� ������������������  

Page 9: Ruby e o Mundo Mágico dos Unicórnios

Ruby onRails

linguagem

����������� ������������������  de����������� ������������������  

programa

cao

framework����������� ������������������  web

Page 10: Ruby e o Mundo Mágico dos Unicórnios

11fatos aleatóriossobre Ruby

RUBYRAND

OMFACT

Page 11: Ruby e o Mundo Mágico dos Unicórnios

RUBYRAND

OMFACT

fridayhug.com1

Page 12: Ruby e o Mundo Mágico dos Unicórnios

RUBYRAND

OMFACT

fridayhug.com1

Page 13: Ruby e o Mundo Mágico dos Unicórnios

RUBYRAND

OMFACT

fridayhug.com1

Page 14: Ruby e o Mundo Mágico dos Unicórnios

RUBYRAND

OMFACT

fridayhug.com1

Page 15: Ruby e o Mundo Mágico dos Unicórnios

Japão, 1995

Page 16: Ruby e o Mundo Mágico dos Unicórnios

まつもとゆきひろ

Page 17: Ruby e o Mundo Mágico dos Unicórnios

Yukihiro Matsumoto

Page 18: Ruby e o Mundo Mágico dos Unicórnios

“Matz”

Page 19: Ruby e o Mundo Mágico dos Unicórnios

“Ruby is designed to make programmers happy.”

— Matz

Page 20: Ruby e o Mundo Mágico dos Unicórnios

SmalltalkLispPerl

Page 21: Ruby e o Mundo Mágico dos Unicórnios

EUA, 2001

Page 22: Ruby e o Mundo Mágico dos Unicórnios

“The Pickaxe Book”

Page 23: Ruby e o Mundo Mágico dos Unicórnios

Dinamarca, 2005

Page 27: Ruby e o Mundo Mágico dos Unicórnios

RUBYRAND

OMFACT

Ruby Heroes Award2

Page 28: Ruby e o Mundo Mágico dos Unicórnios

RUBYRAND

OMFACT

Ruby Heroes Award2

Page 29: Ruby e o Mundo Mágico dos Unicórnios

ORIENTADA A OBJETOS

DINÂMICA

INTERPRETADA

MULTIPLATAFORMA

TIPAGEM FORTEM

ULT

IPA

RA

DIG

MA

SINTAXE FLEXÍVEL

FUNCIONALREFLEXIVA

SOF

TW

AR

E L

IVR

E

EX

TE

NSÍV

EL

IMPERATIVA

Page 30: Ruby e o Mundo Mágico dos Unicórnios

Tudo é objeto

ruby> 'frevo'.length=> 5

ruby> -1.abs=> 1

Page 31: Ruby e o Mundo Mágico dos Unicórnios

Tudo é objeto

1.upto 5 do |i| puts iend

Page 32: Ruby e o Mundo Mágico dos Unicórnios

(Quase) tudo é expressão

if sexo == :masc saudacao = 'Sr.'elsif sexo == :fem saudacao = 'Sra.'end

Page 33: Ruby e o Mundo Mágico dos Unicórnios

(Quase) tudo é expressão

saudacao = if sexo == :masc 'Sr.'elsif sexo == :fem 'Sra.'end

Page 34: Ruby e o Mundo Mágico dos Unicórnios

(Quase) tudo é expressão

saudacao = case sexo when :masc then 'Sr.' when :fem then 'Sra.'end

Page 35: Ruby e o Mundo Mágico dos Unicórnios

Classe mais estranha ever3

class Aಠ_ಠ

end

Aಠ_ಠ.new

RUBYRAND

OMFACT

Page 36: Ruby e o Mundo Mágico dos Unicórnios

Construções funcionais

numeros = [1,2,3,4]

numeros.map do |num| num**2end=> [1, 4, 9, 16]

Page 37: Ruby e o Mundo Mágico dos Unicórnios

Construções funcionais

numeros = [1,2,3,4]

numeros.select do |num| (num % 2) == 0end=> [2, 4]

Page 38: Ruby e o Mundo Mágico dos Unicórnios

Construções funcionais

numeros = [1,2,3,4]

numeros.select do |num| num.even?end=> [2, 4]

Page 39: Ruby e o Mundo Mágico dos Unicórnios

Construções funcionais

numeros = [1,2,3,4]

numeros.reduce do |memo, num| memo + numend=> 10

Page 40: Ruby e o Mundo Mágico dos Unicórnios

Construções funcionais

numeros = [1,2,3,4]

numeros.reduce(&:+)=> 10

Page 41: Ruby e o Mundo Mágico dos Unicórnios

Why's (Poignant) Guide to Ruby4

RUBYRAND

OMFACT

Page 42: Ruby e o Mundo Mágico dos Unicórnios

Why's (Poignant) Guide to Ruby4

RUBYRAND

OMFACT

Page 43: Ruby e o Mundo Mágico dos Unicórnios

Extensível

require ‘active_support’

Date.today - 2.days=> Wed, 21 Nov 2012

3.days.ago=> 2012-11-21 10:00:00 -0300

Page 44: Ruby e o Mundo Mágico dos Unicórnios

Extensível

class Adder def sum(array) array.reduce(&:+) endend

Page 45: Ruby e o Mundo Mágico dos Unicórnios

Extensívelrequire 'rspec'

describe Adder do it 'should sum an array of numbers' do array = [1,2,3] adder = Adder.new adder.sum(array).should == 6 endend

Page 46: Ruby e o Mundo Mágico dos Unicórnios

Extensível

$ rspec adder_spec.rb

Adder should sum an array of numbers

Finished in 0.00069 seconds1 example, 0 failures

Page 47: Ruby e o Mundo Mágico dos Unicórnios

TDD

Page 48: Ruby e o Mundo Mágico dos Unicórnios

Teste depois do

desenvolvimento

Page 49: Ruby e o Mundo Mágico dos Unicórnios

Test-driven

development

Page 50: Ruby e o Mundo Mágico dos Unicórnios

Behavior-driven

development

Page 51: Ruby e o Mundo Mágico dos Unicórnios

RUBYRAND

OMFACT

RubyConf Argentina 20125

Page 52: Ruby e o Mundo Mágico dos Unicórnios

RUBYRAND

OMFACT

RubyConf Argentina 20125

Page 53: Ruby e o Mundo Mágico dos Unicórnios

RUBYRAND

OMFACT

RubyConf Argentina 20125

Page 54: Ruby e o Mundo Mágico dos Unicórnios

Bibliotecas são gems

$ gem install crack$ gem install cocaine$ gem install cannabis$ gem install valium

Page 55: Ruby e o Mundo Mágico dos Unicórnios
Page 56: Ruby e o Mundo Mágico dos Unicórnios

Rake pra fazer o trabalho sujo

$ rake db:create$ rake db:migrate$ rake db:drop$ rake deploy

Page 57: Ruby e o Mundo Mágico dos Unicórnios

Rails

Page 58: Ruby e o Mundo Mágico dos Unicórnios

MVCarquitetura

model-view-controller

Page 59: Ruby e o Mundo Mágico dos Unicórnios

RUBYRAND

OMFACT

Rails Girls6

Page 60: Ruby e o Mundo Mágico dos Unicórnios

RUBYRAND

OMFACT

Rails Girls6

Page 61: Ruby e o Mundo Mágico dos Unicórnios

Revolução no desenvolvimento

para web

Page 62: Ruby e o Mundo Mágico dos Unicórnios

Princípios

Page 63: Ruby e o Mundo Mágico dos Unicórnios

DRYDon’t����������� ������������������  repeat����������� ������������������  yourself

Page 64: Ruby e o Mundo Mágico dos Unicórnios

CoCConvention����������� ������������������  over����������� ������������������  configuration

Page 65: Ruby e o Mundo Mágico dos Unicórnios

KISSKeep����������� ������������������  it����������� ������������������  stupdly����������� ������������������  simple

Page 66: Ruby e o Mundo Mágico dos Unicórnios

YAGNI

NIHS

TATFT

you����������� ������������������  ain’t����������� ������������������  gonna����������� ������������������  need����������� ������������������  it

not����������� ������������������  invented����������� ������������������  here����������� ������������������  syndrome

test����������� ������������������  all����������� ������������������  the����������� ������������������  fucking����������� ������������������  time

Page 67: Ruby e o Mundo Mágico dos Unicórnios

Linha de comando

Page 68: Ruby e o Mundo Mágico dos Unicórnios
Page 69: Ruby e o Mundo Mágico dos Unicórnios

Editores simples

Page 70: Ruby e o Mundo Mágico dos Unicórnios

http://github.com/

Page 71: Ruby e o Mundo Mágico dos Unicórnios

RUBYRAND

OMFACT

Octocat

Octodex7

Page 72: Ruby e o Mundo Mágico dos Unicórnios

RUBYRAND

OMFACT

http://octodex.github.com/

Octodex7

Page 73: Ruby e o Mundo Mágico dos Unicórnios

Conferências

Page 74: Ruby e o Mundo Mágico dos Unicórnios
Page 75: Ruby e o Mundo Mágico dos Unicórnios

Oxente Rails 2010

Page 76: Ruby e o Mundo Mágico dos Unicórnios

RailsConf 2011

Page 77: Ruby e o Mundo Mágico dos Unicórnios

RubyConf Brasil 2011

Page 78: Ruby e o Mundo Mágico dos Unicórnios

RubyConf Argentina 2011

Page 79: Ruby e o Mundo Mágico dos Unicórnios

RubyConf Brasil 2012

Page 80: Ruby e o Mundo Mágico dos Unicórnios

RubyConf Argentina 2012

Page 81: Ruby e o Mundo Mágico dos Unicórnios

RubyConf 2012

Page 82: Ruby e o Mundo Mágico dos Unicórnios

RubyConf 2012

Page 83: Ruby e o Mundo Mágico dos Unicórnios

Brinde mais estranho ever8

RUBYRAND

OMFACT

Page 84: Ruby e o Mundo Mágico dos Unicórnios

Brinde mais estranho ever8

RUBYRAND

OMFACT

Page 85: Ruby e o Mundo Mágico dos Unicórnios

Quem usa?

Page 86: Ruby e o Mundo Mágico dos Unicórnios
Page 87: Ruby e o Mundo Mágico dos Unicórnios
Page 88: Ruby e o Mundo Mágico dos Unicórnios
Page 89: Ruby e o Mundo Mágico dos Unicórnios

rubydramas.com9

RUBYRAND

OMFACT

Page 90: Ruby e o Mundo Mágico dos Unicórnios

E no Brasil?

Page 91: Ruby e o Mundo Mágico dos Unicórnios
Page 92: Ruby e o Mundo Mágico dos Unicórnios

Falando em Recife…

Page 93: Ruby e o Mundo Mágico dos Unicórnios
Page 94: Ruby e o Mundo Mágico dos Unicórnios

XI Encontro FoR

Page 95: Ruby e o Mundo Mágico dos Unicórnios

XII Encontro FoR

Page 96: Ruby e o Mundo Mágico dos Unicórnios

Abril Pro Ruby

Page 97: Ruby e o Mundo Mágico dos Unicórnios

XV Encontro FoR

Page 98: Ruby e o Mundo Mágico dos Unicórnios

tem����������� ������������������  

coffee

����������� ������������������  

break!

XVI Encontro FoR1 de dezembro, às 14h

Auditório do ITBC

frevoonrails.com.brfacebook.com/frevoonrails

de����������� ������������������  graca!

Page 99: Ruby e o Mundo Mágico dos Unicórnios

Ruby LipDub Clip10

RUBYRAND

OMFACT

Page 100: Ruby e o Mundo Mágico dos Unicórnios

RUBYRAND

OMFACT

Ruby LipDub Clip10

Page 101: Ruby e o Mundo Mágico dos Unicórnios

GURU

GURU-SPCeara����������� ������������������  on����������� ������������������  Rails

railspi

railsmgGURU-RS ruby+web

GURU-BA

Page 102: Ruby e o Mundo Mágico dos Unicórnios

Como aprender?

Page 103: Ruby e o Mundo Mágico dos Unicórnios

RR-71Desenvolvimento Ágil para Web

2.0 com Ruby on Rails

Desenvolvimento Ágil para Web 2.0Caelum

Page 104: Ruby e o Mundo Mágico dos Unicórnios

The Ruby Programming LanguageDavid Flanagan

the����������� ������������������  hummingbird����������� ������������������  book

Page 105: Ruby e o Mundo Mágico dos Unicórnios

Programming RubyDave Thomas

the����������� ������������������  pickaxe����������� ������������������  book

Page 106: Ruby e o Mundo Mágico dos Unicórnios

Agile Web Development with RailsSam Ruby

Page 107: Ruby e o Mundo Mágico dos Unicórnios

guides.rubyonrails.org

Page 108: Ruby e o Mundo Mágico dos Unicórnios

ruby.railstutorial.org

Page 109: Ruby e o Mundo Mágico dos Unicórnios

Ke$ha e unicórnios11

RUBYRAND

OMFACT

Page 110: Ruby e o Mundo Mágico dos Unicórnios

Ke$ha e unicórnios11

RUBYRAND

OMFACT

Page 111: Ruby e o Mundo Mágico dos Unicórnios

Ke$ha e unicórnios11

RUBYRAND

OMFACT

Page 112: Ruby e o Mundo Mágico dos Unicórnios

Ke$ha e unicórnios11

RUBYRAND

OMFACT

Page 113: Ruby e o Mundo Mágico dos Unicórnios

Ke$ha e unicórnios11

RUBYRAND

OMFACT

Page 114: Ruby e o Mundo Mágico dos Unicórnios

Ke$ha e unicórnios11

RUBYRAND

OMFACT

Page 115: Ruby e o Mundo Mágico dos Unicórnios

Ke$ha e unicórnios11

RUBYRAND

OMFACT

Page 116: Ruby e o Mundo Mágico dos Unicórnios

Ke$ha e unicórnios11

RUBYRAND

OMFACT

Page 117: Ruby e o Mundo Mágico dos Unicórnios

Unicorn server12

RUBYRAND

OMFACT

Page 118: Ruby e o Mundo Mágico dos Unicórnios

That’s all, folks!16º ENCONTRO DO FREVO ON RAILS

Apresentação realizada por Lailson Bandeira em 01/12/2012 no 16º Encontro do Frevo on Rails, disponível em https://speakerdeck.com/lailsonbm. Slides criados no Keynote com as fontes

Bernino Sans, American Typewriter e Nanum Pen Script. Todos os direitos reservados.

PRINCIPAIS LINKShttp://facebook.com/guavasoftwarehttp://facebook.com/frevoonrailshttp://ruby.railstutorial.org/