JavaFree.org | RubyOnBr.org

Posts recentes by Fabiano França

Acompanhar Posts recentes by Fabiano França 6 posts encontrado

26/01/2007
Avatar Fabiano França 6 posts

Tópico: Tutorial RESTful

Tem esse tutorial:

http://metaatem.net/2006/07/31/rest-and-rails-no-reason-to-be-scared

 
18/01/2007
Avatar Fabiano França 6 posts

Tópico: Artigo do Akita no ar: Dieta dos controllers

De fato, é bastante tabela. É o que falei antes: o ideal é particionar o Domain Model em múltiplas aplicações Rails e fazer com que cada uma publique recursos que quiser compartilhar. Exatamente como você disse.

O trabalho agora é de identificar quais serão os melhores pontos de corte para não quebrar muito o relacionamento entre os models.

O maior problema que você vai encontrar é se houver tabelas em um módulo com associações a tabelas de outro módulo. Nesse caso o relacionamento não será feito no nível do banco+ActiveRecord, mas no nível do ActiveRecord+ActionController. Será um overhead extra e você precisará tomar cuidado com as operações cruzadas.

Esse é um dos problemas que mais vai acontecer, só o Sistema de Gestão e o Webmail interno se relacionam praticamente com todos os demais sistemas.

De qualquer forma, não vejo solução mais prática agora (deve haver outra). Lembrar que isso também faz sentido do que uma aplicação monolítica com tudo embutido se você precisar de mais de um processo RoR de pé ao mesmo tempo: cada processo irá carregar os 261 Models e todo o resto do aplicativo e isso é bem pesado. Se separar em módulos, apenas as classes necessárias para cada requisição serão carregados, o que deve ajudar na performance e escalabilidade.

Sempre tem uma outra forma, mas essa é a solução mais prática em que consegui chegar.

Agora vou começar a botar a mão na massa para ver se como fica isso implementado.

Não tem jeito, o negócio é começar a fazer pequenos testes de conceito com suas classes mais críticas. Procure saber sobre o Active Resources, isso pode te ajudar a compartilhar recursos entre seus módulos.

Já estou usando/estudando o Active Resources em uma aplicação aqui. Achei um post 1 bem legal com um exemplo prático de utilização, parecido com o exemplo dado pelo David na RailsConf.

Agora vou montar uma outra aplicação para ver como consumir os Resources.

Bem, obrigado pela ajuda e assim que eu tiver alguma novidade eu posto aqui no fórum.

UPDATE: Tinha esquecido do link:

1 http://metaatem.net/2006/07/31/rest-and-rails-no-reason-to-be-scared

 
18/01/2007
Avatar Fabiano França 6 posts

Tópico: Artigo do Akita no ar: Dieta dos controllers

Akita,

O que eu estou mais inclinado a implementar é cada módulo (aplicação rails) ser responsável por expor serviços para acesso aos seus models.

Assim um módulo de Compras (fictício) seria responsável por ter um serviço que permitisse aos demais módulos (financeiro, por exemplo) obter uma lista de fornecedores.

O meu caso é o mesmo que passou a 37signals, abaixo uns exemplos:

  • Um cadastro de usuários fixo para todas as aplicações
  • Fornecedores sendo utilizados pelos módulos de compras e financeiro
  • Um webmail onde todos os e-mails recebidos são gravados no banco de dados e o usuário só consegue responder um e-mail se ele for vinculado a uma entidade (Funcionário, Fornecedor, Cliente, Débito, Crédito, Nota fiscal, Treinamentos etc.).
  • Uma espécie de sistema de chamados em que você também pode vincular cada interação do chamado com uma entidade (mesmos exemplos do webmail)

Esses são os casos que me lembrei agora, mas minha base de dados tem 261 tabelas, onde tenho desde o sistema de controle de gestão até um sistema para controle de doações de sangue dos funcionários, e boa parte deles se relacionando.

Estou estudando também a opção do J2EE (EJB3, JSF etc.), mas a simplicidade de fazer algumas coisas com o Rails não tem igual.

Shairon, eu conheço essa solução dos módulos, mas manter 261 tabelas em uma aplicação além de achar que o Rails não agüenta, ia ficar dificílimo de manter.

 
18/01/2007
Avatar Fabiano França 6 posts

Tópico: Artigo do Akita no ar: Dieta dos controllers

Sobre o artigo:

“No caso de Rails, ele foi feito especialmente para aplicativos web escaláveis. Várias aplicações Rails não foram feitas para conversar entre si e a recomendação é que cada aplicação use um banco de dados totalmente separado. Se houver necessidade de mais de uma aplicação Rails trocar dados entre si (digamos, dados de usuários, permissões, etc.) uma das muitas soluções é criar uma aplicação Rails somente para integração, expondo os serviços como Web Services (futuramente como ActiveResources) de forma que outras aplicações possam acessar os recursos sem precisar ir diretamente ao banco.”

Alguém já passou por essa situação de ter que fazer a comunicação entre mais de uma aplicação?

Estou estudando a posibilidade de migrar nossa intranet para Rails, atualmente esta sem asp, e queria dividi-la em módulos (aplicações) menores com baixo acoplamento entre eles.

Hoje em dia uma simples modificação em uma tabela acaba afetando todo o sistema, dando um trabalho para encontrar os focos de problemas.

 
18/01/2007
Avatar Fabiano França 6 posts

Tópico: Caixa alta nas buscas

Olá,

Fiz uma busca agora no fórum e notei que ele traz resultados diferentes se procuro por “Migration” e “migration”.

Seria uma boa idéia desativar o Case Sensitive nesse caso.

Um abraço.

 
11/12/2006
Avatar Fabiano França 6 posts

Tópico: Ruby em Projeto Crítico

Parabéns a todos.

Estou fazendo um levantamento para decidir qual linguagem vamos usar para substituir o ASP aqui na empresa e esse tópico tirou qualquer possibilidade de dúvida que tinha quanto ao desempenho do Rails.

Agora saindo do desempenho e indo para a praticidade, o que vocês acham de usar o Rails para desenvolver uma intranet (um mini ERP) onde estão todos os sistemas da empresa (de uma simples agenda ao controle financeiro)?

Sendo que um dos focos desse sistema é a integração de todos os módulos (ex: vincular um débito a um funcionário, um compromisso na agenda a um fornecedor).

A primeira opção que me veio a cabeça para essa migração foi Java, pelo poder da linguagem.

Usando uma estrutura com JavaServer Faces, Spring, Hibernate e Facelets, tirando os vários xmls, fica bem “fácil” de trabalhar.

Rails pela simplicidade que a linguagem trás para resolver os problemas.

E .NET para aproveitar a atual estrutura da rede (2003 com IIS).

De inicio tinha descartado o .NET já que trabalhar com DataSets não me agrada muito (não acho natural) mas agora que conheci o Project Castle, uma espécie de Rails para o .NET, ele voltou a ficar cotado.