[Php-avanzado] Tesis Redes Sociales
Matías Alvarez
matiasalvarez87 en hotmail.com
Vie Dic 12 13:57:17 ART 2008
Leo:
Justo que estuvimos hablando de esto el sabado pasado, en una aplicación
pequeña/mediana que se va a hacer con un diseño de objetos con una
arquitectura MVC que otra forma de hacer la persistencia sugerís que no sea
un ORM? ActiveRecord en vez de DAO? El tema es que la utilización de los
ORM's también consumen un tiempo de aprendizaje, y yo actualmente estaba por
comenzar a hacer un desarrollo en el cuál no tengo este tiempo para
investigar.
Y por otro lado que ORM's para PHP me recomendas que hayas utilizado? Yo
conozco Propel que es el ORM que utiliza Symfony para la persistencia, pero
si vos tenes alguna sugerencia mejor.
Saludos
--------------------------------------------------
From: "Leonardo Tadei - Pegasus Tech Supply" <leonardot en pegasusnet.com.ar>
Sent: Friday, December 12, 2008 11:37 AM
To: "Lista del curso de PHP Avanzado" <php-avanzado en pato2.fi.mdp.edu.ar>
Subject: Re: [Php-avanzado] Tesis Redes Sociales
> Hola Gustavo!
>
> El jue, 11-12-2008 a las 21:25 -0300, Gustavo Alberola escribió:
>> Leonardo:
>> Te envío la propuesta de tesis.
>> Cualquier crítica constructiva es bienvenida...
>
> Se ve bien.
> Te pongo algunos comentarios intercalados y una solo crítica ;-)
>
>> Realmente despiertan en mi un particular interés las denominadas “redes
>> sociales”. La manera
>> en que se interrelacionan, y la manera en que permiten que el usuario
>> genere una red de
>> contactos, ampliando la difusión del contenido a un gran número de
>> personas.
>> El proyecto consistiría en el desarrollo de un sitio de red social para
>> el intercambio de
>> fotografía digital y publicaciones de texto sobre las mismas.
>
> En qué consiste este intercambio?
> Por ejemplo si voy a Blogger y cuelgo una foto, podría decirse que la
> estoy "intercambiando" con todo el que paso por el blog y la vea.
> El software provee mecanismos de intercambio? Cuales? Es la asociación
> que mencionás más abajo?
>
>> Alcances del proyecto
>>
>> El sitio de red social dispondrá de los medios necesarios para que el
>> usuario genere en el
>> mismo álbumes, y suba imágenes a los mismos. Permitirá asociarse con
>> otros usuarios,
>> concediéndoles acceso a los álbumes que el usuario configure con los
>> permisos
>> correspondientes.
>> A su vez el sitio integrará API´s de otras redes sociales conocidas,
>> como Facebook, MySpace y
>> Fliker. Por ahora solo estos trés.
>
> La integración de las API lo va a hacer demasiado largo.
> te propongo que para la entrega esta parte no esté, y luego se la
> agregás como proyecto personal.
> Si en cambio querés hacer la integración de las APIs en la tesis,
> armemos algo que defina al usuario e integre contenido, sin la parte del
> manejo de contenido propio.
> Si no te queda demasiado largo el trabajo...
>
>> También aportará una API propia del sitio, para continuar con la cadena,
>> y posibilitar que otras
>> aplicaciones, también obtengan los datos de mi sitio.
>
> Perfecto!
>
> Mucho de los comentarios que vienen exceden lejos este curso, pero como
> estás estudiando sistemas te hago unas puntualizaciones conceptuales que
> seguro te servirán en el futuro:
>
>> Análisis de requerimientos
>
> Gustavo, los requerimientos no se analizan, se especifican.
> Sí es analizable una especificación de requerimientos para por ejemplo
> hacer un diseño, pero en esa tapa estaríamos hablando de diseño y no de
> requerimientos.
>
>> 1. Gestión de usuarios para el sitio
>> 1.1. Manejo de sesiones.
>> 1.2. Integración con API´s
>> 1.2.1. Analizar la estructura de la API de facebook
>> 1.2.2. Analizar la estructura de la API de MySpace
>> 1.2.3. Analizar la estructura de la API de Flicker
>> 1.2.4. Desarrollar una interfaz homogénea
>
> No hace falta la interfaz homogenea. Con un Adapter se soluciona...
>
>> 1.3. Front End
>> 1.3.1. Formulario de registración
>> 1.3.2. DAO´s
>> 1.3.2.1. Usuarios.
>> 1.3.2.2. Álbumes.
>> 1.3.2.3. Imágenes.
>
> Los DAO son un concepto erróneo en un diseño de sistemas.
> Sé que hay muchísima gente que los usa y mucha que hasta los enseña,
> pero son una pésima solución al problema de la persistencia que ensucia
> el modelo. Para persistir existen los ORM "de verdad" que te permiten
> trabajar con un modelo puro.
> (he visto hasta ORM implementados usando DAO: un horror! Pero es fácil
> de escribir.)
> Un docente mío hizo una buena síntesis de esto: DAO = Desde Ahora
> Olvídenlos
>
> Es un tema lindo para charlarlo en clase.
>
>> 1.3.3. Pantallas
>> 1.3.3.1. Usuarios
>> 1.3.3.2. Álbumes
>> 1.3.3.3. Imágenes
>> 1.3.3.4. Generación de hojas de estilos para el sitio
>
> El sistema debe generar hojas de estilos???
> Es una lista de tareas a desarrollaros o los requerimientos del
> sistema?
>
>> 1.4. Back End
>> 1.4.1. Managers
>> 1.4.1.1. Manager de sesiones
>> 1.4.1.2. Manager de usuarios
>> 1.4.1.3. Manager de álbumes
>> 1.4.1.4. Manager de imágenes
>> 1.4.2. Pantallas
>> 1.4.2.1. Pantalla de sesiones
>> 1.4.2.2. Pantalla de usuarios
>> 1.4.2.3. Pantalla de álbumes
>> 1.4.2.4. Pantalla de imágenes
>> 1.4.2.5. Generación de hojas de estilos para el sitio
>> 1.5. Integración con API´s (segunda parte)
>> 1.5.1. Adapters
>> 1.5.1.1. Desarrollo del adaptador para Facebook
>> 1.5.1.2. Desarrollo del adaptador para MySpace
>> 1.5.1.3. Desarrollo del adaptador para Flicker
>> 1.5.2. Integración con el sitio
>> 1.5.2.1. Generar la gestión de integración
>> 1.5.2.2. Generar los componentes para integración
>> 1.5.2.3. Agregar los componentes a las pantallas del Front End
>
> tenemos que decidir igual si esta parte la encarás ahora o no...
>
>> 1.5.2.4. Generara un Back End para la gestión de las redes externas.
>> 1.6. API´s propias
>> 1.6.1. Gestión de sesiones externas.
>
> Qué es esto de las sesiones externas?
>
>> 1.7. Instalador de la aplicación.
>>
>>
>> 1.1. Desarrollar el componente para el manejo de las sesiones del
>> usuario.
>> 1.2. Analizar cada una de las API´s otorgadas por los sitios mencionados
>> en los puntos 1.2.1,
>> 1.2.2 y 1.2.3, de manera de poder diseñar una estructura homogénea para
>> la interacción
>> con todos los sitios externos.
>> 1.3. Objetos de Acceso a Datos,
>
>
> Ahhh!!!! Mis ojos!!!
>
> Un DTO soluciona esto de mejor manera...
>
>> y formulario de registración. Pantallas
>> para la interacción con
>> el sitio, y diseño de la estética del sitio (aquí es donde empiezo a
>> robar CSS´s)
>> 1.4. Generar los managers para administrar las herramientas
>> correspondientes. Generar las
>> pantallas de administración, y aplicar otro estilo para el back end
>> (nuevamente a robar
>> CSS´s).
>> 1.5. Diseño de los adaptadores para interacción con los sitios externos,
>> e integración de los
>> mismos con el sitio.
>> 1.6. Generación de la API propia.
>> 1.7. Generar el instalador de la aplicación.
>
> Bueno... seguimos en contacto.
>
> saludos!
> --
> Leonardo Tadei
> leonardot en pegasusnet.com.ar
> http://blog.pegasusnet.com.ar
> Firma pública: http://www.pegasusnet.com.ar/LeonardoTadei-public.key
>
> _______________________________________________
> Php-avanzado mailing list
> Php-avanzado en pato2.fi.mdp.edu.ar
> http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
Más información sobre la lista de distribución Php-avanzado