4. E o que é um Bom Software
Para você desenvolvedor ?
5. 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
11. O que é Ruby on Rails ?
Ruby Rails
Framework ou
Linguagem de
Meta Framework
Programação
de desenvolvimento
12.
13. Ruby
• Tecnologia Japonesa
• Lançada em 1995 Yukihiro “Matz” Matsumoto
• O “Python” Oriental
• Ênfase na simplicidade e elegância
• Multiplataforma (Linux, Windows, Mac, etc)
• Código aberto, gratuíto e sem restrições
14. 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)
15. Conceitos Gerais
Linguagem Dinâmica
Não Declaramos Tipos de Variáveis
s = “texto”
s.length => 5
s.class => String
Pura Orientação a Objeto
1.next => 2
1.class => Fixnum
Tudo é um Objeto
x = nil Até o Nulo é um Objeto
x.class => NilClass
Conversão de Tipos
1.73.to_i => 1 Todos os Tipos Primitivos Possuem
1.73.class => Float Conversão para Outros Tipos
18. Rails
• Escrito em Ruby
• Framework para Aplicações Web David Heinemeier Hansson
• Lançado em 2004 ( 4000 linhas )
• Código aberto, gratuíto e sem restrições
• MVC + Helpers + AJAX
• Sinônimo de WEB 2.0
23. Wiki
Foco na Simplicidade CSS Design Ajax
Convergência Interatividade Blog
Audio
Design
Economia Web 2.0 RSS
Video Padronização
Usabilidade
Web Standards Comunidades Sociais
Mobilidade
Afiliação
24. Modo Tradicional
Não MVC
Script
Browser
PHP, JSP, ASP,
Navegador (IE, Firefox, Opera)
etc
Não centraliza o controle
Sem separação estilo/conteúdo
Fácil e rápido de desenvolver
Difícil de manter
25. Padrão MVC
Browser
Navegador (IE, Firefox, Opera)
Ruby
View
Templates e Controller Model
Páginas de Controle da Regras de MySQL
Interação com Lógica/Fluxo negócio Postgres
o Usuário Oracle
SQLite
26. Persistência de Dados
A Maneira Usual
Controle de Lógica da
Persistência no Banco de
Dados
Mapeamento
Classe x Banco
de Dados
Classe do Modelo Banco de
de Dados Dados
36. Convenção
class Book < ActiveRecord::Base
has_many :comments
belongs_to :publisher
end
livro = Book.find :first
livro.comments
livro.publisher.name
49. Infra-estrutura
4 Servidores Banco de Dados
6 Servidor de Aplicação Quad Core
600 mil usuários ativos
300 milhões de acessos mensais
500 mil visitantes únicos/dia
300 reqs/seg
5 TB de tráfego mensal
2 desenvolvedores (tempo parcial)
57. 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)