كيفية الحصول على أقصى قدر من الكفاءة مع Magento 2. مقابلة مع Max Pronko

نشرت: 2017-01-17

ماكس افا

ماكس برونكو هو أحد معلمي الماجنتو الذين يجب على المبتدئ اتباعهم. وهو خبير في Magento ومتحدث عام ، ومطور Magento معتمد ومدون Magento 2 مشهور.

مع 10 سنوات من الخبرة في تطوير البرمجيات والاستشارات في Magento ، نجح Max في تصميم وتنفيذ منتجات عالية الجودة من الحجم المتوسط ​​إلى الحجم الكبير.

تابع ماكس على تويتر.

قام ماكس مؤخرًا بمقابلة Magento Hungary وقدم حالات الاستخدام الحقيقي لتحسين الأداء في Magento 2 الرئيسية . في هذا الصدد ، نود أن نبدأ مقابلتنا بسؤالين يتعلقان مباشرة بهذا العرض التقديمي.

حالات الاستخدام الحقيقي لتحسين الأداء في magento 2 من Max Pronko

الجزء 1: تحديات ملحقات Magento الشائعة

يستخدم كل تاجر Magento 2 تقريبًا ملحقات ثلاثية الأبعاد للحفلات تعزز بشكل كبير وظائف الأنظمة الأساسية الافتراضية من ناحية ، ولكن من ناحية أخرى ، تؤثر سلبًا على سير عمل الأداء.

ناتالي: بشكل عام ، كيف يمكنك تقييم جودة الكود لملحقات الأطراف ثلاثية الأبعاد والطريقة التي قد تؤثر بها على أحمال الخادم؟

ماكس: شكرًا على إتاحة الفرصة لك للتحدث عن ماجنتو 2 ، ناتالي. أتابع مدونتك منذ أكثر من عام وفي كل مرة أزورها ، أجد بعض المقالات الشيقة. شكرا لك على هذا.

كما تعلم ، أحب مراجعة الكود نظرًا لعدد الأسباب:

  • أولاً ، اكتسبت خبرة وألاحظ تقنيات مثيرة للاهتمام حول كيفية تحويل متطلبات العمل إلى ميزات وظيفية بالكامل وعالية الجودة. خاصة عندما يتعلق الأمر بـ Magento 2.
  • ثانيًا ، يساعدني ذلك على فهم مدى جودة مشاركة المعرفة في نظام Magento البيئي.

95٪ من ملحقات الطرف الثالث تتطلب مراجعة مكثفة للكود وإرشادات حول تحسين الكود.

لقد كنت أقوم بمراجعة كود امتدادات الجهات الخارجية لمدة عامين تقريبًا حتى الآن. لسوء الحظ ، لا أستطيع أن أقول إنني راضٍ عن النتائج التي حصلت عليها: 95٪ من امتدادات الجهات الخارجية تتطلب مراجعة شاملة للكود وإرشادات حول تحسينها. اسمحوا لي أن أكون هادئًا للغاية بشأن معايير الترميز.

أواجه مشكلات في أداء جميع صفحات موقع الويب حتى إذا كان أحد الإضافات ينشئ ويغطي فقط مجموعة مختارة من الصفحات مع بعض الوظائف المحددة. على سبيل المثال ، تضمين كتلة غير قابلة للتخزين المؤقت في ملف تكوين التخطيط الافتراضي. يقوم Magento بتعطيل ذاكرة التخزين المؤقت للصفحة تلقائيًا لجميع الصفحات.

مثال آخر هو استخدام عمليات الواجهة الخلفية التي تستغرق وقتًا طويلاً دون تخزين نتائج التنفيذ في متغير فئة. قد يقلل بشكل كبير تحميل الصفحة الأولى.

لقد أتيحت لي الفرصة لمراجعة حوالي 60 ملحقًا بما في ذلك الإضافات المدفوعة والمجانية ، لذلك يعتمد تقييمي على هذا الرقم. بالتأكيد ، هناك الملحقات التي قد أوصي باستخدامها.

ناتالي: ما هي أكثر مشكلات تحسين الكود شيوعًا في رأيك؟

لم أشاهد مطلقًا استخدام فئات الوكيل في ملحقات الطرف الثالث. ومع ذلك ، قد يقلل من وقت تهيئة الكائن العودية.

