Re: [dotnetarchitects] Rede Social - Objetos com relação

0 views
Skip to first unread message

Rodrigo Vieira

unread,
Aug 31, 2010, 12:18:50 PM8/31/10
to dotnetar...@googlegroups.com
Acho melhor se focar em como fica melhor representar essa associação
entre classes, procurando um bom desenho OO, e depois que estiver
tinindo vc se preocupa em como jogar isso pro BD, não? Pensar no
problema a partir do BD engessa muito.

Aliás acho que dá pra fazer muuuita coisa legal no seu projeto antes
de vc começar a se preocupar com BD, melhor focar na funcionalidade
etc, usando persistência fake mesmo, não?

2010/8/31 Pepeu <faleco...@gmail.com>:
> Olá pessoal,
> Estou iniciando um projeto pessoal que é montar uma rede social (features
> similares a do Orkut como amigos, comunidades, etc).
> Dessa forma terei nesse projeto terei usuários (objetos) que terão relação
> (por exemplo são marcados como amigos).
> Como vocês imaginam que seria isso na BD e como isso refletiria nos meus
> objetos?
>
> Não sei se fui muito claro mas acho que isso dá uma boa discussão.
> O projeto ainda não foi iniciado, estou mapeando todos os objetos do meu
> sistema neste momento.
> --
> Abraços,
> Pepeu
>
> --
> Você recebeu esta mensagem porque faz parte do grupo .Net Architects
> hospedado no Google Groups.
> Para postar envie uma mensagem para dotnetar...@googlegroups.com
> Para sair do grupo envie uma mensagem para
> dotnetarchitec...@googlegroups.com
> Para mais opções visite o grupo em
> http://groups.google.com/group/dotnetarchitects?hl=pt-br

Bruno D'Alessio

unread,
Aug 31, 2010, 12:22:40 PM8/31/10
to dotnetar...@googlegroups.com
Concordo com o Vieira, foque no dominio.
Tente quebrar o paradigma quanto a pensar no DB primeiro, a persistência é apenas um detalhe.
 
Abs,

--
Bruno D'Alessio
Arquiteto de Software

Pepeu

unread,
Aug 31, 2010, 12:06:07 PM8/31/10
to dotnetar...@googlegroups.com

Cadu

unread,
Aug 31, 2010, 12:32:37 PM8/31/10
to dotnetar...@googlegroups.com
Aconselho dar uma olhada no DDD, que é justamente esta quebra de
paradigma. Em DDD, banco de dados é detalhe.

Abraços

--
Twitter: @cadu_sza
Blog: http://architecturelife.wordpress.com/

Pepeu

unread,
Aug 31, 2010, 12:41:53 PM8/31/10
to dotnetar...@googlegroups.com
Legal que já começou a discussão. :)
 
Minha intenção é sim pensar no dominio e como os objetos se relacionam neste momento, porém no futuro a persistência é que vai ser o benchmark com relação a performance do sistema. Neste momento nâo estou pensando em BD simplesmente (até pq nem sei que BD será usado) mas sim em como modelar os objetos de forma que a persistência deles tragam performance no futuro.
 
