Serviços (do DDD) em aplicações Rails/Merb

Olá pessoal,

Queria saber se tem alguém aqui usando serviços do domain driven design em aplicações Rails/Merb e como vocês fazem pra acessar esses serviços. Vocês criam eles direto nos controllers aonde eles vão ser usados, botam eles em algum lugar como variáveis estáticas, ou fazem de alguma outra forma?

Maurício, para ser sincero, ainda não senti necessidade de nenhum Service. Controllers conversando com o domínio rico tem dado conta do recado.

Eu mal tenho controllers aqui. REST rula 8)

É porque é um troço bem de infra-estrutura mesmo.

O caso é o seguinte, usuários podem cadastrar o feed dos seus blogs no site e o site deve puxar esses feeds e mostrar os links na página do profile do usuário.

Mas como é de se esperar, eu não faço essa carga sempre que o usuário é mostrado, isso é feito apenas uma única vez por dia e apenas se o profile do usuário for visualizado e o feed estiver atualizado.

Não achei nenhum outro lugar a não ser um serviço pra fazer isso, colocar isso direto no usuário não rola e no controller o método fica grande demais pro meu gosto.

Alguma outra idéia?

controller/page caching?

to fazendo EXATAMENTE isso agora mauricio…

[quote=Fabio Kung]controller/page caching?

to fazendo EXATAMENTE isso agora mauricio…[/quote]

Ô mundo pequeno meu deus… :lol:

Vou ver aqui se page (ou ao menos fragment caching) resolvem o meu problema, não tinha pensado por esse lado.

Falando de REST especificamente, o que vcs costumam fazer? AJAX chamando vários serviços para a montagem da sua View ou centraliza tudo em um “controller” chamando vários RESTs?!? Por exemplo, se vc tem que montar uma página onde o proposito básico é mostrar um grid (consulta) mas esta depende de um monte de filtros, etc… vc chama a página e por AJAX sai chamando os métodos para popular esta tela ou monta algum centralizador (chamem como quizer) para trabalhar esta tela?

Juro que eu não entendi :slight_smile:

Maurício cuidado para não confundir Service de DDD com Service Layer. Pra acessar ServiceDDD no Controller web ou como o cv faz voc6e estáquase que em naked objects.

Bem lembrado. No fim das contas, a coisa é um service de infra mesmo, não é um serviço de modelo não, terminei implementando com o filtro aqui pra remover a coisa do método controller (que era o que eu queria, na verdade, já que essas linhas a mais estavam me aporrinhando pra caramba).