palestra ruby on rails seta 2008/01

Post on 18-May-2015

2.248 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

Desenvolvimento Ágil com Ruby on Rails

produtividade com sustentabilidade

Douglas R. Roederdouglasroeder@gmail.com

O que é um Bom SoftwarePara o Seu Cliente ?

Um Software que Simplesmente Funciona

E o que é um Bom SoftwarePara você desenvolvedor ?

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

Somos Exigentes

O que vem em Mente ?

Struts

Springs

JSF

Velocity

Tapestry

Hibernate

iBatis

CommonsAxisPOI Turbine

HivemindJDO

EJB

Tomcat

JBoss

jUnitJAVALog4JAnt

Maven

WebWorkMaverick

O que você realmente usa ?

Ruby on Rails éFaça mais com menos

Ruby Rails

Linguagem deProgramação

Framework ou Meta Framework

de desenvolvimento

O que é Ruby on Rails ?

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

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)

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

Interface Humana xInterface Mínima

Ruby

Java

item = lista.lastitem = lista.first

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

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

}Extraído de um Projeto Real

Basecamp

• Gerenciador de Projetos

• No ar desde Fevereiro de 2004

• + de 100 mil Clientes

Framework

{ActiveRecordActionPackActionMailerActiveWebServiceActiveSupport

Conceitos

Web 2.0Interatividade

Design

Convergência

PadronizaçãoUsabilidade

Economia

AjaxCSS DesignFoco na Simplicidade

Web Standards

RSS

Audio

Video

Comunidades Sociais

Blog

Wiki

MobilidadeAfiliação

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

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

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

Persistência de DadosA Maneira Rails

Banco deDados

Classe do Modelo de Dados

Então Qual a Mágica ?

Convention overConfiguration

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

Menos Configuração

Menos Código

Menos Bug

Menos Tempo

Como Funciona ?

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

end

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

end

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

# rails palestra

Iniciando um Projeto

O que obtivemos ?MVC - Controller

MVC - Model

MVC - View

Configurações

Migrations

Arquivos ComunsJavascripts/Estilos/Imagens,etc

Testes

Demonstração

Por que Aprender ?

Curva de Aprendizado

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

Alan Perlis

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

Abraham Maslow

MERCADO

9° lugarno ranking TPCI

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

Fonte: Evans Data, INFO Exame 08/2007

33%dos programadores brasileiros esperam aprender até final de

2008

Fonte: Evans Data, INFO Exame 08/2007

Friends for Sale

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

BlogBlogs.com.br

Integração de Blogs

100% escrito em Rails

4 dias de desenvolvimento

30 mil visitantes únicos/dia

60 mil page views/dia

Quem esta nos Trilhos de Ruby hoje ?

‣ JRuby

‣ Netbeans

‣ IronRuby

Desvantagens

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)

PerformanceSegundos

Quando usar ?

• Projetos Novos (Web)

• Metodologias de desenvolvimento ágil (XP, Scrum)

Onde usar ?• Apache

• Microsoft IIS

• Webrick

Mais Informações

http://www.ruby-lang.org

http://www.rubyonrails.org

http://www.rubyonbr.org

Perguntas ?

E-mail: douglasroeder@gmail.com

MSN: douglasroeder@terra.com.br

top related