Pregunta

Drupal es en gran medida un "Hacer todo" CMS Hay módulos que le permiten agregar casi cualquier funcionalidad, lo cual es genial. Sin embargo, parece que muchas de las características (v5 y v6) parecen dispersas y no son intuitivas para el usuario. Como desarrollador, me queda la sensación de haber parcheado un sitio usando chicle y cuerda.

Por ejemplo, para agregar texto al cuadro de búsqueda predeterminado (que desaparece al hacer clic), debe agregar algún código jQuery O anular el tema. También he encontrado el sistema de menús más complicado de lo que debería ser.

¿Soy el único con esta opinión? ¿Qué cosas (si hubiera) cambiarías sobre el núcleo de Drupal?

¿Fue útil?

Solución

La falta de un verdadero diseño orientado a objetos significa que con frecuencia tiene que confiar en la previsión de otros desarrolladores para dejar "gancho" funciones para permitirle alterar un determinado comportamiento.

Utilizando Drupal 5, también me he encontrado con situaciones en las que la única forma de completar un cambio de diseño relativamente simple es parchear Drupal (y luego asegurarse de volver a aplicar parches con cada nueva versión oficial de Drupal). Pero, para ser justos, debería haber visto lo malo que era en Drupal 4.

También me molesta que cuando me tomo el tiempo para identificar un error o una peculiaridad en la versión de producción actual de Drupal, envío un parche, y el parche nunca se confirma porque, básicamente, solo los errores de seguridad se corrigen en el actual lanzamiento estable.

Otros consejos

Para mí, el mayor inconveniente de Drupal es que grandes porciones de un sitio de Drupal en vivo se almacenan en la base de datos. Dado que no hay una forma automatizada de migrar contenido o configuración entre sistemas, la implementación de los cambios en un sitio en vivo debe realizarse manualmente o mediante un código excesivamente complicado.

Una de las mayores deficiencias de Drupal es que baila en la línea entre una herramienta llave en mano para creadores de sitios no programadores y un marco para desarrolladores que crean aplicaciones web complejas. Tiene algunas cosas interesantes para ofrecer a ambos grupos, pero las concesiones a una multitud siempre tienden a hacer tropezar a la otra.

La tendencia creciente en la comunidad de Drupal es construir explícitamente API de desarrollador, luego IU de administración de capa y UI de usuario final sobre las API. Esto es algo bueno, pero también hay mucha arquitectura heredada. El proyecto cumplió 8 años esta semana, y cada sitio requiere una combinación de módulos que evolucionan a diferentes ritmos.

Si alguien aún no ha creado un módulo que haga lo que usted desea, aprovechar el sistema de manera efectiva sin hackear el código central requiere asimilar muchas API internas diferentes, muchas estructuras de datos exclusivas de drupal y estudiar sobre algunos flujos de trabajo ocasionalmente funky. Una gran cantidad de sitios terriblemente malos e imposibles de mantener están flotando a raíz de personas que necesitaban hacer cosas difíciles y que no tenían la experiencia (o el tiempo) para investigar el "correcto". forma de hacer las cosas.

(Descargo de responsabilidad: Acabo de ser el coautor de un par de capítulos para un libro sobre Drupal, y hago el trabajo de Drupal a tiempo completo, por lo que estoy tan lejos de ser "imparcial" como pueda. Pero me gusta pensar que mantengo la perspectiva. También me encanta Django).

Drupal lo llevará al 80% del camino fuera de la caja, pero ese último 20% tomará meses y meses.

Drupal es un sistema impresionante. Es sorprendentemente pequeño para todo lo que hace, y su sistema de módulos es extremadamente poderoso. Pero como dijo Eli, muchas de sus tareas dependerán de que otros desarrolladores hagan algo de una manera particular.

Hay un debate dentro de la comunidad de Drupal sobre su diseño. Drupal existía antes de que las características de OOP de PHP fueran fuertes, pero ahora que lo son, hay una discusión frecuente sobre cómo cambiar el sistema para usar estructuras de datos orientadas a objetos. Dependiendo de sus gustos, esto podría ser un inconveniente para usted como desarrollador. Yo mismo tengo dos opiniones al respecto.

