Pregunta

Plone es muy complejo. Zope 2, Zope3 , Cinco , ZCML , ZODB , ZEO , un montón de siglas y abreviaturas.

Es difícil comenzar y el estado actual parece estar indeciso. Se basa principalmente en Zope2, pero incorpora Zope3 a través de Five. Y hay archivos de configuración XML en todas partes.

¿Vale la pena la curva de aprendizaje empinada? ¿Esta complejidad todavía se justifica hoy?

Antecedentes: necesito una plataforma. Los clientes a menudo necesitan un CMS. Actualmente estoy leyendo " Desarrollo profesional de Plone " , sin conocimiento previo de Plone.

El problema: los clientes no siempre quieren lo mismo y no se puede saber de antemano. Una cosa es segura: no quieren el tema predeterminado de Plone. Pero cualquier característica adicional es un riesgo. No puede simplemente comenzar y decir " si desea Para ver la complejidad de Plone, debe solicitarla. " cuando no conoces el sistema lo suficientemente bueno como para planificar.

¿Fue útil?

Solución

Si desea ver la complejidad de Plone, debe solicitarla. Para la mayoría de las personas, simplemente no existe. Se instala en un par de minutos a través de un instalador de un solo clic. Luego es un clic para iniciar sesión, un clic para crear una página, usar un editor WYSYWIG y un clic para guardar. Todo es a través de una GUI web intuitiva. Plone es un producto.

Si quiere usarlo como " plataforma, " entonces la plataforma es una pila de más de un millón de líneas de código que implementa un conjunto completo de administración de contenido. Nadie lo sabe todo. Sin embargo, todos esos "acrónimos" y " archivos " son evidencia de un software que se factoriza en componentes para que nadie necesite saberlo todo. Puedes obtener la profundidad o la profundidad que necesites. Si hay algo que necesita para algún aspecto de la administración de contenido, ya está allí, no tiene que crearlo desde cero, y puede hacerlo de una manera que sea consistente con una práctica y revisión amplia.

Otros consejos

Es difícil responder a su pregunta sin ninguna información de fondo. ¿Se justifica la complejidad si solo quieres un blog? No. ¿Está justificada la complejidad si está construyendo una intranet de la empresa para más de 400 personas? Sí. ¿Es una buena inversión si buscas ser consultor? ¡Absolutamente! Hay mucho trabajo de Plone, y paga mucho mejor que el trabajo promedio de PHP.

Le animo a que aclare lo que está tratando de construir, y pida consejo a los foros de Plone. Plone tiene una comunidad muy madura y amigable & # 8212; y absolutamente le hará saber si lo que está tratando de hacer no encaja bien con Plone. Por supuesto, puede hacer lo que quiera con Plone, pero hay algunas áreas donde es la mejor solución disponible, otras áreas donde será mucho trabajo cambiarlo para hacer otra cosa.

Algunos antecedentes:

La razón de la complejidad de Plone en este momento es que se está moviendo hacia una arquitectura más moderna. Está uniendo tanto el enfoque antiguo como el nuevo en este momento, lo que agrega algo de complejidad hasta que la transición esté casi completa.

Plone está haciendo esto para evitar dejar atrás a sus clientes al romper la compatibilidad con versiones anteriores, que se toman muy en serio & # 8212; a diferencia de otros sistemas que podría mencionar (pero no lo haré).

Te interesan tus datos, la comunidad de Plone se preocupa por sus datos & # 8212; y nos gustaría que pueda actualizar a las nuevas y mejores versiones incluso cuando estamos en transición a una nueva arquitectura. Esta es una de las fortalezas de la comunidad Plone, pero, por supuesto, hay que pagar una penalización por modificar el avión mientras vuela, y eso es un poco de complejidad adicional temporal.

Además, Plone como comunidad tiene un fuerte enfoque en la seguridad (compárelo con cualquier otro sistema sobre las vulnerabilidades reportadas) y una cultura muy profesional que valora la buena arquitectura, prueba y reutilización.

