Fuimos dos afortunados los elegidos de Interactiv4 para asistir al Meet Magento Italy 2017 en Milán. Una desarrolladora frontend y un desarrollador backend, con experiencia mayoritaria en Magento 2.
En resumen rápido (el meollo para programadores lo dejo para los siguientes párrafos), fue un evento muy interesante por la gran cantidad de charlas y conferencias condensadas en dos días. El esfuerzo de juntar a tantos expertos en Magento ha tenido que ser colosal.

IMG-20170309-WA0022

El único pero es que las sillas  estaban tan juntas que hacía imposible sacar el portátil para trabajar o tomar notas o ver el código. Las batallas campales a la hora de la comida o los cafés le quitaba el gusto al cátering que ofrecían. Y el momento de pánico al decirnos que no disponían de WiFi para el evento ? fue importante también. Afortunadamente una de las chicas de la organización nos consiguió la clave de la wifi del hotel. ?
Como no podía ser de otra forma nos interesamos sobre todo por las conferencias y charlas técnicas. Como el programa lo podréis ver en la página oficial, sólo mencionaré algunas de las más interesantes o que no aparecen en el programa de la web. Ojo, pasamos a hablar en idioma hostil para no desarrolladores.
 

  • Magento Architecture – Next Steps (Max Yekaterynenko – Magento Commerce)
    Entre otros consejos, Max insistió mucho en que usemos de forma correcta el patrón CQRS (Command Query Responsibilty Segregation). Nos aconseja tan sutilmente como que el uso incorrecto de carga y guardado de modelos sin usar repositorios pronto dejará de ser funcional en el núcleo de Magento.

  • Challenges of Architecting Magento 2.0 Customizations (Ivan Chepurnyi – EcomDev BV)
    La charla más interesante de todo el Meet Magento, y la más amena. Nos dio una serie de consejos para el correcto desarrollo con Magento 2. A modo de ejemplo, extender el núcleo con decoradores de las mismas interfaces del núcleo, que establezcamos la inyección de dependencias a base de interfaces en lugar de clases, que abusemos en lo posible de nuestras propias clases abstractas… Muy interesante.

Unknown
  • Magento security and hardening strategies (Andrea Zwirner – Linkspirit)
    Andrea nos dio una serie de consejos en la securización de magento. Él hizo una serie de análisis de seguridad y le pareció que Magento ya está bastante securizado de base, así que sobre todo insistió en que ocultemos de la mejor manera posible el número de versión que estemos usando en cada momento ya que es la información más importante para un potencial atacante; por ejemplo, ojo con el hasheado de css y js, que no se vea públicamente la versión.

  • Magento2 Performance bottlenecks: How to avoid it (Igor Bondarenko – Nekio)
    Entre muchos consejos que eran de sentido común como que generemos el código (como se hace en el modo producción ya de por sí) y desinstalemos las extensiones que no usemos, Igor sugirió que agendáramos de forma gradual la limpieza de cachés en lugar de dejarla funcionar por eventos. También nos aconsejó procesar las imágenes con imagick en lugar de gd2.

IMG-20170309-WA0015
  • The right tools for the right job (Riccardo Tempesta – Magespecialist)
    Riccardo nos enseñó cómo intentan optimizar el tiempo de desarrollo usando herramientas, muchas ya conocidas por todos como phpstorm y vagrant o docker, y un módulo desarrollado por su empresa para facilitar el debug de magento 1 y 2.

  • Magento2 e Require.js. The right way. (Irene Iaccio – Bitbull)
    Irene desde su timidez nos explicó cómo trabajar en Magento 2 a nivel de front con requirejs. Los que ya nos hemos tenido que pelear con ello agradecimos algunas puntualizaciones, como que usemos el índice “mixins” (introducida por magento, no por require.js) en los ficheros requirejs-config.js para sobreescribir módulos concretos del núcleo de magento. A pesar de su nerviosismo Irene consiguió que la charla resultase amena e interesante.

  • Magento 2.0 cluster with split database performance solution (Marco Zani – neen S.r.l.)
    Esta posibilidad de Magento 2 enterprise de separar en distintas bases de datos las áreas de Magento ha sido analizada por Marco y nos mostró las estadísticas que comprobó. En conclusión, el rendimiento es muy similar a la base de datos única, pero es mucho más estable y más resistente a la concurrencia masiva de usuarios.

  • Improving enterprise store scalability using AMQP and Asynchronous Operations (Eugene Shakhsuvarov – Magento Commerce)
    Eugene nos aconsejó que usemos los sistemas de queue y de messaging de Magento para mejorar el rendimiento en procesos largos.

IMG-20170309-WA0007
  • Can Magento handle 1M products? (Giuliana Benedetti – Webformat)
    Giuliana nos estuvo contando las luchas y dolores de cabeza que tuvieron con un proyecto que tenía un catálogo gigante. Como era de sentido común, los mayores procesos de indexado y limpieza de caché los programan en las madrugadas para que no se viera afectado el rendimiento (ya que un re-indexado de urls de este tamaño tarda varias horas en los mejores servidores). Como ella misma confesó, esto es posible en una tienda que sólo sirva en un huso horario. Nota importante: Este proyecto es en Magento 1. En Magento 2 sólo han hecho unas pocas pruebas y aunque creen que serían capaces de manejarlo, lo dijo con la boca un poco pequeña.

  • Integration tests in Magento 2 (Vitaliy Golomoziy – Magento Commerce)
    Vitaliy quizá decepcionó un poco ya que no mostró casos prácticos de unit-testing o consejos de cómo trabajar en TDD. Se dedicó a convencernos de la utilidad de trabajar de esta forma. Lamentablemente en mi caso concreto estaba predicando a un converso, y ya iba plenamente convencido de ello.

  • Best practices for checkout customization in Magento 2 (Max Pronko – The Irish Store)
    Quizá la mayor decepción de todas las charlas. Tuvimos que abandonarla nada más comenzar ya que teníamos que ir corriendo al aeropuerto. Para luego tener un retraso de una hora el vuelo, claro.