¿Sigue siendo todo el código la forma preferida de desarrollar Drupal?

Esto depende de qué quieres decir con ‘todo’. Supongo que te refieres a código de procedimiento + configuración. El contenido normalmente no se incluye en la práctica ‘todo en código’, pero la línea entre el contenido y la configuración a veces es confusa.

También depende de lo que entiendas por “personas”. En general, “todo en código” es una práctica recomendada aceptada por la comunidad de Drupal. En Drupal 8, este tipo de idea está integrada en el núcleo, consulte Gestión de la configuración en Drupal 8 y Gestión de la configuración en Drupal 8.

Por supuesto, Drupal permite una mayor flexibilidad que la configuración codificada. Tiene una capa de base de datos que permite a los usuarios cambiar la configuración a través de la interfaz de usuario. Esta es una de las grandes fortalezas de Drupal. Ahora con Drupal 8 es mucho más fácil obtener estos cambios de configuración en el código y ver qué ha cambiado. También es más fácil implementar estos cambios entre sitios. Esta suele ser una característica imprescindible si tiene diferentes versiones del sitio utilizadas en su flujo de trabajo de implementación (desarrollo, puesta en escena, en vivo). Sin algún tipo de administración de configuración, como Características y Strongarm en Drupal 7, necesitaría realizar cambios de configuración a mano en cada versión del sitio. Nunca recomendaría esto como práctica general.

Drupal 8 también permite bloquear algunas configuraciones de los usuarios. Esto hace posible tener dos tipos de configuración, una que se supone que cambia con el tiempo por las interacciones del usuario y la que solo cambian los desarrolladores. En este caso, probablemente no sea razonable poner la configuración administrada por el usuario en el código. Es mejor asegurarse de que su sitio funcione con cualquier combinación de configuración administrada por el usuario.

Si tiene un sitio simple no crítico con pocos usuarios, tal vez no lo necesite. Simplemente podría ejecutar una versión del sitio, instalar módulos y cambiar la configuración sobre la marcha. ¡Solo recuerde hacer copias de seguridad de la base de datos en caso de que algo salga mal y use GIT para la versión que controla el código! Una desventaja es que puede ser muy difícil saber qué cambios de configuración causaron los problemas en retrospectiva.

En general, se recomienda ya que permite mantener la responsabilidad de quién hizo qué cambio de configuración y cuándo, lo cual para mí, es razón suficiente para mantener la configuración en el código.

En Drupal 7, la forma preferida de hacerlo es utilizando las características, en muchos casos junto con módulos como Strongarm, Features UUID y algunos otros. Características UUID permite exportar contenido a código al asignarle un UUID en lugar de un nid que puede variar según el entorno. Características UUID ayuda en algunos casos donde es deseable rastrear entidades a través del código, pero generalmente no lo recomiendo, ya que también tiene sus inconvenientes.

Drupal 8 cambió el enfoque de gestión de la configuración desde el núcleo y todo se exporta a los archivos de configuración de YAML. Todavía usa la base de datos, pero trata más como un caché o un almacenamiento temporal para una nueva configuración que aún no se ha exportado a archivos. Existe una integración drush muy útil con la gestión de configuración de Drupal 8 y es fácil realizar un seguimiento de qué configuración se modificó a través de GIT. Todavía se pueden usar las características y algunos desarrolladores prefieren usarlo para sincronizar configuraciones, ya que permite encapsular configuraciones en módulos y proporciona una interfaz de usuario muy mejorada en comparación con lo que proporciona la gestión de configuración del núcleo. Personalmente, no me gusta usar Características en Drupal 8 para administrar la configuración, pero lo uso para lo que se creó inicialmente, que era construir componentes reutilizables encapsulados en módulos que cumplen un propósito (también conocido como características).