Como ejemplo, considere la versión actual de Plone que se está desarrollando (lo que se convertirá en 4.0):

  • Se inicia 3-4 veces más rápido que la versión actual.
  • Utiliza aproximadamente un 20% menos de memoria que la versión actual.
  • Hay un sistema de tipos mucho, mucho más fácil en proceso (Destreza), que reducirá la complejidad y acelerará mucho el sistema, manteniendo el mismo nivel de funcionalidad
  • La base del código ya es un 20% más pequeña que la versión de envío actual, y se está volviendo aún más pequeña.
  • Los primeros puntos de referencia del nuevo sistema de tipos muestran un 5 & # 215; aceleración para la edición de contenido, y todavía no hemos comenzado a optimizar esta parte.

& # 8212; Alexander Limi, cofundador de Plone (y ligeramente sesgado;)

Encontré un comentario anónimo aquí que es mucho mejor que eso publíquese, así que lo volveré a publicar aquí completo, con un par de errores tipográficos corregidos.


Este verano, mi club de ajedrez me pidió que creara un nuevo sitio web, donde los miembros del tablero deberían poder agregar noticias, artículos, ... Parecía un CMS. Siendo un desarrollador de Python, miré a Plone y compré el libro Aspeli Professional Plone development (excelente por cierto escrito).

Me tomé 3 semanas de vacaciones para estudiar el libro y configurar una primera maqueta del sitio.

Después de 3 semanas me di cuenta de que Plone tiene algunas cosas muy bonitas pero también muy frustrantes En el lado positivo

  • si no necesita personalizar Plone, Plone es excelente en características y diseño
  • Plone tiene un buen modelo de seguridad
  • Plone tiene buenos flujos de trabajo disponibles
  • Plone es multilingüe (lo que necesitaba)

En el lado negativo

  1. Plone es terriblemente lento. En mi plataforma de desarrollo (una PC de 3 años con 512 MB de RAM) se tarda 30 segundos en iniciar Plone y 10 a 15 segundos para volver a cargar una página
  2. necesita muchas tecnologías diferentes para personalizar o desarrollar incluso las cosas más simples
  3. TAL y Metal no son de última generación y no están adaptados al diseño OO de Plone.
  4. La adquisición por defecto es incorrecta. La adquisición puede ser muy útil (por ejemplo, seguridad) pero debe definirse explícitamente donde sea necesario. Esta es una falla de diseño
  5. Plone no distingue entre contenido y diseño. Este es un serio defecto de diseño. No hay ninguna razón para aplicar configuraciones y roles de seguridad en, p. hoja de estilo en cascada o el html que crea un diseño de 3 columnas y no hay razón por la cual estos elementos deberían estar en el ZODB y no en el sistema de archivos
  6. Plone no distingue entre el diseñador web y el editor / editor de contenido, nuevamente una falla grave. El editor / editor de contenido agrega / revisa el contenido que se ejecuta en el sitio en vivo. El diseñador web agrega / modifica tipos de contenido, formularios y diseño en el servidor de prueba y lo transfiere al servidor en vivo cuando está listo. Las restricciones de seguridad establecidas por Plone para el editor de contenido no deben aplicarse al diseñador web, que tiene acceso al sistema de archivos en el servidor.
  7. Plone no distingue entre los aspectos gráficos y los aspectos de programación de un diseñador web. Los artistas gráficos usan herramientas que solo hablan html, css y un poco de javasccript, pero no Python, adaptadores y otros conceptos avanzados de programación. Como consecuencia, el sistema completo de desuello en Plone es una pesadilla

Supongo que Plone es muy lento debido a los puntos 4, 5, 6 y 7.

Los puntos 6 y 7 me hicieron soltar a Plone. Busqué otras opciones y finalmente decidí desarrollar mi propio CMS en Pylons, que es increíblemente rápido en comparación con Plone. En el mismo servidor de desarrollo, tengo un tiempo de inicio de 1 segundo, y el tiempo de recarga de una página no se puede medir.

El sitio www.kosk.be se está ejecutando (está en holandés). El CMS detrás de él, llamado Red Devil, se lanzará como un proyecto de código abierto separado a partir del próximo año

