Blog
Comprender la arquitectura de Magento 2
- diciembre 14, 2023
- Publicado por: admin
- Categoría: Magento 2
Magento es una plataforma muy completa especialmente creada para el comercio electrónico, su nivel de personalización es muy alto que podría utilizarse para crear cualquier sitio web, lo más recomendable es aplicarlo solo a tiendas en línea ya que podría aprovechar el mayor potencial de esta tecnología.
Entre muchas de sus genialidades contiene una completa administración y control de inventario de productos, el carrito de compras que utiliza para agregar eliminar actualizar y muchas otras funciones son verdaderamente una completa experiencia de usuario para los clientes, contando con numerosos métodos de Pago ya por defecto, así como también métodos de envió con los principales proveedores de entrega, administra reglas sofisticadas para promociones y si fuera poco también contiene un completo administrador de contenidos, este último punto cabe mencionar que existen muchos otras tecnologías más especializadas peros si de compartir información o paginas creativas Magento no se queda atrás se podría conseguir cualquier look and feel.
Podría pasarme horas explicando las características de Magento pero solo por mencionar algunas otras tenemos el manejo de múltiples monedas, multi idioma, múltiples sitios web y aquí me refiero con múltiples lo he colocado apropósito para explicar que cuando hablamos de múltiple solo Magento puede ser Múltiple de forma nativa, esto quiere decir que podría manejar en un mismo sitio web distintas monedas para vender en distintos países con su moneda nativa, cuando hablo de múltiple pensemos en una tienda que vende en un tipo de moneda, pero que pasa si el cliente no conoce el lenguaje de que serviría vender en otro tipo de moneda si no pudiera mostrar el contenido en su propio lenguaje, pues con Magento esto es posible que al cambiar de moneda cambie de lenguaje, pero no toda la Magia termina aquí al final podría mostrar una Home total mente personalizada para un una moneda en particular y un lenguaje definido para esa región, con esto podría utilizar la sección de múltiples sitios web, así podría personalizar los gustos enfocados para cada país.
La pila de Tecnologías de Magento 2
Que debe conocer para convertirse en un administrador, desarrollador o maquetador de Magento 2, es importante conocer como está hecho Magento y que contiene por dentro, cuanto más conozca alguna de sus tecnologías más podría convertirse en un experto de la plataforma.
Estas no son todas las tecnologías que forma la gama completa que dan vida a esta plataforma, pero si son las más importantes:
PHP: es la principal ya que está construida en este lenguaje de programación, es importante conocer este leguaje de script del lado servidor a un nivel orientado a objetos, entre más conoces esta herramienta puedes moverte fácilmente entre las definiciones nativas de programación en Magento.
Coding Standards: Este concepto para la mayoría de programadores parece no ser tan relevante, pero yo te diré que esto lo agradecerás mucho en el futuro y te lo agradecerán muchos tus colegas programadores, siempre se pasa por alto más que todo por el desconocimiento que tiene que ver con este concepto, esto habla de los estándares de codificación, si me conoces sabrás que no me gusta hablar tan teóricamente, sin no más bien en mis propias palabras te comentare, son las formas recomendables de hacer programación síguelas y te darás cuenta que entre más aplique más fácil te será encontrara un patrón bien definido de hacer tu código, solo grábate las nomenclaturas PSR-0, PSR-2 etc… por ejemplo PSR-0 define que debe existir una definición de auto cargado de clase es el punto de partida de un sistema de programación completo, en el caso de Magento hablamos de autoload, algunos definen como deben estar construidas las clases, los métodos en que nomenclaturas deberían estar, la definición de variables e incluso como deberían estar construidos los comentarios, esto al final se vuelve un estándar personal, intenta aplicarlo siempre y al final te darás cuenta de lo que te hablo.
Composer: esta tecnologías que se encarga de gestionar las dependencias podría parecer no tan importante porque puedes aplicarlo o no en tus módulos personalizados, normalmente tenemos la mala costumbre de desarrollar y todo dejarlo para el final, al final de cuenta si el programa hace lo que se pide ya está de más, pero no es así piénsalo de esta forma si desde un principio llevas un orden y defines que dependencias o paquetes forman parte de tu componente, para el futuro no te deberás preocupar por estas definiciones ya que esto lo realizara por ti, si posterior deseas reutilizar el componente o llevarlo a otros proyecto ya lo tienes solucionado y no pensaras en que otros componentes implican el buen funcionamiento del tuyo, ya que aquí se definirá todo eso.
Solo como una nota final imagina cuando quieres instalar Magento 2 en tu maquina local, solo basta con ejecutar un simple comando de composer y esto al final se encargara de conectarse con todos los paquetes sin importar las actualizaciones solo instalara las dependencias necesarias y al final tendrás una instalación limpia completa y funcional y eso es gracias a composer.
HTML: cambe mencionar que HTML5 ya se ha convertido en un estándar de creación de cualquier sitio web que se crea hoy en día, la semántica mejorada y estructura de sus contenidos y elementos son indispensables para lograr sitios web responsivos y adaptables a distintos dispositivos digitales.
CSS: Magento admite CSS3 una de las mejoras para hojas de estilo en cascada pero no solo eso Magento contiene un motor integrado para pre procesar semántica LESS, una mejora que no podría faltar en una plataforma altamente sofisticada, ahora será más sencillo estructura los estilo de un proyecto por separado a nivel de un Tema ya sea nativo o personalizado manteniendo un orden en las estructura de estilos.
Jquery: Este framework de JavaScript de tipo multiplataforma que ha servido para simplificar la manipulación del DOM para mejor en rendimiento de desarrollo aprovechando minimizar código para conseguir funcionalidad verdaderamente potente, ahora en la versión de Magento 2 ya se aplica de forma nativa y no se requiere más de poder utilizarlo en los desarrollos personalizados.
RequireJS: mediante esta tecnología que facilita la carga de archivos a nivel de componentes y módulos simplifica mucho el trabajo que podría llegar a aplicarse de forma personalizada, lo que anteriormente no se lograba al cargar una página web, la finalidad es ayudar a mejorar la velocidad y calidad del código.
Third-party Libraries: Magento contiene un conjunto de librerías de tercero y las más notables son ZendFramework y Symfony, aprovecho para comentar algo de lo que me fui dando cuenta que en Magento 1 se utilizaba por completo ZendFramework 1, pensaría que en Magento 2 solo se utilizaría ZendFramework 2 pero no es así se utilizan ambas versiones tanto 1 como 2, se ha reutilizado lo mejor de la versión 1 y aplicando por completo la versión 2, de Symfony no se día se ha incluido también en esta mejorada versión.
Apache y Nginx: se coloca en la pila de tecnologías ya que Magento 2 puede funcionar con cualquiera de estos dos sistemas operativos en realidad podría utilizar con cualquier sistema operativo que acepte PHP y MySQL ya que la tecnología va más por el lado del servidor, entender que cada uno tiene sus ventajas y desventajas optimizar la tecnología y conocer más su forma de configuración ayudara al rendimiento de mantener una plataforma en las mejores condiciones.
MySQL: este sistema gestor de base de datos para tablas relacionales se encuentra en una etapa suficientemente madura que utiliza el lenguaje de consulta estructurado (SQL), cuando muchos escuchan hablar de esta tecnología se dice que es open source pero es bien saber que existen las dos modalidades tanto de Pago como la Gratuita, ya que comercialmente se pretende dar un mayor soporte y rendimiento al paquete final, para Magento solo simplemente saber que se requiere la versión 5.6 MySQL Community Edition como lo recomienda la página oficial.
MTF: Magento Testing Framework (MTF) hay muchos desarrolladores que no utilizan esta funcionalidad de muchas herramientas que la traen incorporada para el caso de Magento es muy interesante ya que permite generar varia pruebas de rendimiento, funcionalidad y pruebas unitarias, el desconocimiento de este componente hace que muchos desarrolladores eviten utilizarla pero solo tomen en cuenta esto dediquen un par de horas a entender su funcionamiento o como aplicarla en sus desarrollos por que a futuro les evitara muchos horas más de trabajo en componentes que podrían probar antes de llevar a producción.