الحد الأقصى: عادةً ما يتم إنشاء الامتدادات في جولة واحدة بدون تحسين الأداء الذي يمكنني تسميته "التنفيذ والتسليم". نادرا ما تأتي الجولة الثانية ، ويتم ترك الكود دون تحسين. على سبيل المثال ، لم أشاهد مطلقًا استخدام فئات الوكيل في ملحقات الطرف الثالث . ومع ذلك ، قد يقلل من وقت تهيئة الكائن العودية.

ناتالي: ما هي نصيحة التحسين التي يمكنك تقديمها للمطورين المبتدئين ، الذين يكتبون ملحقاتهم الأولى لـ Magento 2؟

ماكس: إنها فكرة رائعة أن تختبر امتداداتك مع Magento 2 خارج البيئة المحلية ، ويفضل أن يكون ذلك في مكان ما في السحابة. في الوقت الحاضر ، ليس من المكلف الحصول على خادم افتراضي من DigitalOcean أو AWS مقابل 5-10 دولارات وإجراء اختبار أساسي شامل للمستخدم . على الأقل ، قد تظهر اختلافات جيدة في الأداء مقارنة بإصدارات Magento 2.x الجاهزة.

الجزء 2: تحسين أداء M2

ناتالي: ماذا يمكنك أن تقول عن خصائص كتلة ذاكرة التخزين المؤقت (ما هو الأفضل للاستخدام / تجنبه في مفاتيح ذاكرة التخزين المؤقت)؟

Max: Magento 2 Community Edition يأتي مع دعم خادم وكيل Varnish. إنه أمر رائع لجميع التجار الذين لا يقلقون بشأن الزائرين لأول مرة عندما لا تكون ذاكرة التخزين المؤقت جاهزة. يتم تشغيل ذاكرة التخزين المؤقت للكتلة للصفحات غير المخزنة في الورنيش. قد لا تتوقع وجود ورنيش على صفحات مثل حساب العميل والبحث في الكتالوج وعربة التسوق.

يعد مفتاح التخزين المؤقت المناسب لكل كتلة مهمًا جدًا لبناء إدخالات ذاكرة التخزين المؤقت المناسبة وزيادة مرات الوصول إلى ذاكرة التخزين المؤقت في تخزين الواجهة الخلفية مثل Redis. من الناحية المثالية ، يجب على جميع الكيانات المشاركة في عرض الواجهة الأمامية تنفيذ واجهة Magento \ Framework \ DataObject \ IdentityInterface التي تأتي مع طريقة getIdentities () . هذه الطريقة مفيدة جدًا إذا كنت بحاجة إلى تجميع مفاتيح ذاكرة التخزين المؤقت المناسبة لذاكرة التخزين المؤقت.

ناتالي: أي شيء عن تحسين استعلامات SQL؟

الحد الأقصى: لتحسين SQL عادةً ما أحاول سرد جميع أشكال البيانات الممكنة المحددة من الجدول. من الناحية المثالية ، يجب أن تصل جميع الاستعلامات إلى فهارس MySQL للحصول على أداء أفضل. أعلم أنها حالة مثالية ، ومع ذلك ، يمكن أن تساعد حقًا في تسريع الاستعلامات على عدد كبير من السجلات في جدول. بالطبع ، يعد تحسين استعلام SQL موضوعًا ضخمًا ، لذا يمكنني التحدث عنه لساعات.

الجزء 3: Magento 2 Search

يمكن أن يتباهى Magento 2 بوجود بحث خارج الصندوق أفضل من M1 ، ولكن لا تزال الاستعلامات المركبة والأخطاء المطبعية والتصحيح التلقائي والمرادفات غير مدعومة. علاوة على ذلك ، لا يفحص بحث M2 الفئات وصفحات CMS.

2017-01-17_15-26-38

ناتالي: ما هي أفضل الطرق لتحسين البحث في إصدار CE: ملحقات أم محركات بحث خارجية؟

الحد الأقصى: أفكر في استخدام Elasticsearch لـ Magento 2 Community Edition. بالطبع ، يتطلب التطوير سواء في المنزل أو باستخدام ملحقات الطرف الثالث. بالنسبة لأحد مشاريع Magento 2 ، استخدمنا بحثًا مدمجًا مع تكوين إضافي مثل المرادفات وعمليات إعادة التوجيه إلى صفحة مقصودة لاستعلامات البحث الشائعة. ومع ذلك ، هذا حل قصير الأجل ، سأذهب مع بعض الخدمات الخارجية.

