desenvolvimento ágil de software com ruby on rails

49
Desenvolvimento ágil de software com Ruby on Rails Lucas Catón Café com Java 11/02/2012

Upload: lucas-caton

Post on 28-May-2015

1.841 views

Category:

Documents


0 download

DESCRIPTION

Palestra "Desenvolvimento ágil de software com Ruby on Rails", no Café com Java (11/02/2012), na Caelum, São Paulo-SP.

TRANSCRIPT

Page 1: Desenvolvimento ágil de software com Ruby on Rails

Desenvolvimento ágil de software com

Ruby on Rails

Lucas Catón

Café com Java11/02/2012

Page 2: Desenvolvimento ágil de software com Ruby on Rails

Quem sou eu?

Lucas CatónBacharel em Sistemas de InformaçãoDesenvolvedor Ruby on Rails há 3 anos

@lucascatonhttp://blog.lucascaton.com.br

Page 3: Desenvolvimento ágil de software com Ruby on Rails
Page 4: Desenvolvimento ágil de software com Ruby on Rails
Page 5: Desenvolvimento ágil de software com Ruby on Rails

Antes que me atirem pedras...

Page 6: Desenvolvimento ágil de software com Ruby on Rails

Eu já fui programador Java...

Page 7: Desenvolvimento ágil de software com Ruby on Rails

Até que eu descobri o Ruby...

Page 8: Desenvolvimento ágil de software com Ruby on Rails

Mas eu não vim aqui dizer que:Ruby > Java!

Page 9: Desenvolvimento ágil de software com Ruby on Rails

Só vim dizer que Ruby...

...me fez um dev mais feliz!

Page 10: Desenvolvimento ágil de software com Ruby on Rails

Ruby on RailsLinguagem de programação Framework web

Page 11: Desenvolvimento ágil de software com Ruby on Rails

O que o Ruby tem de tão especial?

Page 12: Desenvolvimento ágil de software com Ruby on Rails

InterpretadaNão é necessário compilar o código!

DinâmicaEm tempo de execução, é possível: Adicionar novo código, extender classes, extender objetos, alterar o sistema de tipos.

Multi-paradigmaOrientada a objetos, funcional, permite programação imperativa.

Open-sourceVocê pode: olhar o código, estudar o código, alterar o código e ainda melhorar o código.

Page 13: Desenvolvimento ágil de software com Ruby on Rails

E mais importante que isso tudo...

Não precisa de “ponto e vírgula”!

Page 14: Desenvolvimento ágil de software com Ruby on Rails

Sintaxe expressíva

Diga muito!

Seja claro!

Escreva menos código!

Page 15: Desenvolvimento ágil de software com Ruby on Rails

Exemplo:

Imprimir somente paresentre 1 e um número qualquer.

Page 16: Desenvolvimento ágil de software com Ruby on Rails

C

Page 17: Desenvolvimento ágil de software com Ruby on Rails

#include <stdio.h>void imprime_pares(int limite){ int i; for(i = 1; i < = limite; i++) if(i%2 == 0) printf("%d\n", i);}

Page 18: Desenvolvimento ágil de software com Ruby on Rails

Java

Page 19: Desenvolvimento ágil de software com Ruby on Rails

public void imprime_pares(int limite){ for(int i = 1; i <= limite; i++) if(i%2 == 0) System.out.println(i);}

Page 20: Desenvolvimento ágil de software com Ruby on Rails

Ruby

Page 21: Desenvolvimento ágil de software com Ruby on Rails

def imprime_pares(limite) 1.upto(limite) {|i| puts i if i%2 == 0}end

Page 22: Desenvolvimento ágil de software com Ruby on Rails
Page 23: Desenvolvimento ágil de software com Ruby on Rails
Page 24: Desenvolvimento ágil de software com Ruby on Rails

1.class => Fixnum1.5.class => Float

0.zero? => true1.zero? => false

[1,2,3].class => Array[4,8].respond_to? :sort => true

1.methods => lista de métodos5.+(1) => 6

Tudo é um objeto!

Page 25: Desenvolvimento ágil de software com Ruby on Rails

true.class => TrueClass

false.class => FalseClass

true e false também são objetos!

Page 26: Desenvolvimento ágil de software com Ruby on Rails

nil.class => NilClass

a = nila.nil? => truea.methods => lista de métodosa.to_s => ""a.to_i => 0

a.sort => NoMethodError: undefined method `sort' for nil:NilClass

Até o nil é um objeto!

Page 27: Desenvolvimento ágil de software com Ruby on Rails
Page 28: Desenvolvimento ágil de software com Ruby on Rails

Metaprogramação

Page 29: Desenvolvimento ágil de software com Ruby on Rails

class Fooend

Foo.class_eval do define_method("novo_metodo") do |arg|

puts arg endend

f = Foo.newf.novo_metodo("123")# 123

Page 30: Desenvolvimento ágil de software com Ruby on Rails
Page 31: Desenvolvimento ágil de software com Ruby on Rails

O que o Rails tem de tão especial?

Page 32: Desenvolvimento ágil de software com Ruby on Rails

MVC

Model - View - Controller

Page 33: Desenvolvimento ágil de software com Ruby on Rails

Ajuda a aplicar a filosofia DRY:

“Don’t repear yourself”

Page 34: Desenvolvimento ágil de software com Ruby on Rails

RESTpattern for web apps

Verbos HTTP:GET, POST, PUT, DELETE

Page 35: Desenvolvimento ágil de software com Ruby on Rails

Convention over configuration

(Convenção ao invés de configuração)

Page 36: Desenvolvimento ágil de software com Ruby on Rails
Page 37: Desenvolvimento ágil de software com Ruby on Rails
Page 38: Desenvolvimento ágil de software com Ruby on Rails

0 25 50 75 100

Projeto (10%) Código (90%)

Antes...

Page 39: Desenvolvimento ágil de software com Ruby on Rails

0 25 50 75 100

Projeto (40%) Código (60%)

Depois...

Page 40: Desenvolvimento ágil de software com Ruby on Rails

Rails == desenvolvimento ágil

Page 41: Desenvolvimento ágil de software com Ruby on Rails

3 ambientes:

developmentproduction

test

Page 42: Desenvolvimento ágil de software com Ruby on Rails

Já vem pronto!

Rails é um metaframework.

Page 43: Desenvolvimento ágil de software com Ruby on Rails

Action PackControllers & Views

Action MailerE-mail services

Active Model+ Active Record

ORM

Active ResourceRESTful web services

Active SupportUtility classes

RailtiesCore Rails code

Page 44: Desenvolvimento ágil de software com Ruby on Rails

Documentação MUITO boa!

Page 45: Desenvolvimento ágil de software com Ruby on Rails

Conclusão:

A linguagem é divertida!

O Ruby on Rails já vem pronto pra uso!

Roda em qualquer plataforma!

A comunidade é forte!

O mercado está quente!

Page 46: Desenvolvimento ágil de software com Ruby on Rails

Ou seja...

Page 48: Desenvolvimento ágil de software com Ruby on Rails

Dúvidas?

Page 49: Desenvolvimento ágil de software com Ruby on Rails

Obrigado!

@lucascaton

http://blog.lucascaton.com.br