Este documento discute o framework web Ruby on Rails, descrevendo-o como uma forma ágil e descomplicada de desenvolvimento web. O documento explica que Rails facilita o desenvolvimento web através de princípios como convenção sobre configuração e não repetir código, e fornece ferramentas como mapeamento objeto-relacional e geração de HTML que simplificam vários aspectos do desenvolvimento web. Finalmente, o documento discute quando Rails pode ou não ser apropriado para um projeto.
5. Mas surgem novas
complicações...
Arquivos XML pra configurar tudo;
Nem só de frameworks web vive o mundo:
Persistência?
Web services?
Como estender um framework para criar
novas funcionalidades?
6.
7. O que é isso?
Framework web escrito na linguagem Ruby;
Desenvolvido originalmente por David
Heinemeyer Hanson, como um “framework
caseiro” para os projetos da 37signals.com;
Liberado originalmente como open source
em julho de 2004;
11. for ( int x = 0; x < 3; x++ ){
System.out.println( “Hello” )
}
12. list = [ "I", "am", "a", "list" ]
puts list.join(" ")
list.each do |item|
puts item
end
13. hash = { :water => 'wet',
:fire => 'hot' }
puts hash[:fire]
hash.each_pair do |key, value|
puts "#{key} is #{value}"
end
hash.delete :water
hash.delete_if do |key,value|
value=='hot'
end
14. Princípios
Linguagens de programação devem ser fáceis
para as pessoas, não para as máquinas;
Você não deve ser surpreendido por novos
comportamentos ou efeitos colaterais
inesperados;
Código deve ser claro e fácil de ser lido,
métodos/mensagens devem ser claros na sua
intenção;
16. Muitas siglas
DRY – Don`t RepeatYourself
KISS – Keep It Simple, Stupid
CoC – Convention Over Configuration
17. O MVC do Rails
ActionPack
ActionView ActiveRecord
18. ActiveRecord
Model
Representa os objetos do modelo que estão ou
vão ser gravados no banco de dados relacional;
É uma ferramenta de mapeamento objeto-
relacional (como o Hibernate) , que visa facilitar o
acesso a bancos de dados;
19. ActionPack
Controller
Faz o papel que Servlets fariam em Java, recebe
uma requisição da web e se comunica com o
modelo para executar a lógica e depois repassar
para a visualização;
20. ActionView
View
Controla a visualização de conteúdo nas páginas;
Contém complementos que facilitam a criação de
formulários e simplificam a geração de HTML;
Traz um “gerador” de JavaScript que facilita o uso
de Ajax na aplicação;
21. Outros pedaços
ActiveResource
Para acesso a serviços REST (web services)
disponíveis;
ActionMailer
Envio e recebimento de e-mails dentro da
aplicação, diretamente integrado ao ActionView;
23. Será que ele é pra mim?
Aplicação web?
Check!
Ambiente Linux/Unix?
Check!
Equipe de desenvolvimento interessada em
novidades?
Check!
Conciência de que isso não vai salvar o
mundo?
Check!
24. Rails não é a única opção
Python
Django
PHP
CakePHP
Perl
Catalyst
Java
Não cabem aqui nesse slide;
C#
Bem... Erh... Deixa pra lá;
25. Quando eu não devo usar
Rails?
Quando a equipe não está convencida;
Quando você não tem (ou não está disposto a
ter) uma forte cultura de testes nos projetos;
Quando o débito técnico for muito alto e
você não tiver condições de parar tudo e
colocar ele em um nível aceitável;
26. Rails não é o Santo Graal
As técnicas que fazem Rails especial já se
espalharam pelas outras comunidades;
Hoje ele não é mais revolucionário como foi a
cinco anos atrás;
Mão de obra especializada ainda não dá em
árvore;
27. Sim, e não tem mais
vantagens?
Plugins, plugins e plugins. Milhares deles. Dá pra
se afogar em tanta coisa diferente;
guides.rubyonrails.org
Vários livros e material pronto publicados;
Em constante evolução, com versões saindo com
novas funcionalidades em menos de 6 meses;
28. Agile Web Development With Rails – 3rd
Edition