Obviamente, no existe una única solución que satisfaga las necesidades de todos; una arquitectura siempre es una compensación. Quiero crear un marco, originalmente dirigido a RAD de juegos web. El idioma de destino es PHP, aunque la arquitectura debe ser ampliamente aplicable.La arquitectura de marco más flexible para el desarrollo web?
Las metas que tengo en mente para este marco son: flexibilidad en la forma de lograr el resultado; máxima comodidad para los desarrolladores; módulos de conexión como bloques LEGO ®; muchos tipos de entrada, muchos tipos de salida, un formato para el procesamiento.
Las metas que no son una prioridad son la velocidad, el uso empresarial y la obtención de dinero. Se supone que es un proyecto de código abierto.
La piedra angular de este diseño es que todo el contenido, antes de la transformación, se procesa en XML (idea basada en el sistema EAI con el que he trabajado, eGate). La capa de abstracción de datos (espero que algún ORM inteligente) no sea importante ahora. La salida se generará utilizando XSLT o cualquier otro módulo personalizado, para prácticamente cualquier cliente: HTML para navegadores antiguos, XHTML/HTML5 para navegadores modernos, HTML simple para clientes móviles, XML para AJAX/XMLRPC, etc.
Principales motivos para el uso de XML son:
- es un conocido
- herramientas estándar existentes, como XPath, SimpleXML y DOM para navegar y modificar el contenido
- XSLT que proporciona una forma poderosa y unificada para transformar el código en cualquier etiqueta sopa
- Encuentro el marcado XML muy fácilmente legible, por lo tanto, no creo que las ventajas de JSON o YAML marquen la diferencia aquí
- El contenido se puede apilar fácilmente, y el orden del contenido en realidad no importa siempre que se haya transformado correctamente con XSLT
El proceso de generación de la página consistiría en estas fases:
- Pre-procesamiento: módulos de inicialización, el procesamiento de datos de GPC, la aplicación de [XML] plantillas predeterminadas
- de procesamiento/generación: parte principal de la lógica de negocio, generando el XML inflado con datos máximos (aunque afortunadamente optimizado) no generar balast)
- Procesamiento: alguna lógica comercial adicional, p. reduciendo parte del marcado, preparándose para la transformación, informes, estadísticas, etc.
- Post-procesamiento: análisis XML a través del motor de transformación (probablemente solo XSLT), salida.
El contenido se generaría con una gran cantidad de meta-datos (por ejemplo, las etiquetas, los permisos, la importancia, la necesidad, el tipo de salida dirigida), que se desnudó durante el post-procesamiento.
Entonces, mi pregunta es: a excepción de la velocidad, ¿cuál es la caída de esta solución? ¿Dónde podría salir mal durante el desarrollo/mantenimiento del marco y sus aplicaciones? ¿Cuáles son los inconvenientes de esta arquitectura?
Mi experiencia con XSLT no ha mostrado ninguno de estos inconvenientes. – dacracot
Plantea un punto válido sobre la cantidad de gente que domina XSLT; Existe cierta dicotomía en el acoplamiento de PHP con XSLT, pero parece ser el único lenguaje formal para transformar XML. Probablemente quiera ofrecer una alternativa a XSLT. Gracias. – analytik