Ruby e o Mundo Mágico dos Unicórnios

Post on 28-May-2015

362 views 2 download

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

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

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

unicornios

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

?

Lailson BandeiraGuilherme Carvalho Lucas Marinho

quem

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

nozes?

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

amazi

ng

clients

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

contato@guava.com.brfacebook.com/guavasoftwareRua Alfredo Coutinho, 74 – Casa Forte

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

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

aplica

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

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

tambem

?

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

Ruby onRails

linguagem

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

programa

cao

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

11fatos aleatóriossobre Ruby

RUBYRAND

OMFACT

RUBYRAND

OMFACT

fridayhug.com1

RUBYRAND

OMFACT

fridayhug.com1

RUBYRAND

OMFACT

fridayhug.com1

RUBYRAND

OMFACT

fridayhug.com1

Japão, 1995

まつもとゆきひろ

Yukihiro Matsumoto

“Matz”

“Ruby is designed to make programmers happy.”

— Matz

SmalltalkLispPerl

EUA, 2001

“The Pickaxe Book”

Dinamarca, 2005

RUBYRAND

OMFACT

Ruby Heroes Award2

RUBYRAND

OMFACT

Ruby Heroes Award2

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

Tudo é objeto

ruby> 'frevo'.length=> 5

ruby> -1.abs=> 1

Tudo é objeto

1.upto 5 do |i| puts iend

(Quase) tudo é expressão

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

(Quase) tudo é expressão

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

(Quase) tudo é expressão

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

Classe mais estranha ever3

class Aಠ_ಠ

end

Aಠ_ಠ.new

RUBYRAND

OMFACT

Construções funcionais

numeros = [1,2,3,4]

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

Construções funcionais

numeros = [1,2,3,4]

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

Construções funcionais

numeros = [1,2,3,4]

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

Construções funcionais

numeros = [1,2,3,4]

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

Construções funcionais

numeros = [1,2,3,4]

numeros.reduce(&:+)=> 10

Why's (Poignant) Guide to Ruby4

RUBYRAND

OMFACT

Why's (Poignant) Guide to Ruby4

RUBYRAND

OMFACT

Extensível

require ‘active_support’

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

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

Extensível

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

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

Extensível

$ rspec adder_spec.rb

Adder should sum an array of numbers

Finished in 0.00069 seconds1 example, 0 failures

TDD

Teste depois do

desenvolvimento

Test-driven

development

Behavior-driven

development

RUBYRAND

OMFACT

RubyConf Argentina 20125

RUBYRAND

OMFACT

RubyConf Argentina 20125

RUBYRAND

OMFACT

RubyConf Argentina 20125

Bibliotecas são gems

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

Rake pra fazer o trabalho sujo

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

Rails

MVCarquitetura

model-view-controller

RUBYRAND

OMFACT

Rails Girls6

RUBYRAND

OMFACT

Rails Girls6

Revolução no desenvolvimento

para web

Princípios

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

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

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

YAGNI

NIHS

TATFT

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

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

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

Linha de comando

Editores simples

http://github.com/

RUBYRAND

OMFACT

Octocat

Octodex7

RUBYRAND

OMFACT

http://octodex.github.com/

Octodex7

Conferências

Oxente Rails 2010

RailsConf 2011

RubyConf Brasil 2011

RubyConf Argentina 2011

RubyConf Brasil 2012

RubyConf Argentina 2012

RubyConf 2012

RubyConf 2012

Brinde mais estranho ever8

RUBYRAND

OMFACT

Brinde mais estranho ever8

RUBYRAND

OMFACT

Quem usa?

rubydramas.com9

RUBYRAND

OMFACT

E no Brasil?

Falando em Recife…

XI Encontro FoR

XII Encontro FoR

Abril Pro Ruby

XV Encontro FoR

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

coffee

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

break!

XVI Encontro FoR1 de dezembro, às 14h

Auditório do ITBC

frevoonrails.com.brfacebook.com/frevoonrails

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

Ruby LipDub Clip10

RUBYRAND

OMFACT

RUBYRAND

OMFACT

Ruby LipDub Clip10

GURU

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

railspi

railsmgGURU-RS ruby+web

GURU-BA

Como aprender?

RR-71Desenvolvimento Ágil para Web

2.0 com Ruby on Rails

Desenvolvimento Ágil para Web 2.0Caelum

The Ruby Programming LanguageDavid Flanagan

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

Programming RubyDave Thomas

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

Agile Web Development with RailsSam Ruby

guides.rubyonrails.org

ruby.railstutorial.org

Ke$ha e unicórnios11

RUBYRAND

OMFACT

Ke$ha e unicórnios11

RUBYRAND

OMFACT

Ke$ha e unicórnios11

RUBYRAND

OMFACT

Ke$ha e unicórnios11

RUBYRAND

OMFACT

Ke$ha e unicórnios11

RUBYRAND

OMFACT

Ke$ha e unicórnios11

RUBYRAND

OMFACT

Ke$ha e unicórnios11

RUBYRAND

OMFACT

Ke$ha e unicórnios11

RUBYRAND

OMFACT

Unicorn server12

RUBYRAND

OMFACT

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/