Nos Trilhos Com Rails - Palestra FISL - Abril 2007
Esta palestra é baseada na minha monografia de conclusão de curso. Faz uma breve apresentação do Ruby e mostra funcionalidades interessantes providas pelo framework Rails.
forma organizada Desenvolver para a web de forma f cil de manter á Desenvolver para a web de forma f cil á Desenvolver para a web de forma r pida á Desenvolver para a web de forma (mais formas???)
pouco resultado Java+Struts Muita(mesmo!) configura o e muito(mesmo!) trabalho çã para pouco resultado PHP Muita liberdade resulta em pouca organiza o çã
de um tal de framework Ruby on Rails (RoR ou apenas Rails) com o Struts. Alguns chegavam a dizer num total de 10:1 em rela o a çã quantidade de linhas de c digo entre um e outro, mas ó sem muitos detalhes. Por que n o pagar pra ver? ã
paguei, recebi... pois estava no ã hor rio de expediente. á Download e instala o de linguagem, bibliotecas, çã conector para o banco de dados Postgresql e o framework RoR: 1h. Desenvolvimento passo-a-passo de uma aplica o CRUD çã seguindo um tutorial: 1h.
num end Fixnum: 81 Fixnum: 6561 Fixnum: 43046721 Bignum: 1853020188851841 Bignum: 3433683820292512484657849089281 Bignum: 11790184577738583171520872861412518665678211592275841109096961 Tipifica o forte, mas din mica çã â
– ORM . Action Controller . Action View Utiliza os mesmos conceitos do Ruby e mais um, chamado Convention over Configuration. Configura o s necess ria quando n o existe çã ó é á ã padr o. ã O framework Rails
e controles õ /components - componentes reutiliz veis á /config - arquivos de configura o, como de banco çã de dados, por exemplo /db - arquivos do schema do banco de dados /doc - Documenta o gerada automaticamente çã /lib - c digo compartilhado ó /log - arquivos de log gerados pela aplica o çã /public - o diret rio que acess vel pela web. Da ó é í vis o do navegador parece que toda a ã aplica o roda daqui çã /scripts - conjunto de scripts utilit rios á /test - local para os testes de unidade, funcionais, mock objects e fixtures /vendor - c digos de terceiros, como plugins ó Estrutura de diret rios 1/2 ó
/helpers - onde s o colocados os helpers ã /models - onde s o colocados os modelos ã /views - onde s o colocados arquivos de vis o ã ã e templates Estrutura de diret rios 2/2 ó
Rails fica simples e, çã SEM CONFIGURA O! ÇÃ class Sale < ActiveRecord::Base has_many :sale_items (...) end class SaleItem < ActiveRecord::Base belongs_to :product belongs_to :sale (...) end
dos FORMUL RIOS çã Á ActionForm ou DynaActionForm Diretamente na Action, via m todo validate() no é ActionForm ou via Validator Framework (mais xml! ) ¬¬
n o do formul rio... çã ã á Valida o fica junta com o modelo. çã class Product < ActiveRecord::Base belongs_to :category belongs_to :manufacturer validates_uniqueness_of :nome validates_presence_of :nome validates_presence_of :category_id validates_presence_of :manufacturer_id validates_numericality_of :preco validates_numericality_of :estoque ... end
default n o forem suficientes çõ ã basta definir o m todo validate() dentro do modelo é E mais! Pode ser sobrecarregado tamb m o m todo é é validate_on_create() e validate_on_update() Os nomes seguem o POLS ;)
def validate errors.add(:preco, 'Preço negativo') unless preco.nil? || preco > 0.0 end def validate_on_create errors.add(:picture, l(:error_jpeg)) if self.imagem.empty? || validate_content end def validate_on_update if self.imagem.empty? @product = Product.find(self.id) self.imagem = @product.imagem return end errors.add(:picture, l(:error_jpeg)) if validate_content end (...) end
dispon vel dentro í dos controladores permite uso f cil da sess o... á ã Como num Hash. def authorize unless session[:client_id] flash[:notice] = l(:do_login) session[:jumpto] = request.parameters redirect_to(:controller => "client", :action => "login") end end
çõ semelhantes na interface e que utilizam a mesma base de dados. As duas possuem as mesmas funcionalidades e operam da mesma forma do ponto de vista do usu rio. á Uma foi desenvolvida em Java+Struts+Hibernate. A outra em Ruby on Rails.
çã Linhas YAML 18 XML 273 0 25 50 75 100 125 150 175 200 225 250 275 XML YAML Linhas YAML 18 XML 273 Vale a pena calcular essa rela o? çã Apenas para manter a apresenta o em çã conformidade: 1:15. PS: Nas 18 linhas YAML est o ã configurados 3 bancos: devel, test e prod.
linhas de c digo. ó Na pequena aplica o çã desenvolvida, o Rails mostrou como a l gica de sua ó implementa o deixa as coisas çã mais simplificadas para os desenvolvedores.