Home » framework » WordPress como un framework para el desarrollo de aplicaciónes web

En la práctica, la decisión de elegir y utilizar un framework depende de complejidad de la aplicación que se quiere desarrollar. Todos los frameworks, incluído WordPress, tiene sus limitaciones en el desarrollo de aplicaciones web. Los desarrolladores deben entender estas limitaciones antes de utilizar uno u otro como base para el desarrollo de aplicaciones.

Los desarrolladores tenderán a utilizar un framework en la mayoría de los escenarios, ya que supone ciertas ventajas para el desarrollo de aplicaciones web:

• Los frameworks proporcionan una base estable para crear funcionalidades personalizadas.

• Por lo general, los frameworks estables tienen una gran comunidad de desarrolladores detrás que proporciona soporte activamente.

• Disponen de funciones integradas para abordar los aspectos comunes del desarrollo de la aplicación, como enrutamiento, soporte multi-dioma, validación de formularios, gestión de usuarios y más.

• Tienen una gran cantidad de utilidades para hacer frente a tareas repetitivas.

Frameworks maduros de propósito general como Zend, CodeIgniter y CakePHP comparten los puntos anteriores, y son el framework de elección para muchos desarrolladores. Por otro lado, WordPress es una aplicación en sí misma, sobre la que es posible construir aplicaciones más complejas, utilizando sus características y arquitectura. También hay que tener en cuenta que, a menudo, los frameworks tradicionales son la base usada para construir aplicaciones como WordPress. Con estas ideas en mente, echemos un vistazo a cómo WordPress encaja como framework para el desarrollo de aplicaciones web.

La arquitectura MVC versus la arquitectura basada en eventos

Una gran mayoría de los frameworks para desarrollo web están diseñados para trabajar con arquitectura MVC, donde una aplicación se separa en capas independientes llamadas modelos, vistas y controladores. En MVC, tenemos una comprensión clara de dónde va cada cosa, y cuando cada una de las capas se integrará en el proceso de la aplicación. Así que lo primero que la mayoría de los desarrolladores buscarán es el modelo MVC en WordPress. Desafortunadamente, WordPress no se construye sobre la arquitectura MVC.

Esta es una de las principales razones por las que los desarrolladores se niegan a elegir WordPress como un framework de desarrollo. Pero aunque no es MVC, podemos crear un proceso de ejecución personalizado para hacer que funcione como una aplicación MVC. Además, podemos encontrar frameworks como WP MVC, que puede usarse para aprovechar la funcionalidad nativa de WordPress, junto con una biblioteca extensa de plugins y todas las muchas ventajas de un framework MVC.

A diferencia de otros frameworks, no tendrá todas las capacidades de MVC. Sin embargo, la falta de disponibilidad de la arquitectura MVC no significa que no podamos desarrollar aplicaciones de alta calidad con WordPress. Hay otras maneras de separar las capas MVC en aplicaciones de WordPress.

WordPress por otro lado, se basa en una arquitectura basada en eventos y procedimientos, con su sistema de ganchos (hooks) y filtros (filters). Una vez que un usuario hace una solicitud, estas acciones se ejecutan en un cierto orden para proporcionar la respuesta al usuario. Puede encontrar el procedimiento de ejecución completo en:

En la arquitectura basada en eventos, tanto el código del modelo como el del controlador están dispersos a través de los ficheros del tema y de los ficheros de los plugins. Sin embargo, con un diseño cuidadoso, aún es posible separar estas capas en el contexto de una arquitectura basada en eventos, y desarrollar aplicaciones que puedan ser mantenidas con un esfuerzo razonable.
Web App

WordPress: Comprender las limitaciones y seguir las pautas

Como con todos los frameworks, WordPress tiene sus limitaciones en el desarrollo de aplicaciones web. Los desarrolladores deben entender estas limitaciones antes de utilizar WordPress como base para el desarrollo de aplicaciones. Aquí trataremos las limitaciones, y daremos algunas pautas sencillas para decidir si WordPress es el framework para el desarrollo web.