ناتالي: بالحديث عن محركات البحث الخارجية ، أيهما أفضل لمواقع البيانات الصغيرة / المتوسطة / الكبيرة: Solr أو Sphinx أو Elasticsearch (أو غيرها)؟

ماكس: بالنسبة للمواقع الصغيرة ، سأفكر في بحث Magento 2 الافتراضي. بالنسبة للأخرى ، يتعلق الأمر أكثر بمدى جودة الامتداد والتوثيق في حال كنت ترغب في بناء الحل الخاص بك. يأتي Elasticsearch كخيار مفضل لدي.

ناتالي: هل يمكنك أن توصي بامتدادات البحث التي يمكنها تحسين الوظيفة الافتراضية؟

ماكس: لدي خبرة في مراجعة وحدة الإكمال التلقائي لـ Magento 2 التي صممها MageWorx. إنه يحسن تجربة المستخدم بشكل كبير مقارنة بوظيفة الاقتراح التلقائي Magento 2 Community Edition الافتراضية. ستؤدي وحدة الإكمال التلقائي لبرنامج MageWorx إلى زيادة التحويلات والمبيعات للتاجر. فيما يتعلق بتنفيذ الكود ، فإن نتيجتي هي 4.5 من 5. وهناك بعض التحسينات الطفيفة التي يمكن إجراؤها لزيادة تجربة مطور البرامج بشكل عام. أحد الأشياء الرائعة حول وحدة الإكمال التلقائي هو حقيقة أنه مجاني للتنزيل. سأفكر في استخدام هذه الوحدة والتوصية بها لـ Magento 2 Merchants.

بصرف النظر عن ذلك ، سأستمر في مراجعة الوحدات ذات الصلة بالبحث لـ Magento 2 وتقديم ملاحظاتي حول جودة الكود.

الجزء 4: تحديات ماجنتو 2

ناتالي: أنت مطور Magento تم اختباره في المعركة ، بعد سنوات من العمل مع Magento ، ما هي أكثر المشكلات صعوبة التي يجلبها الإصدار الثاني من النظام الأساسي؟

على سبيل المثال ، كما أعلم ، تؤدي حتى التغييرات الطفيفة في الكود في M2 إلى عدد من الإجراءات (مثل إعداد bin / magento: الترقية ، وإعداد bin / magento: static-content: publish ، bin / magento setup: di: compile ، إلخ. )

ماكس: أعتقد أنه في معظم الحالات عندما يجلس مطور أمام PHPStorm ويكتب رمزًا ، لا يوجد وقت للتعمق في هندسة Magento 2. على سبيل المثال ، أعرف اثنين من المطورين الجيدين الذين يشكون من مكونات واجهة المستخدم وعدم وجود أمثلة حقيقية على استخدامها. تقدم Magento DevDocs الجديدة نظرة عامة جيدة على مكونات واجهة المستخدم.

يجد المطورون ذوو الخبرة الجيدة في Magento 1 أن Magento 2 معقد وأحيانًا يمثل تحديًا. توفر التكنولوجيا الجديدة دائمًا فرصًا جديدة لتعلم شيء جديد.

حتى أن هناك صورة عنه.

ناتالي: وأخيرًا ، تم إصدار Magento 2 في نوفمبر 2015. هل تعتقد أنه جاهز تمامًا للتجار في جميع أنحاء العالم لبدء الهجرة إليه؟

ماكس: نعم بالتأكيد. يتمتع Magento 2 ، كبرنامج ، بفوائد أكثر من عدد من المشكلات المفتوحة على GitHub. من الواضح أنه يمكن أن يحقق المزيد من الإيرادات مقارنة بـ Magento 1 في حالة وجود استراتيجية تسويق وتسويق جيدة التخطيط. أتذكر أنني قلت "نعم" لأحد مشاريع Magento 2 في أغسطس 2015 عندما كان مجرد إصدار تجريبي. نحن الآن أكثر من سعداء لاستخدام وبناء مواقع التجارة الإلكترونية على أساس Magento 2.

سيسعد فريقي في Pronko Consulting بإدخال رؤية جديدة في الحياة وإطلاق موقع Magento 2 جديد.

*****
نريد أن نشكر ماكس على هذه المقابلة ونتمنى له ولفريقه عامًا مثمرًا وناجحًا.