2011-01-08 7 views
5

Me gustaría crear una pequeña red social usando Ruby on Rails 3. Como se trata de un sistema complejo, ¿qué se recomienda para la arquitectura de la información?Desarrollando una red social: consejos, detalles e información

Pensé crear múltiples aplicaciones RoR con una arquitectura jerárquica, cada una utilizada para lograr un propósito específico. Por lo tanto, creé un dominio y más subdominios.

Por ejemplo:

dominio principal: http://main.com

Todos los subdominios nedded: http://app1.main.com, http://app2.main.com, ...

Un problema que se presenta el uso de este tipo de arquitectura es el autenticación de usuarios , porque, al configurar la cookie en el nivel http://main.com (para que todas las cookies sean accesibles desde todos los subdominios), no se "siguen" cuando intento hacer una llamada HTTP GET entre subdominios, a menos que usted pasa explícitamente los valores de los parámetros de las cookies en la llamada HTTP GET, tal vez usando una conexión SSL/TSL. ¿Es este un enfoque correcto?

Sin embargo, en este caso, puedo pensar en utilizar las API REST y dicho protocolo OAuth para proteger los recursos ...

¿Cuál es la forma correcta de crear una red social? ¿Alguien puede aconsejarme con suficiente detalle?

P.S .: ¿Es correcto lo que estoy diciendo?

Respuesta

5

también se puede mirar en la diáspora es una red social con todas las funciones y que el código fuente está disponible en github! https://github.com/diaspora/diaspora

+0

es difícil (o imprudente) destripar diáspora y crea un clon linkedin basa en ella? –

+0

Creo que no es prudente hacerlo (pero aprenderá mucho). Debes construirlo desde cero impulsado por pruebas (Prueba impulsada). Use gemas como el dispositivo para autenticar a sus usuarios. Entonces podrías echarle un vistazo a la diáspora cómo implementan ciertas características sociales. Luego, escriba pruebas para esas características y trate de implementarlas usando su propio modelo de datos, etc. Pero si realmente no tiene ni idea, eche un vistazo a Diáspora y su funcionamiento interno para tener una mejor idea de cómo comenzar :) –

Cuestiones relacionadas