• Falta de soporte para MVC: Hemos hablamos de la arquitectura de WordPress y su apoyo a MVC más arriba. Como desarrollador, usted necesita encontrar maneras de trabajar con WordPress para adaptarse a las necesidades de desarrollo de su aplicación web y a su estilo propio como programador. Si es alguien que no puede trabajar sin MVC, WordPress puede no ser la mejor solución para su aplicación.

• La base de datos es MySql: Si tiene experiencia en desarrollo web, tendrá sin duda una idea bastante buena sobre la importancia de elegir la base de datos considerando la posibilidad de migrar a otra en etapas posteriores. Esta puede ser una limitación en WordPress, ya que está construido para trabajar con la base de datos MySql. Usarlo con otra base de datos será bastante difícil, si no imposible. Así que, si necesita migrar a otra base de datos diferente, WordPress no será la mejor solución.

• Rendimiento: El rendimiento de su aplicación es algo que experimentará de primera mano en etapas posteriores del proyecto, cuando pasa a un entorno real de producción. Es importante planificar con anticipación las medidas de rendimiento, ya que pueden verse afectadas por causas internas y externas. WordPress tiene una estructura base de datos incorporada, y la usaremos tal cual en la mayoría de los proyectos. Está diseñada para adaptarse a la funcionalidad requerida por un CMS, y utilizar las mismas tablas para diferentes tipos de proyectos no proporcionará la estructura de tablas más optimizada. Por lo tanto, el rendimiento podría ser una limitación para aplicaciones críticas que interactúan con millones de registros cada día, a menos que optimice la indexación, el almacenamiento en caché, e implemente otras estrategias de optimización de la base de datos.

• Arquitectura: WordPress se ejecuta en una arquitectura basada en eventos que disparan ciertas características o funciones. A menudo, los desarrolladores usan mal los ganchos, sin una planificación adecuada, lo que afecta al rendimiento de la aplicación. Por lo tanto, usted tiene que ser responsable de planificar la base de datos y de los ganchos necesarios para evitar consumos innecesarios de recursos.

• Actualizaciones periódicas: WordPress tiene una comunidad muy activa en el desarrollo de nuevas características y la resolución de problemas en las características existentes. Una vez que se publica una nueva versión de núcleo de WordPress, los desarrolladores de plugins también deberán actualizar sus plugins para que sean compatibles con la última versión. Por lo tanto, será necesario también realizar tareas adicionales para actualizar el núcleo, los temas y los plugins de la aplicación basada en WordPress, lo que puede ser una limitación cuando no tiene un equipo dedicado específicamente a mantenimiento.

• Desarrollo Procedural y Orientado a Objetos: Los desarrolladores web experimentados siempre buscan frameworks orientados a objetos. WordPress comenzó su codificación con la arquitectura orientada a procedimientos, y ahora se mueve rápidamente hacia una arquitectura orientada a objetos. Por lo tanto, hoy hay una mezcla de procedimientos y de objetos en el código. WordPress utiliza su arquitectura basada en ganchos para proporcionar funcionalidad, tanto para el código orientado a procedimentales, como para el código orientados a objetos. Desarrolladores que están familiarizados con otros frameworks de PHP pueden tener dificultades para llegar a manejar esta combinación de código procedimental y orientado a objetos, así como basada en ganchos. Por lo tanto, usted tiene que decidir si está cómodo con estos estilos de codificación mezclados.

Si usted es un desarrollador o diseñador y piensa que estas limitaciones pueden tener repercusiones negativas para sus proyectos, WordPress puede no ser la solución correcta para usted.

WordPress application development

Deja un comentario

Si te gustó este Artículo, lo mejor que puedes hacer por el Blog es compartirlo en tu Red Social y darle un "Me Gusta".

Tu dirección de correo electrónico no será publicada.

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>