Comment gagner en efficacité avec Magento 2. Entretien avec Max Pronko

Publié: 2017-01-17

max-ava

Max Pronko est l'un de ces gourous de Magento qu'un débutant doit suivre. Il est un expert Magento et un orateur public, un développeur certifié Magento et un blogueur Magento 2 populaire.

Avec 10 ans d'expérience dans le développement de logiciels et le conseil chez Magento, Max a conçu et mis en œuvre avec succès des produits de haute qualité de moyenne à grande échelle.

Suivez Max sur Twitter.

Récemment, Max s'est rendu à Meet Magento Hungary et a présenté des cas d'utilisation réels d'optimisation des performances dans le discours d'ouverture de Magento 2. À cet égard, nous aimerions commencer notre entrevue avec quelques questions directement liées à cette présentation.

Cas d'utilisation réels de l'optimisation des performances dans magento 2 de Max Pronko

Partie 1 : Défis courants des extensions Magento

Presque tous les marchands Magento 2 utilisent des extensions tierces qui améliorent considérablement la fonctionnalité des plates-formes par défaut d'une part, mais d'autre part, influencent négativement le flux de travail des performances.

Natalie : Dans l'ensemble, comment pouvez-vous évaluer la qualité du code des extensions tierces et la façon dont elles peuvent influencer les charges du serveur ?

Max : Merci pour l'opportunité de parler de Magento 2, Natalie. Je suis votre blog depuis plus d'un an et à chaque fois que je le visite, j'y trouve des articles intéressants. Merci pour ça.

Comme vous le savez peut-être, j'aime réviser le code pour plusieurs raisons :

  • Tout d'abord, j'acquiers de l'expérience et j'observe des techniques intéressantes sur la façon de convertir les exigences de l'entreprise en fonctionnalités entièrement fonctionnelles et de haute qualité. Surtout quand il s'agit de Magento 2.
  • Deuxièmement, cela m'aide à comprendre à quel point le partage des connaissances est bon dans l'écosystème Magento.

95 % des extensions tierces nécessitent une révision approfondie du code et des conseils pour l'améliorer.

Je fais l'examen du code des extensions tierces depuis environ 2 ans pour l'instant. Malheureusement, je ne peux pas dire que je suis satisfait des résultats que j'ai obtenus : 95 % des extensions tierces nécessitent une révision approfondie du code et des conseils pour l'améliorer. Permettez-moi d'être super silencieux sur les normes de codage.

Je rencontre des problèmes de performances de toutes les pages du site Web, même si une extension crée et ne couvre qu'une sélection de pages avec certaines fonctionnalités spécifiques. Par exemple, inclure un bloc non cachable dans le fichier de configuration de mise en page par défaut. Magento désactive automatiquement le cache de page pour toutes les pages.

Un autre exemple consiste à utiliser des opérations backend chronophages sans stocker les résultats de l'exécution dans une variable de classe. Cela peut réduire considérablement le chargement de la première page.

J'ai eu l'occasion d'examiner environ 60 extensions, y compris des extensions payantes et gratuites, donc ma note est basée sur ce nombre. Bien sûr, il y a les extensions que je peux recommander d'utiliser.

Natalie : Quels sont les problèmes d'optimisation de code les plus fréquents selon vous ?

Je n'ai jamais vu l'utilisation de classes proxy dans des extensions tierces. Cependant, cela peut réduire le temps d'initialisation récursive de l'objet.

Max : Habituellement, les extensions sont créées en une seule étape sans optimisation des performances, ce que je peux appeler « Implémenter et livrer ». Un deuxième tour arrive rarement et le code n'est pas optimisé. Par exemple, je n'ai jamais vu l'utilisation de classes Proxy dans des extensions tierces . Cependant, cela peut réduire le temps d'initialisation récursive de l'objet.

Natalie : Quels conseils d'optimisation pouvez-vous donner à ces développeurs novices qui écrivent leurs premières extensions pour Magento 2 ?

Max : C'est une excellente idée de tester vos extensions avec Magento 2 en dehors de l'environnement local, de préférence quelque part dans le cloud. De nos jours, il n'est pas cher d' avoir un serveur virtuel de DigitalOcean ou d'AWS pour 5 à 10 $ et d'exécuter un test utilisateur de base de bout en bout . Au moins, il peut montrer de très bonnes différences de performances par rapport aux versions Magento 2.x prêtes à l'emploi.

Partie 2 : Optimisation des performances M2

Natalie : Que pouvez-vous dire des particularités du cache de blocs (qu'est-ce qu'il est préférable d'utiliser/d'éviter dans les clés de cache) ?

Max : Magento 2 Community Edition est livré avec la prise en charge du serveur proxy Varnish. C'est idéal pour tous les commerçants qui ne s'inquiètent pas des nouveaux visiteurs lorsque le cache n'est pas prêt. Le cache de blocs entre en jeu pour les pages qui ne sont pas stockées dans Varnish. Vous ne pouvez vous attendre à aucun vernis sur des pages telles que Compte client, Recherche de catalogue, Panier.

Une clé de cache appropriée par bloc est très importante pour créer des entrées de cache appropriées et augmenter les accès au cache dans un stockage principal tel que Redis. Idéalement, toutes les entités impliquées dans le rendu frontal doivent implémenter l'interface Magento\Framework\DataObject\IdentityInterface fournie avec la méthode getIdentities() . Cette méthode est très utile si vous devez compiler les clés de cache appropriées pour le cache de blocs.

