2010-10-01 20 views
5

Se me ha consultado sobre la configuración de un proyecto y me gustaría compartir mis ideas con alguien para obtener opiniones adicionales.Decisiones arquitectónicas: sitio principal, foro, blog

La parte principal de este sitio web es muy compleja y tiene una funcionalidad muy personalizada, por lo que he visto es más una aplicación web. Sin embargo, se necesita un blog y también se necesita un foro. Esta es la descripción general de este proyecto.

Como la parte principal del sitio web es más una aplicación web, creo que este proyecto debe separarse en piezas individuales atendidas por diferentes marcos y CMS para que cada componente no limite otros componentes. Sin embargo, esta es una decisión bastante difícil de vender porque nadie quiere mantener diferentes marcos y CMS a menos que esto sea realmente lo correcto para ellos.

Mi lógica es que debido a que la parte principal del sitio web es realmente una aplicación web compleja, tratando de adaptarla a un CMS como Drupal o Joomla o lo que sea, va a aumentar el tiempo y el costo del desarrollo. Esta parte tiene sentido para ser creada con una tecnología más flexible como Zend Framework o Symfony, básicamente algo que es un framework, no un CMS.

Para el resto de los componentes, no veo el punto de utilizar un marco ya que muchos de ellos son componentes estándar como un blog y un foro. Entonces, para el resto del sitio web, mis opciones son 1) construir todo lo que se necesita con un solo CMS con el que estoy familiarizado (por ejemplo, Drupal), pero como ya he recorrido el camino para dividir el sitio, pensé opción 2) por qué no dividir aún más el sitio y elegir el mejor software para cada componente. Drupal, por ejemplo, no es un gran foro. Simplemente no es donde radica su poder.

También resulta que las personas que participarán en la redacción de los blogs no son en su mayoría las mismas personas que contribuyen a los foros, así que estoy pensando que no debería preocuparme por algo así como capacitar al mismo personal en 2 software separado.

Sin embargo, no puedo decidirme sobre la mantenibilidad de este sitio web. Por un lado, creo que va a ser más difícil mantener 3 tecnologías principales diferentes: marco para la aplicación, software de foro especializado (sugerencias bienvenidas), y software especializado en blogs (sugerencias bienvenidas), pero por otro lado, Creo que esto puede ser mucho más fácil de mantener porque una parte del sitio web se puede quitar o cambiar mucho más fácilmente sin afectar a todo lo demás.

Esa ha sido mi idea general, pero me preocupa que sea difícil venderla, porque puede parecer que estoy tratando de complicar un proyecto. Aunque creo que este enfoque en realidad lo simplifica. Entonces, ¿alguna idea sobre esto? ¿Hay problemas que no estoy considerando completamente? ¿Qué decisiones arquitectónicas haría de manera similar o diferente si tuviera el mismo tipo de problema?

Respuesta

8

Es una decisión difícil de hecho. Sin embargo, antes que nada, hay un par de preguntas críticas que deben ser respondidas.

1: ¿El blog va a contener la funcionalidad completa de los softwares de blogs que ve por ahí? ¿O necesita un conjunto de funciones más pequeño y más simple? Lo mismo vale para el foro.

2: ¿Se requiere compartir la base de usuarios en los tres sistemas?

3: ¿Se requiere que el diseño del sitio sea exactamente el mismo en todos los ámbitos?

Si necesitan los foros completos y los blogs, sería prudente ir con sistemas separados. Sin embargo, si el conjunto de características requerido es pequeño, podría ser más inteligente crearlo personalizado, sin gastar demasiado tiempo.

Si la base de usuarios debe compartirse, entonces sería un dolor integrar las sesiones y la base de usuarios en tres sistemas diferentes, siempre es más fácil y sencillo usar solo una tabla de usuarios. Tendrás que hackear el foro y la plataforma de blogs para que funcione con los cms principales, habrá problemas al hacerlo.

Si el diseño puede variar en estos sistemas, estaría bien, sin embargo, hacerlo exactamente igual sería una hazaña y requeriría personas especializadas para el foro y la plataforma de blogs relevantes. Por lo tanto, mantener el diseño también sería un problema.

Esta es una decisión muy difícil. Va a ser un costo a corto plazo frente a un costo a largo plazo. Si crees que la aplicación web está allí para quedarse por un tiempo, yo voto por un mayor costo a corto plazo, que facilitaría las cosas a largo plazo.

Otra nota: Si diseña su arquitectura para que sea modular, puede desarrollar su foro y sistema de blog como módulos que puede enchufar. Así que te da la libertad de llevar el sitio parcialmente fuera de línea.

2

Va a ser mucho más fácil mantener los marcos que tienen muchos usuarios que saben lo que están haciendo. Va a ser más difícil mantener una aplicación personalizada que intente ser una aplicación, un blog y un foro en uno.

Quien sea que su mantenimiento será contento de que cuando tienen que realizar un cambio en el blog:

  • no necesitan mirar a cualquiera de los otros componentes
  • hay una gran cantidad de documentación por ahí para su motor de blog (suponiendo que vaya con uno popular, por ejemplo,Wordpress
+0

Creo que si va a separarlo, es mejor que lo haga correctamente. Es mucho más fácil mantener algo que simplemente está tratando de hacer un buen trabajo al ser un blog, y también con un foro. – Skilldrick

1

Me gustan las preguntas de @ Sabeen.

Suponiendo que los tres componentes vayan a compartir usuarios y el diseño, me parece preferible tener un único marco subyacente, no un monstruo multidireccional Drupal-Wordpress-phpBB-Zend en el que tiene que manejar una autenticación distinta y esquemas de tematización.

Pero, como señaló Sabeen, si el foro y el blog realmente necesitan tener todas las funciones, implementarlos desde cero parece una gran tarea reinventar las ruedas ya probadas. Costo a corto plazo, sin duda, pero con suerte con beneficios a largo plazo.

Cuestiones relacionadas