El sistema también puede parecer muy "mágico" para los recién llegados, ya que de alguna manera hace todas estas cosas locas con poca explicación. "Acabo de definir una función, ¿cómo sabe Drupal cómo llamarla?!"

Sin embargo, debo decir que en general soy un gran admirador de Drupal. Es un buen sistema que mejora mucho con cada versión principal. Por mi parte, no puedo esperar a las 7.

Drupal es bueno para comenzar, pero pasas más tiempo 'deshaciendo' que realmente haciendo las cosas. Esto ha cambiado especialmente con el lanzamiento de Drupal 6 y, para ser justos, es más evidente en los módulos contribuidos.

La gestión de las migraciones también es un problema, como dijo Sean. Todavía no conozco un buen método para mover los cambios de un sitio de desarrollo a uno en vivo.

No estoy seguro de que haya algo que cambiaría en el núcleo actual y se está trabajando en la mayoría de las deficiencias. La administración de imágenes necesita trabajo, la interfaz de administración predeterminada está un poco desordenada, lo que hace que los diseños más complicados sin obtener vistas / paneles, etc.

me parece terriblemente complejo. como desarrollador de php, me estoy arrancando el cabello a diario por problemas que no tienen nada que ver con php sino con el propio drupal. ¿Cómo / por qué / cuándo hace X? Es una gran bestia que necesita ser domesticada. la documentación se limita a unas pocas guías muy buenas, muchas de mierda e incluso más hilos de foros inútiles que siempre aparecen en Google.

usabilidad en el backend es una mierda. un tema personalizado también alterará el diseño del " admin " parte del paquete que puede ser extremadamente frustrante y resulta en diseños menos que bonitos.

si está trabajando con cortadoras html, es imposible usar html que no se haya creado específicamente para drupal. prácticamente te obliga a usar drupal-html, con muchos divs, 5 clases detalladas por div, etc. por naturaleza, no se puede esperar que los chicos html / css conozcan drupal a este nivel.

No me gusta la forma en que se basa en nombres de archivo (10 palabras de largo, con diferencias muy sutiles entre ellos) para crear un tema.

Habiendo dicho eso, algunas de las cosas que puede hacer son geniales y le ahorran días y días de desarrollo personalizado de php

Drupal ofrece herramientas poderosas a los no programadores, pueden construir fácilmente un sitio con todas las funciones en menos tiempo. Pero el problema es que la curva de aprendizaje es demasiado alta para Drupal.

Si una persona es nueva en drupal y quiere hacer algo personalizado, tomará mucho tiempo si quiere hacerlo de la manera adecuada. Hay muchas maneras de hacer una sola cosa en drupal, descubrir cuál es el mejor o el más apropiado para un recién llegado es un dolor de cabeza.

Creo que su curva de aprendizaje es la única deficiencia, ya que la mayoría de las empresas luchan por encontrar un buen talento de Drupal. http://drupalize.me/ y http://buildamodule.com/ está haciendo un muy buen trabajo para reducir esta curva de alto aprendizaje.

Creo que la interfaz de administración predeterminada no es muy intuitiva en comparación con otros cms como modx o joomla / mambo

Está escrito en PHP4. Esto cambiará a partir de la versión 7. Por supuesto, puede escribir sus propios módulos en php5. Como desarrollador experimentado de Drupal y encuentro que mi currículum ha sufrido debido a mi exposición limitada a php5.

No es el mejor para ejecutar servicios como SOAP. Llamar a toda la pila de Drupal para proporcionar un servicio web es una gran penalización de rendimiento. Los módulos de servicios aún están en desarrollo.

Sin soporte de transacciones de base de datos Esto se convierte en un problema cuando lo escala a cargas extremas.

Sería bueno ejecutar pruebas desde la línea de comandos. Esto fue posible con el 1.x más simple, pero la versión actual no lo admite muy bien. Simpletest no es lo suficientemente maduro. Una instalación limpia de Drupal puede fallar las pruebas. Algunas de las pruebas incluidas por defecto lo obligan a usar tipos de contenido y módulos que quizás no necesite y no puede deshabilitarlos sin piratear el módulo más simple.

Tiene un registro de seguridad aparentemente malo: http://secunia.com/advisories/ search /? search = Drupal

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