palestra ruby on rails seta 2008/01

64
Desenvolvimento Ágil com Ruby on Rails produtividade com sustentabilidade Douglas R. Roeder [email protected]

Upload: douglas-roeder

Post on 18-May-2015

2.248 views

Category:

Technology


0 download

DESCRIPTION

Palestra sobre Ruby on Rails realizada no SETA Uniasselvi - Indaial 2008/01

TRANSCRIPT

Page 1: Palestra Ruby on Rails SETA 2008/01

Desenvolvimento Ágil com Ruby on Rails

produtividade com sustentabilidade

Douglas R. [email protected]

Page 2: Palestra Ruby on Rails SETA 2008/01

O que é um Bom SoftwarePara o Seu Cliente ?

Page 3: Palestra Ruby on Rails SETA 2008/01

Um Software que Simplesmente Funciona

Page 4: Palestra Ruby on Rails SETA 2008/01

E o que é um Bom SoftwarePara você desenvolvedor ?

Page 5: Palestra Ruby on Rails SETA 2008/01

Seja no mínimo:Fácil de implementar

Fácil manutenção

Organizado (MVC)

Independente de Banco de Dados (MySQL, Oracle, Postgres, SQLite, etc)

Recursos como AJAX, Helpers, Persistência, Documentação, etc

Page 6: Palestra Ruby on Rails SETA 2008/01

Somos Exigentes

Page 7: Palestra Ruby on Rails SETA 2008/01

O que vem em Mente ?

Struts

Springs

JSF

Velocity

Tapestry

Hibernate

iBatis

CommonsAxisPOI Turbine

HivemindJDO

EJB

Tomcat

JBoss

jUnitJAVALog4JAnt

Maven

WebWorkMaverick

Page 8: Palestra Ruby on Rails SETA 2008/01
Page 9: Palestra Ruby on Rails SETA 2008/01

O que você realmente usa ?

Page 10: Palestra Ruby on Rails SETA 2008/01

Ruby on Rails éFaça mais com menos

Page 11: Palestra Ruby on Rails SETA 2008/01

Ruby Rails

Linguagem deProgramação

Framework ou Meta Framework

de desenvolvimento

O que é Ruby on Rails ?

Page 12: Palestra Ruby on Rails SETA 2008/01
Page 13: Palestra Ruby on Rails SETA 2008/01

Ruby

• Tecnologia Japonesa

• Lançada em 1995

• O “Python” Oriental

• Ênfase na simplicidade e elegância

• Multiplataforma (Linux, Windows, Mac, etc)

• Código aberto, gratuíto e sem restrições

Yukihiro “Matz” Matsumoto

Page 14: Palestra Ruby on Rails SETA 2008/01

Influências por Linguagem

• Linguagem Prática (Perl)

• Orientação a Objetos (Smalltalk)

• Metaprogramação (Smalltalk)

• Sintaxe (Smalltalk, Eiffel e Ada)

• Tratamento de Exceções (Java e Python)

Page 15: Palestra Ruby on Rails SETA 2008/01

Conceitos Gerais

s = “texto”s.length => 5s.class => String

1.next => 21.class => Fixnum

x = nilx.class => NilClass

1.73.to_i => 11.73.class => Float

Linguagem DinâmicaNão Declaramos Tipos de Variáveis

Pura Orientação a Objeto

Tudo é um ObjetoAté o Nulo é um Objeto

Conversão de TiposTodos os Tipos Primitivos Possuem

Conversão para Outros Tipos

Page 16: Palestra Ruby on Rails SETA 2008/01

Interface Humana xInterface Mínima

Ruby

Java

item = lista.lastitem = lista.first

item = lista.get(lista.size() - 1)item = lista.get(0)

Page 17: Palestra Ruby on Rails SETA 2008/01
Page 18: Palestra Ruby on Rails SETA 2008/01

Rails

• Escrito em Ruby

• Framework para Aplicações Web

• Lançado em 2004 ( 4000 linhas )

• Código aberto, gratuíto e sem restrições

• MVC + Helpers + AJAX

• Sinônimo de WEB 2.0

David Heinemeier Hansson

Page 19: Palestra Ruby on Rails SETA 2008/01

}Extraído de um Projeto Real

Page 20: Palestra Ruby on Rails SETA 2008/01

Basecamp

• Gerenciador de Projetos

• No ar desde Fevereiro de 2004

• + de 100 mil Clientes

Page 21: Palestra Ruby on Rails SETA 2008/01

Framework