Existe um livro sobre o assunto que é o ASP.NET Social Networks do Andrew Siemer (Infos em http://www.andrewsiemer.com/) e é nele que estou me baseando, porém tem algumas coisas que acho que não cabem na minha forma de pensar e desenvolver.
 
Vou desenvolver com VS2010 (C#3.5) usando MVC 2, JQuery e Json.
 
Abraços,
Pepeu

Bruno Gross

unread,
Aug 31, 2010, 12:42:44 PM8/31/10
to dotnetar...@googlegroups.com
Se vai desenvolver um orkut da vida, concentre seu domínio em abordar a teoria dos grafos, que é o segredo dos níveis entre amigos do orkut. Coisa de matemático maluco, mas é fantástico!

2010/8/31 Cadu <cadu...@gmail.com>



--
Visite: www.UpaLele.com

att.
Bruno Gross
Celular: (21) 78545483
Rádio ID: 83*39379

Pepeu

unread,
Aug 31, 2010, 12:58:15 PM8/31/10
to dotnetar...@googlegroups.com
Não vou chegar nesse nivel não. O relacionamento será apenas amigo - amigo.
Não vou precisar saber amigos em comum e toda essa loucura não! :D
 
Essa parte da rede social será apenas um "modulo" do meu projeto, por isso não quero reinventar a roda. O core do projeto é outro (troca de informações), quero apenas que os usuários do sistema possam se relacionar afim de formarem "amizades", tipo darem nota nas infos que outros postaram, comentarem, etc.
 
Abraços,
Pepeu
Abraços,
Pepeu
__________________________
www.confrariadoblues.com.br

Bruno Gross

unread,
Aug 31, 2010, 12:59:36 PM8/31/10
to dotnetar...@googlegroups.com
Po, vai fugir do mais maneiro! rsrs
 


 
2010/8/31 Pepeu <faleco...@gmail.com>

Sidney Lima Filho

unread,
Aug 31, 2010, 2:04:20 PM8/31/10
to dotnetar...@googlegroups.com
             
Não escreva software caso já exista algo que te atenda, use o NING.  :D


Atenciosamente

Sidney Lima Filho 
Vivina Softhouse
(0xx21) 7867-2321
55*10*68934
http://www.vivina.com.br   |    http://twitter.com/vivina
2010/8/31 Bruno Gross <bruno...@gmail.com>

Sidney Lima Filho

unread,
Aug 31, 2010, 2:04:51 PM8/31/10
to dotnetar...@googlegroups.com
             
Não escreva software caso já exista algo que te atenda, use o NING.  :D


Atenciosamente

Sidney Lima Filho 
Vivina Softhouse
(0xx21) 7867-2321
55*10*68934
http://www.vivina.com.br   |    http://twitter.com/vivina
2010/8/31 Bruno Gross <bruno...@gmail.com>
Po, vai fugir do mais maneiro! rsrs

Luiz Augusto Moreira Costa

unread,
Aug 31, 2010, 4:17:04 PM8/31/10
to dotnetar...@googlegroups.com
Oi,

Já pensou em usar um banco de dados não relacional para isso? Dá uma olhada no Neo4j, é bem interessante, e é bem mais flexível que um BD comum.

Valeu
Luiz Costa

2010/8/31 Sidney Lima Filho <sidney...@vivina.com.br>

Bruno Gross

unread,
Aug 31, 2010, 4:23:07 PM8/31/10
to dotnetar...@googlegroups.com
Tem mto material legal no imasters de um conhecido meu...
 
 


 
2010/8/31 Luiz Augusto Moreira Costa <gutom...@gmail.com>

Pepeu

unread,
Sep 1, 2010, 7:11:04 AM9/1/10
to dotnetar...@googlegroups.com
Obrigado a todos pelas respostas, mas vou colocar mais um porém aí nessa história. :)

O site será hospedado num servidor "normal" desses tipo GoDaddy. Então não dá pra viahar muito em cima de soluções que necessitem de coisas especificas como por exemplo um  BD orientado a objetos!!! :)

Vamos continuar debatendo as possibilidades!!!

Abraços,
Pepeu

Fabrício Alves

unread,
Sep 1, 2010, 6:16:31 PM9/1/10
to dotnetar...@googlegroups.com
    Fala Pepeu, quanto tempo cara ... seguinte.
    Nestas últimas semanas estou trabalhando com a integração de Redes Sociais em projetos CRM, conhecido como CRM 2.0.
    A idéia é não "reinventar a roda" e sim, reaproveitar o que as redes sociais tem de melhor e agregar no seu projeto.
    Para isto é necessário desenvolver componentes de integração que os próprios sites de relacionamento oferecem e conectar no seu projeto.

    Se você quiser, podemos trocar uma idéia sobre este assunto ... me chama no msn.

    Abraço.

   []s
       Fabrício C. B. Alves
       19927...@clarotorpedo.com.br
       fabricio...@gmail.com
       fabricio...@windowslive.com
___________________________________
Ao encaminhar esta mensagem, por favor:
1 - Apague meu endereço eletrônico;
2 - Apague também os endereços dos amigos que receberam juntamente com você a mensagem, antes de enviar;
3 - Encaminhe como Cópia Oculta (Cco ou BCc) aos seus destinatários. Dificulte assim a disseminação de vírus, spams e banners.

Bernardo Rezende

unread,
Sep 1, 2010, 11:33:13 PM9/1/10
to dotnetar...@googlegroups.com
Fala Pepeu, blza?

Pois é, a discussão tá começando e já entrou DDD (nossa que surpresa :P). Podia descrever quais são os objetos que tu levantou até agora? Usuário e o que mais?

Eu prefiro olhar pra esses nomes agora do que para abordagens de design, vamos falar mais sobre o problema :P

BTW, como o Bruno lembrou, é interessante considerar teoria dos grafos em redes sociais, sugiro ler sobre Six Degrees of Separation.
Bernardo Bosak de Rezende
http://bernardorezende.wordpress.com/ - Arquitetura e Desenvolvimento .NET

"The weather-cock on the church spire, though made of iron, would soon be broken by the storm-wind if it did not understand the noble art of turning to every wind."
Heinrich Heine

Giovanni Bassi