Natalie : Quelque chose à propos de l'optimisation des requêtes SQL ?

Max : Pour l'optimisation SQL, j'essaie généralement de répertorier toutes les variations de données possibles sélectionnées dans une table. Idéalement, toutes les requêtes devraient atteindre les index MySQL pour de meilleures performances. Je sais que c'est un cas idéal, cependant, cela peut vraiment aider à accélérer les requêtes sur un grand nombre d'enregistrements dans une table. Bien sûr, l'optimisation des requêtes SQL est un vaste sujet, je peux donc en parler pendant des heures.

Partie 3 : Recherche Magento 2

Magento 2 peut se vanter d'avoir une meilleure recherche prête à l'emploi que M1, mais les requêtes composées, les fautes de frappe, la correction automatique et les synonymes ne sont toujours pas pris en charge. De plus, la recherche M2 n'analyse pas les catégories et les pages CMS.

2017-01-17_15-26-38

Natalie : Quels sont les meilleurs moyens d'améliorer la recherche dans l'édition CE : extensions ou moteurs de recherche externes ?

Max : J'envisage d'utiliser Elasticsearch pour Magento 2 Community Edition. Bien sûr, cela nécessite un développement, que ce soit en interne ou à l'aide d'extensions tierces. Pour l'un des projets Magento 2, nous avons utilisé une recherche intégrée avec une configuration supplémentaire comme des synonymes et des redirections vers une page de destination pour les requêtes de recherche courantes. Cependant, c'est une solution à court terme, j'irais avec un service externe.

Natalie : En parlant de moteurs de recherche externes, lequel est le meilleur pour les sites Web de petites/moyennes/grandes données : Solr, Sphinx ou Elasticsearch (ou un autre) ?

Max : Pour les petits sites Web, je considérerais la recherche par défaut de Magento 2. Pour les autres, il s'agit davantage de la qualité de l'extension et de la documentation au cas où vous souhaiteriez créer votre propre solution. Elasticsearch est mon option préférée.

Natalie : Pouvez-vous recommander des extensions de recherche susceptibles d'améliorer la fonctionnalité par défaut ?

Max : J'ai de l'expérience dans l'examen du module de saisie semi-automatique pour Magento 2 créé par MageWorx. Il améliore considérablement l'expérience utilisateur par rapport à la fonctionnalité de suggestion automatique par défaut de Magento 2 Community Edition. Le module MageWorx AutoComplete générera plus de conversions et de ventes pour un marchand. En ce qui concerne l'implémentation du code, mon score est de 4,5 sur 5. Quelques améliorations mineures pourraient être apportées pour améliorer l'expérience globale des développeurs. L'un des avantages du module de saisie semi-automatique est le fait qu'il est téléchargeable gratuitement. J'envisagerai d'utiliser et de recommander ce module pour les marchands Magento 2.

En dehors de cela, je continuerai à examiner les modules liés à la recherche pour Magento 2 et à donner mon avis sur la qualité du code.

Partie 4 : Défis Magento 2

Natalie : Vous êtes un développeur Magento aguerri, après des années de travail avec Magento, quels sont les problèmes les plus difficiles que la deuxième version de la plate-forme apporte ?

Par exemple, comme je le sais, même de légères modifications de code dans M2 entraînent un certain nombre d'actions (comme bin/magento setup:upgrade, bin/magento setup:static-content:deploy, bin/magento setup:di:compile, etc. )

Max : Je pense que dans la majorité des cas, lorsqu'un développeur est assis devant PHPStorm et écrit un code, il n'a pas le temps de vraiment creuser dans l'architecture de Magento 2. Par exemple, je connais quelques bons développeurs qui se plaignent des composants de l'interface utilisateur et du manque d'exemples réels sur leur utilisation. Les nouveaux DevDocs de Magento donnent un bon aperçu des composants de l'interface utilisateur.

Les développeurs ayant une bonne expérience de Magento 1 trouvent Magento 2 complexe et parfois difficile. Les nouvelles technologies offrent toujours de nouvelles opportunités d'apprendre quelque chose de nouveau.

Il y a même une photo à ce sujet.

Natalie : Et enfin, Magento 2 est sorti en novembre 2015. Pensez-vous qu'il est tout à fait prêt pour que les marchands du monde entier commencent à migrer ?

Max : Absolument OUI. Magento 2, en tant que logiciel, présente plus d'avantages qu'un certain nombre de problèmes ouverts sur GitHub. Il peut évidemment apporter plus de revenus par rapport à Magento 1 en cas de stratégie de migration et de marketing bien planifiée. Je me souviens avoir dit "oui" à l'un de nos projets Magento 2 en août 2015 alors qu'il n'était qu'une version bêta. Maintenant, nous sommes plus qu'heureux d'utiliser et de créer des sites Web de commerce électronique basés sur Magento 2.

Mon équipe chez Pronko Consulting sera heureuse de donner vie à une nouvelle vision et de lancer un nouveau site Web Magento 2.

*****
Nous tenons à remercier Max pour cette entrevue et lui souhaitons, ainsi qu'à son équipe, une année productive et réussie.