Dos de nuestros mejores developers Raúl Mateos y Marc Rodríguez estuvieron en la nueva edición de Meet Magento Croacia, el pasado 17 y 18 de marzo y han decidido contarnos en este genial post su experiencia y todo lo que les llamó la atención. Gracias chicos 🙂

WhatsApp Image 2017-04-04 at 12.55.31 PM

INTRODUCCIÓN GENERAL

Como cualquier viaje de estas característica, todo empezó como debería ser, levantándonos a las 5:00 y posteriormente pasando de manera satisfactoria la típica prueba de explosivos en el aeropuerto de Madrid.
Una vez nuestro vuelo aterrizó en Budapest nos dirigimos a recoger nuestro flamante coche de alquiler (seguro a todo riesgo incluido) para emprender el viaje a Osijek, pobres ignorantes no sabíamos lo que nos estaba por llegar.

WhatsApp Image 2017-04-04 at 1.05.15 PM (1)

Todo el trayecto fue perfecto, conversación amena, buen clima, buenas vistas… pero aún no habíamos dado el paso más importante de este viaje, el más complejo y complicado, cruzar la frontera.

Una vez llegamos al control de aduanas para cruzar a Croacia los oficiales nos atendieron muy amablemente, pero al ver nuestra indumentaria surgieron las dudas del motivo de nuestro viaje… nos solicitaron documentación acerca de nuestro interés en cruzar la frontera lo cual suscitó más desconcierto entre los oficiales ya que no disponíamos de toda la documentación solicitada y nos explicamos peor que un extranjero en Magaluf.

Finalmente después de media hora y algún que otro momento incómodo conseguimos cruzar a Croacia, llegar a nuestro hotel y tomarnos una (o dos) bien merecidas cervezas croatas.

Apertura del evento

La apertura del evento fue realizada por Aron Stanić, actual jefe de ventas de Inchoo, el cual nos detalló los pormenores del evento y las diferentes charlas, las cuales podríamos asistir. Después de la presentación del evento Ben Marks entró en escena para contarnos la historia y evolución de Magento a lo largo del tiempo y lo que podemos esperar en un futuro próximo.

WhatsApp Image 2017-04-04 at 12.55.32 PM

Magento 2 Architecture – Developer’s Guide

La primera charla técnica del evento fue impartida por Max Yekaterynenko, director encargado de gestionar todas la acciones con la comunidad de Magento.
Max nos comentó diferentes aspectos importantes de la estructura de Magento 2, entre los que destacamos:

  • La importancia de realizar el MVC de manera correcta con CQRS.
  • Se introducen las dependencias y los Facades, debido a que en la mayoría de los casos no se estaban utilizando ninguna de las funciones de la clase padre, lo cual impacta negativamente en el performance.
  • Se elimina la posibilidad de establecer sesiones en los blocks, solo permitiendo esto en los controllers.
  • La diferencia entre Classes y Namespaces.

WhatsApp Image 2017-04-04 at 1.05.15 PM
También recalcó la gran importancia que tiene actualmente la comunidad de Magento para el desarrollo de Magento 2.

Secure development workflow: Best practices and tools to improve the overall security of your Magento shops

La charla de Anna fue una de nuestras favoritas por la importancia que tiene actualmente realizar técnicas para mejorar la seguridad en Magento y por el carisma que tiene dando charlas, Interactiv4 es un gran fan de esta speaker.

A grandes rasgos su speech fue enfocado en enseñar las diferentes técnicas y herramientas disponibles para que los desarrolladores podamos poner a prueba, en cuanto a seguridad se refiere, nuestros desarrollos. A destacar por nuestra parte la siguiente herramientas:

GrumpPHP

https://github.com/phpro/grumphp
Esta herramienta lanzará un análisis de nuestro código y nos devolverá el resultado con una carita de un leñador muy carismático.

MageReport:

https://www.magereport.com/
Esta “herramienta online” realizará un análisis de tu sitio web y comprobará los parches de Magento que debes instalar.

State of Magento 2 Frontend

El gran Bartek Igielski, muy conocido en la Comunidad de Magento, nos explicó el actual estado del Frontend de Magento 2.
Bartek fue bastante incisivo en la importancia de la comunidad de Magento para la toma de decisiones y la resolución de incidencias de Magento 2. También nos mostró la posibilidad de crear temas mediante los Ui Components.

Como aporte final/idea loca nos comentó que él estaba empezando migrar el front de sus proyectos a desarrollos “ad hoc” fuera de Magento haciendo uso de su API y dejando a Magento como herramienta para gestionar la lógica de la tienda.

PHPSpec and Magento 2

Nils Preuß, el Lead Sofware Developer de Magento, nos proporcionó una charla acerca de la herramienta PHPSpec, basada en RSpec. Dicha herramienta a grandes rasgos nos proporciona la posibilidad de escribir código PHP de manera limpia y funcional.
Con el uso de PHPSpec podemos conseguir los siguientes aspectos:

  • Mejorar el diseño de aplicaciones.
  • Mejorar el Naming.
  • Code Connections.
  • Refactorizaciones de código.
  • Mejorar el QA.

Shell Scripts and Cron Jobs in Magento 2

Jelena Radovanović, programadora de Younify, nos proporcionó una serie de consejos a tener en cuenta en la utilización acerca de los crons en Magento 2.