Veo cuatro cosas que pueden justificar una inversión de tiempo al usar Plone: ??

  • Plone tiene una comunidad grande y útil. La mayoría de las cosas que necesitas, alguien más
    Ya lo hice en algún momento en el pasado. Probablemente hizo algunas preguntas y fue útil respuestas, o escribió un tutorial. Por lo general, eso deja rastros fáciles de encontrar. sobre cómo lo hizo.
  • No necesitará comprender toda la complejidad de muchas de sus necesidades de personalización.
  • Los desarrolladores de Plone son conscientes de su pila compleja y están discutiendo cómo puede ser esto reducido. Plone ha demostrado en el pasado que puede renovarse y dejar de funcionar. infraestructura de manera limpia con fases de desaprobación definidas.
  • Hay muchos grupos de usuarios locales con personas útiles.

¡Oh, espera, me dijeron que las reuniones de desarrolladores de Plone son una de las mejores! Como ese

Desde el punto de vista del administrador del sistema, Plone es tímido de ser el demonio absoluto. Actualizar, mantener e instalar donde desea instalar cosas es más doloroso de lo necesario en la plataforma Linux. Sin embargo, esos son solo mis dos centavos, y por eso generalmente prefiero evitar la pila Zope / Plone.

Nota: es mejor con versiones más nuevas, pero versiones más antiguas ... ugh

Acreción.

Sobre el comentario aquí creo que Plone no funciona así (al menos ya no).

1 - Plone es de alguna manera más lento que otras soluciones de CMS, pero desde la configuración inmediata hasta una solución Apache-Varnish-Zope-Relstorage, hay mucho espacio de optimización.

2 - Eso es cierto. La respuesta aquí lo explica, pero de hecho Plone es un animal complejo.

3 - No estoy seguro de lo que quieres decir. Las expresiones de ruta TAL se basan en el concepto de recorrido de atributo de objeto. Me parece OO.

4 - Verdadero. Aunque después de comprender cómo funciona la adquisición, se mantiene fuera de su camino. Y en Plone no creo que muchas cosas dependan de la adquisición.

5 - No es cierto. Las plantillas de página de Zope tienen que ver con separar el contenido de la presentación. El hecho de que el contenido y la presentación se puedan ver desde el ZODB (y en realidad la mayoría de las plantillas permanecen en el sistema de archivos, solo se ve una " vista " de ellas en el ZODB) está más relacionado con el hecho de que el ZODB es un gran base de datos de objetos, lo que a su vez no significa que todos sean contenido. Todo en "puro" El sistema OO es un objeto, es solo el tipo de objeto (objetos de presentación, objeto de contenido, etc.) lo que importa.

6 - Plone distingue entre diseñadores web y creadores de contenido. Los diseñadores hacen todas las personalizaciones (plantillas, CSS, JS, etc.) y luego los creadores de contenido crean el contenido utilizando Plone UI. El punto aquí es que Plone es principalmente un CMS, lo que significa que se supone que los creadores de contenido son laicos en términos de diseño.

7 - Parcialmente cierto. Teniendo en cuenta que la estructura de la IU no cambiará, todas las especificaciones de presentación están contenidas en archivos CSS. Si la estructura de la interfaz de usuario necesita cambiar, el diseñador podría trabajar con un programador :-) para adecuar las plantillas.

Supongo que en ningún sistema que genera páginas dinámicas, el diseñador es completamente libre de hablar solo HTML, CSS y JS, y dejar de lado alguna otra tecnología, ya sea PHP, Python, ASP o Java. Si lo hace, definitivamente habrá un programador que obtendrá el HTML, CSS y JS del diseñador y lo dinamizará. Este modelo definitivamente existe en Plone.

No lo use, si no es necesario. Todo el universo ZOPE es un dinosaurio. Cultivado por siglos, ha recogido gran cantidad de crujiente y óxido. Muchas cosas se harían completamente diferentes hoy en día. Demasiado complejo para la mayoría de las cosas, difícil de manejar para cosas complejas. Es lo opuesto al diseño delgado y escalable. Y para solucionar esto seriamente, no veo la mano de obra necesaria involucrada en el proyecto.

Perdón por las duras palabras, también desearía que fuera mejor.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top