{ActiveRecordActionPackActionMailerActiveWebServiceActiveSupport

Page 22: Palestra Ruby on Rails SETA 2008/01

Conceitos

Page 23: Palestra Ruby on Rails SETA 2008/01

Web 2.0Interatividade

Design

Convergência

PadronizaçãoUsabilidade

Economia

AjaxCSS DesignFoco na Simplicidade

Web Standards

RSS

Audio

Video

Comunidades Sociais

Blog

Wiki

MobilidadeAfiliação

Page 24: Palestra Ruby on Rails SETA 2008/01

Modo TradicionalNão MVC

BrowserNavegador (IE, Firefox, Opera)

ScriptPHP, JSP, ASP,

etc

Não centraliza o controleSem separação estilo/conteúdoFácil e rápido de desenvolver

Difícil de manter

Page 25: Palestra Ruby on Rails SETA 2008/01

Padrão MVC

BrowserNavegador (IE, Firefox, Opera)

ControllerControle da Lógica/Fluxo

ModelRegras de negócio

ViewTemplates e Páginas de

Interação com o Usuário

MySQLPostgresOracleSQLite

Ruby

Page 26: Palestra Ruby on Rails SETA 2008/01

Persistência de DadosA Maneira Usual

Banco deDados

MapeamentoClasse x Banco

de Dados

Classe do Modelo de Dados

Controle de Lógica da Persistência no Banco de

Dados

Page 27: Palestra Ruby on Rails SETA 2008/01

Persistência de DadosA Maneira Rails

Banco deDados

Classe do Modelo de Dados

Page 28: Palestra Ruby on Rails SETA 2008/01

Então Qual a Mágica ?

Page 29: Palestra Ruby on Rails SETA 2008/01

Convention overConfiguration

“Convenção ao Invés deConfiguração”

Page 30: Palestra Ruby on Rails SETA 2008/01

Menos Configuração

Page 31: Palestra Ruby on Rails SETA 2008/01

Menos Código

Page 32: Palestra Ruby on Rails SETA 2008/01

Menos Bug

Page 33: Palestra Ruby on Rails SETA 2008/01

Menos Tempo

Page 34: Palestra Ruby on Rails SETA 2008/01

Como Funciona ?

Page 35: Palestra Ruby on Rails SETA 2008/01

Convençãoclass Book < ActiveRecord::Basehas_many :commentsbelongs_to :publisher

end

Page 36: Palestra Ruby on Rails SETA 2008/01

Convençãoclass Book < ActiveRecord::Basehas_many :commentsbelongs_to :publisher

end

livro = Book.find :firstlivro.commentslivro.publisher.name

Page 37: Palestra Ruby on Rails SETA 2008/01

# rails palestra

Iniciando um Projeto

Page 38: Palestra Ruby on Rails SETA 2008/01

O que obtivemos ?MVC - Controller

MVC - Model

MVC - View

Configurações

Migrations

Arquivos ComunsJavascripts/Estilos/Imagens,etc

Testes

Page 39: Palestra Ruby on Rails SETA 2008/01

Demonstração

Page 40: Palestra Ruby on Rails SETA 2008/01

Por que Aprender ?

Page 41: Palestra Ruby on Rails SETA 2008/01

Curva de Aprendizado

Page 42: Palestra Ruby on Rails SETA 2008/01

“Não vale a pena conhecer uma linguagem que não afete o seu modo de pensar sobre programação”

Alan Perlis

Page 43: Palestra Ruby on Rails SETA 2008/01

“Se a única ferramenta que você conhece é um martelo, tenderá a enxergar todos os seus problemas como pregos”

Abraham Maslow

Page 44: Palestra Ruby on Rails SETA 2008/01

MERCADO

Page 45: Palestra Ruby on Rails SETA 2008/01

9° lugarno ranking TPCI

Page 46: Palestra Ruby on Rails SETA 2008/01

15,6%dos programadores web brasileiros já sabem Ruby

Fonte: Evans Data, INFO Exame 08/2007

Page 47: Palestra Ruby on Rails SETA 2008/01

33%dos programadores brasileiros esperam aprender até final de

2008

Fonte: Evans Data, INFO Exame 08/2007

Page 48: Palestra Ruby on Rails SETA 2008/01

Friends for Sale

Page 49: Palestra Ruby on Rails SETA 2008/01

600 mil usuários ativos300 milhões de acessos mensais500 mil visitantes únicos/dia300 reqs/seg5 TB de tráfego mensal2 desenvolvedores (tempo parcial)

Infra-estrutura4 Servidores Banco de Dados6 Servidor de Aplicação Quad Core

Page 50: Palestra Ruby on Rails SETA 2008/01

BlogBlogs.com.br

Page 51: Palestra Ruby on Rails SETA 2008/01

Integração de Blogs

100% escrito em Rails

4 dias de desenvolvimento

30 mil visitantes únicos/dia

60 mil page views/dia

Page 52: Palestra Ruby on Rails SETA 2008/01

Quem esta nos Trilhos de Ruby hoje ?

Page 53: Palestra Ruby on Rails SETA 2008/01

‣ JRuby

‣ Netbeans

Page 54: Palestra Ruby on Rails SETA 2008/01

‣ IronRuby

Page 55: Palestra Ruby on Rails SETA 2008/01
Page 56: Palestra Ruby on Rails SETA 2008/01

Desvantagens

Page 57: Palestra Ruby on Rails SETA 2008/01

Desvantagens‣Problemas com convenção no Português ‣resolvido com Plugin

‣Integração com sistemas legados‣é possível, mas reduz a produtividade

‣Poucos servidores‣um quadro que já esta mudando

‣Performance‣Atualmente o maior problema de Ruby 1.8 (stable)‣Problema solucionado com Ruby 1.9 (development)

Page 58: Palestra Ruby on Rails SETA 2008/01

PerformanceSegundos

Page 59: Palestra Ruby on Rails SETA 2008/01

Quando usar ?

• Projetos Novos (Web)

• Metodologias de desenvolvimento ágil (XP, Scrum)

Onde usar ?• Apache

• Microsoft IIS

• Webrick

Page 60: Palestra Ruby on Rails SETA 2008/01

Mais Informações

Page 61: Palestra Ruby on Rails SETA 2008/01

http://www.ruby-lang.org

Page 62: Palestra Ruby on Rails SETA 2008/01

http://www.rubyonrails.org

Page 63: Palestra Ruby on Rails SETA 2008/01

http://www.rubyonbr.org