También nos enseño a crear tus propias tareas cron a nivel de módulo mediante la utilización del fichero di.xml y cómo lanzar las tareas cron de forma manual mediante el composer de Magento 2. Insistió bastante en la importancia a no lanzar los cron como usuario root.
 
WhatsApp Image 2017-04-04 at 12.55.26 PM (1)

Messing up Dependency Injection

Jisse Reitsma de Yireo, nos dio una master class de cómo no se han de hacer las cosas para evitar tener problemas de dependencias. La verdad que la charla fue bastante divertida porque son cosas que, lamentablemente, más de alguna vez hemos hecho todos los desarrolladores.
Como pequeño resumen comentaremos lo siguiente:

  • No deberemos usar helpers, ya que aquí es donde acaba todo el código que no sabemos muy bien donde poner.
  • No usar _name para las funciones protected ya que eso ha sido deprecado en la últimas versiones de php.
  • Intentar mantener las dependencias entre clases al mínimo. Moviendo dependencias similares a una clase común.
  • Revisar la variable $context.
  • Revisar la lógica de nuestra clase padre para no duplicarla.
  • Realizar la dependencia a interfaces (ProductRespositoryInterface) y no a clases (Product).
  • No usar nunca Object Manager, excepto en Factories, shell scripts, interceptors, constructores y test unitarios.

How to properly override Magento 2 core functionality

Kristijan Smiljanić de Leftor, nos dio una charla sobre la importancia de no sobre escribir nunca el propio core y cómo hacer modificaciones de manera correcta haciendo especial interés en preference, plugin y observer.

  • Preference: rewrite de Magento 1.
  • Plugin: clase que modifica el comportamiento de las funciones de clases públicas. Se puede especificar si se realiza antes y/o después de dicha función.
  • Observer: clase que puede modificar el comportamiento o lógica cuando se dispara un evento concreto de Magento.

Afterparty

Todo parecía tranquilo en el ambiente, la gente se distribuía en pequeños grupos alrededor de las mesas y disfrutaba de su bebida, nadie podía imaginar que dos españoles estaban por llegar al local. 😉

Nosotros nos mimetizamos con el entorno, dos chicos tímidos en sus mesas, bebiendo unas simples «copichuelas» y poco a poco conociendo a compañeros del sector…hasta que llegó el momento, en el que todo español en el extranjero sabe que llegará, pero no pensábamos que fuese a suceder tan pronto, pero así fue.

WhatsApp Image 2017-04-04 at 12.55.27 PM

Dejamos atrás nuestra timidez, la gente nos miraba, sabíamos que teníamos que darlo todo, los móviles no paraban de grabar, teníamos que dejar el pabellón bien alto de nuestro país y nuestra empresa. Si, se lo que estáis pensando, estáis en lo cierto, Los del Río estaban sonando. Nuestras pelvis se movían al compás de la música, no teníamos que hacer nada, simplemente dejarnos llevar, escuchar a Antonio y Rafael y disfrutar del momento. Fue en este preciso momento cuando la gente se animó y la fiesta tomó el cariz que a todo buen español le suele gustar.

WhatsApp Image 2017-04-04 at 1.05.28 PM

The bumpy road of growing a team

El CEO y fundador de Inchoo dio una de las charlas mas divertidas del evento en la cuál nos explico las diferentes técnicas para mantener a un equipo motivado, los diferentes métodos como captar talento y su particular “Asshole Vortix” o como una decisión equivocada a la hora de contratar personal puede hacer que todo tu equipo acabe desmotivado por culpa de un imbécil.
 
WhatsApp Image 2017-04-04 at 12.55.26 PM
 

Revamping Magento 1.x RWD to achieve better front-end performance

Esta charla se centró en mostrar el impacto real que tiene en la navegación, la experiencia de usuario y finalmente en las ventas la aplicación de prácticas/mejoras de performance.

Dynamic scanning with OWASP ZAP and Magento 2

El genuino Talesh Seeparsan nos proporcionó un taller en vivo y en directo cómo puede afectarnos los ataques de inyección en nuestros Magentos si los desarrolladores no hemos hecho bien los deberes. Para nosotros fue la charla más compleja de todas debido a su importancia y también por no mostrar simplemente unas diapositivas.
Para la demostración utilizó la herramienta OWASP ZAP con la cual puedes programar determinados ataques sobre tu ecommerce en un entorno de desarrollo a modo de test para revisar la integridad de tu desarrollo.

WhatsApp Image 2017-04-04 at 1.05.14 PM

Fin del evento

Después de dos días de charlas, un afterparty muy intenso entre medias, el congreso tocaba a su fin.
El cierre del evento corrió de la mano de Aron Stanic, Ben Marks, Max Yekaterynenko y Jisse Reitsma.
Aron nos agradeció la asistencia al evento, nos invitó a visitar las oficinas de Inchoo y a recorrer su ciudad mediante una visita guiada.

Ben Marks, Max Yekaterynenko y Jisse Reitsma nos comentaron los siguientes pasos de Magento y abrieron a debate las diferentes decisiones tomadas en los últimos meses. A grandes rasgos el evento fue muy interesante.
Aprovechamos este post para enviar nuestro agradecimiento a Inchoo por el evento y por el cariño con el cual nos trataron desde el primer minuto y sobre todo a nuestra empresa, por confiar en nosotros y por darnos la posibilidad de vivir esta experiencia.

 
Captura de pantalla 2017-04-04 a las 15.50.13 Post escrito por Marc Rodriguez y Raúl Beltrán, Developers at Interactiv4