unread,
Sep 3, 2010, 7:55:28 AM9/3/10
to dotnetarchitects
Crie tabelas para manter seus dados transacionais, coloque elas num esquema que faça sentido. Essas são write only para o site.
No mesmo banco, crie tabelas denormalizadas que serão readonly para o site, baseando-se nos dados das tabelas transacionais. Coloque elas em outro esquema para facilitar o entendimento.
Crie um serviço de filas para gerenciar a atualização das tabelas transacionais para a de reporting.

Suas tabelas de reporting devem ser lidas sempre sem join nenhum, de forma a garantir performance.

Isso vai deixar os dados das tabelas de reporting levemente desatualizados com relação às transacionais, alguns segundos somente, mas isso provavelmente não será um problema.

Você vai trabalhar a performance em cima do serviço de filas e da leitura do banco de reporting.

BTW, esse model cai como uma luva em Windows Azure.

[]'s

Giovanni Bassi
Arquiteto de software
+55 (11) 8522-5774
Consultoria:
www.giovannibassi.com Blog: unplugged.giggio.net
LinkedinBlog RSSTwitter

José Filipe Néis

unread,
Sep 3, 2010, 10:29:57 AM9/3/10
to dotnetar...@googlegroups.com

Pra entender melhor os benefícios do modelo que o Giovanni indicou (CQRS), post legal do Udi Dahan: http://www.udidahan.com/2009/12/09/clarified-cqrs/

 

Abraço.

 

Zé Filipe

 

De: dotnetar...@googlegroups.com [mailto:dotnetar...@googlegroups.com] Em nome de Giovanni Bassi
Enviada em: sexta-feira, 3 de setembro de 2010 08:55
Para: dotnetarchitects
Assunto: Re: [dotnetarchitects] Rede Social - Objetos com relação

 

Crie tabelas para manter seus dados transacionais, coloque elas num esquema que faça sentido. Essas são write only para o site.
No mesmo banco, crie tabelas denormalizadas que serão readonly para o site, baseando-se nos dados das tabelas transacionais. Coloque elas em outro esquema para facilitar o entendimento.
Crie um serviço de filas para gerenciar a atualização das tabelas transacionais para a de reporting.

Suas tabelas de reporting devem ser lidas sempre sem join nenhum, de forma a garantir performance.

Isso vai deixar os dados das tabelas de reporting levemente desatualizados com relação às transacionais, alguns segundos somente, mas isso provavelmente não será um problema.

Você vai trabalhar a performance em cima do serviço de filas e da leitura do banco de reporting.

BTW, esse model cai como uma luva em Windows Azure.

[]'s

Giovanni Bassi
Arquiteto de software
+55 (11) 8522-5774
Consultoria:
www.giovannibassi.com Blog:

On Wed, Sep 1, 2010 at 8:11 AM, Pepeu <faleco...@gmail.com> wrote:

Obrigado a todos pelas respostas, mas vou colocar mais um porém aí nessa história. :)

O site será hospedado num servidor "normal" desses tipo GoDaddy. Então não dá pra viahar muito em cima de soluções que necessitem de coisas especificas como por exemplo um  BD orientado a objetos!!! :)

Vamos continuar debatendo as possibilidades!!!

Abraços,
Pepeu

Em 31 de agosto de 2010 17:23, Bruno Gross <bruno...@gmail.com> escreveu:

 

Tem mto material legal no imasters de um conhecido meu...

 

 



 

2010/8/31 Luiz Augusto Moreira Costa <gutom...@gmail.com>

 

Oi,

 

Já pensou em usar um banco de dados não relacional para isso? Dá uma olhada no Neo4j, é bem interessante, e é bem mais flexível que um BD comum.

 

Valeu

Luiz Costa

2010/8/31 Sidney Lima Filho <sidney...@vivina.com.br>

Erro! O nome de arquivo não foi especificado.             

~WRD000.jpg
image001.jpg

Pepeu

unread,
Sep 6, 2010, 3:34:49 PM9/6/10
to dotnetar...@googlegroups.com
Fala pessoal,
Obrigado a todos que responderam até agora (e Bill estou sem MSN por causa da empresa). :(
 
Imaginem o seguinte, o site terá usuários que postam informações de qualquer tipo. Aqui podemos usar noticias por exemplo.
Sendo assim quero promover integração entre os usuários,  gostaria pudessem interagir comentando noticias de outros usuários, anotando um usuário como amigo, formando comunidades em cima de um tema/grupo, e coisas do tipo.
 
Já tenho algumas coisas na cabeça, vou fazer um esquema meio genérico para que eu possa usar esse core em outros projetos tbm. :)
 
abraços,
Pepeu
image001.jpg
~WRD000.jpg
Reply all
Reply to author
Forward
0 new messages