اسكتشات مع PHP Russia 2019: رمز نظيف ، سحر مظلم



في 17 مايو ، تم عقد أول مؤتمر احترافي لمطوري PHP PHP Russia 2019 في Moscow Infospace ، وبعد توقف طويل ، تلقوا منصة أرضية كاملة لهم ؛ في الإعلان ، قارناها بالملعب ، الذي لم يكن لدى peychpishnikov ، أحد فرق "قسم تكنولوجيا المعلومات الأعلى". وقابل "الملعب" موسمه الأول على الأقل بكرامة ، مع اختلاف نموذج كرة القدم عن صعوبة الفصل بشكل صارم بين اللاعبين والمشجعين.

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

وصل ما يقرب من 500 شخص في PHP روسيا. كان الجمهور عبر الإنترنت أيضًا كبيرًا للغاية - حيث تم ربط مئات المشاهدين. تم "ترسيخ" 22 أساسًا من البرنامج ، بما في ذلك خمسة تقارير من متحدثين أجانب بارزين ، بالإضافة إلى ثلاثة اجتماعات وعروض في شكل ارتجالي Unconference في جدول منفصل.



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

ألكساندر ماكاروف ، المنظم المشارك للمؤتمر
- لقد فكرنا في لجنة البرنامج لفترة طويلة وأخيراً هزنا الشبكة بحيث تطور اللغز: لقد تخلينا عن فكرة وضع المتحدثين باللغة الإنجليزية في جدول منفصل ، وتطلعنا إلى جعل التقارير متوازنة بشكل متبادل. من الناحية النسبية ، بحيث يكون الأكثر نجاحًا متوازيًا ولا يسحب واحد أغلبية الجمهور. بالطبع ، كانت هناك روابط مفاهيمية داخل كل مسار: على سبيل المثال ، مباشرة بعد خطاب Did Liddament ، الذي ، عند حديثه عن التحليل الثابت لرمز PHP ، أولى الكثير من الاهتمام إلى PHPStorm ، بدأ تقرير Kirill Smelov في نفس الغرفة ، حيث تم فرز جهاز IDE هذا. وأعقب قصة حول الابتكارات في PHP 7.4 عرض تقديمي في 8.0.

حول المواضيع


كما كان الغرض منه ، تم بناء حصة الأسد من العروض حول موضوعات خاصة بـ PHP ، في جزء كبير منها ، شديد التشدد.

من بين العوامل الرئيسية التي تهم المؤتمر ، تم تسليط الضوء على مستقبل اللغة نفسها ، وهندستها وتوحيدها ، والبرمجة غير المتزامنة في PHP ، وأفضل ممارساتها وقدراتها الضمنية ، والعمل مع أطر محددة وحتى التعلم الآلي باستخدام مكدس PHP.



الأوراق الرئيسية


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

  • الأكثر ازدحاما.
  • الأكثر توقعا ؛
  • أغنى في مفاجأة.



نيكيتا بوبوف: خصائص مكتوبة وأكثر من ذلك. ما سيأتي في PHP 7.4؟




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

وفقًا للجدول الزمني المقدر ، سيتم إصدار الإصدار ألفا من الإصدار 7.4 في 6 يونيو 2019 ، وسيتم إصدار الإصدار 7.4 GA في 21 نوفمبر. حسنًا ، بعد عام ، في ديسمبر 2020 ، سيتم إطلاق "الثمانية" التي أشعلتها الشائعات.

الشيء الرئيسي الذي سيتم تنفيذه في PHP 7.4:

  • الخصائص المكتوبة
  • FFI - واجهة الوظيفة الخارجية ، للعمل مع الوظائف الخارجية في C ؛
  • وظائف السهم ؛
  • - التحميل المسبق ؛
  • - المشغل ??=
  • - أنواع الإرجاع المتغير ؛
  • - الروابط الضعيفة (WeakReference) ؛
  • - إضافة عامل تشغيل للصفائف.

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

التغيير الرئيسي الثاني في PHP 7.4 هو ظهور وظائف السهم. هذه وظائف مجهولة من سطر واحد - حيث إن بعض المطورين متأكدين من السكر النحوي ، على الرغم من أن آخرين يجدون أنه مفيد تمامًا.

لا يمكنك أيضًا إهمال العامل ??= الذي كان غائبًا من قبل في اللغة. إليك ما تفعله: إذا لم تكن المعلمة الموجودة على اليسار موجودة في التعبير أو كانت فارغة ، فسيتم تعيين قيمة المعلمة على اليمين.

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

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



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

نيكيتا بوبوف:
- أعتقد أن المجموعات المكتوبة ستكون على شكل أدوية بديلة.

ديمتري ستوغوف: الشيء الأكثر إثارة للاهتمام في PHP 8





الخط الذي بدأه نيكيتا بوبوف ، واصل مساهما بارزا آخر في قلب PHP - ديمتري ستوغوف ، المهندس الرئيسي في Zend Technologies. لقد تحدث عن مستقبل بعيد بعض الشيء للغة - عن الإصدار السري 8.0. في السنوات الأخيرة ، ركز على تحسين أداء PHP وبنى قصته بنفس التركيز.

لمدة عقد ونصف ، اللغة "تسارعت". تحققت مكاسب أداء كبيرة مع الإصدارات 5.1 و 7.0. في عصر السبعة ، كان هناك نمو سلس: زيادة سرعة تنفيذ التعليمات البرمجية من الإصدار إلى الإصدار لم يكن جذريًا. ومع ذلك ، يعد PHP 8.0 للمطورين حقيبة هدية. إنهم ينتظرون الكثير من الأشياء المثيرة للاهتمام.

نقول "مثيرة للاهتمام" - يعني JIT؟ ليس حقا نعم ، في الواقع ، يعد التجميع الديناميكي في الوقت المناسب بتعزيز الأداء في الإصدار 8.0 ، ولكن ... فقط في الاختبارات الاصطناعية ، في التطبيقات الحقيقية ، حتى التباطؤ ممكن ، وإن كان ضئيلاً. ومع ذلك ، التحسينات ممكنة.

ثم بدأت "اللحوم": تعمقت ديمتري في أساسيات PHP و JIT ، وشرحت على طول الطريق ، "ما هو الخطأ في JIT" ، وشاركت الجمهور كيف أن JIT وآلية التحميل المسبق و FFI ول بسبب ما تم تصميمه لزيادة أداء كود PHP.

ثالوث أعلاه يفتح استخدامات جديدة ل PHP. سيكون من الممكن كتابة الامتدادات مباشرة في PHP ، وربط مكتبات C الخارجية ، وإنشاء نماذج أولية دون عمل إضافي ...

ولكن ، كمهندس صادق ، لم يحدد ديمتري الاحتمالات المذهلة التي ستكون متاحة في النسخة الثامنة من اللغة فحسب ، بل حذر أيضًا من أوجه القصور فيها ، بل "عدم التفاؤل". بالطبع ، من الرائع أن يتم تحميل البرامج النصية المسبقة عند بدء تشغيل PHP ، ومع ذلك ، لا يمكن استبدالها دون إعادة التشغيل ، وقد لا يعمل البعض مع التحميل المسبق كما هو مقصود. بالطبع ، إنه لأمر رائع أنه ، بفضل FFI ، يمكنك العمل على هياكل البيانات المحددة في C ، وواجهة برمجة التطبيقات (API) بسيطة وممتعة ، فقط FFI تفتح ألف طريقة جديدة لتصوير نفسك في القدم ، وأدائها منخفض نسبياً.

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

الكسندر Lisachenko: مدرسة السحر PHP




تم جمع الحجرة الكاملة بعد الغداء من قبل ألكساندر ليساتشينكو ، رئيس قسم تطوير الويب في Alpari ، عضو لجنة برنامج PHP Russia 2019 ، المبتكر والمطور الرئيسي لإطار عمل المنحى الجانبي Go! اوب. قدم نظرة على اللغة من خلال المنشور - العنوان الفرعي لدينا لا يكذب! - السحر.

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

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

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

أولت ألكساندر اهتمامًا خاصًا للبرمجة الموجهة نحو الجانب في PHP ، والتي تتوافق تمامًا مع مبدأ الممارسة الذي تستخدمه في الوعظ وفي الذيل ، والتي وضعت نفس الأساس لـ Go! اوب.

ديف الرائدة: تحليل ثابت العملية المتقدمة




شارك ديف Liddament ، مدير Lamp Lamp ، مع الجمهور أفضل ممارساته فيما يتعلق بالتحليل الثابت المتقدم لرمز PHP. بصفته مؤلف أداة المصدر المفتوح SARB ، أو Baseliner لنتائج التحليل الثابت ، فقد كشف عن نوع من خارطة الطريق للجمهور لتنفيذ التحليل الثابت ، بحيث يمكن للجميع الاقتراض من حلول المراجعة والتقنيات التي اعتقد أنها تلائم مجموعته واحتياجاته. أو لاستخدام التقرير كدليل مصغر كلي لتنفيذ التحليل الثابت.

مع التأكيد على أهمية بيئة التطوير كجزء من الترسانة للتحليل الثابت ، أثنى ضيفنا على PHPStorm ، الذي بدا مفاجأة سارة لمشرف القسم ، Roman Pronsky من JetBrains ، الذي يشرف على IDE في شركته.

بدأ ديف مع الحاجة إلى الشيكات الأساسية:

  • Lintinga.
  • يتحقق من الامتثال لمعايير البرمجة (بما في ذلك تقييم تناسق الكود المكتوب داخل الأمر) ، على سبيل المثال باستخدام PHP CS Fixer .
  • تحليل رمز الحماية. على هذا النحو ، أوصى المتحدث بمدقق الأمان من SensioLabs ، مؤلفو Symfony.
  • يتحقق من أجل var_dump المنسية.
  • تحقق المزامنة التلقائية composer.json و composer.lock (التحقق من صحة الملحن)

يمكن العثور على تلك الأدوات والكثير من الأدوات الأخرى لتحليل الكود الثابت من قبل أي شخص في أحد مستودعات جيثب المجيدة.

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

علاوة على ذلك ، بحث ديف في الفروق الدقيقة في استخدام أدوات أكثر تقدماً ، وبشكل أساسي مزمور وفان وفبستان. ركز بشكل منفصل على العمل في ظروف التكامل المستمر (كما نصح بعض المستمعين بالأدوات ).

كان تصنيف الأخطاء و "الأخطاء تقريبًا" من Dave غنيًا بالمعلومات أيضًا ، في ضوء التحليل الثابت للرمز وتفاصيل عن الكيفية التي ضرب بها التطوير تمامًا. على سبيل المثال ، حتى إذا تم تحديد نوع المعلمة بشكل غير صحيح ولم يتسبب في حدوث خطأ في سير العمل ، ومع ذلك ، حيث يصبح المشروع أكثر تعقيدًا ، يمكن أن يتحول بسهولة إلى أشعل النار حيث سيتدخل عضو آخر في الفريق. وفقًا للإحصاءات المقدمة في العرض التقديمي ، فإن عيوب التطور هذه (العيوب التي تم الكشف عنها أثناء تطور الكود) تمثل حوالي 80٪ من الأخطاء التي تظهر أثناء مراجعة الكود.

و ايضا ...




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

الحفاظ على وعد ، كيريل Smelov من JetBrains سقطت في تفاصيل الجهاز الداخلي PHPStorm ، بما في ذلك كيف PHP شارك في إنشاء IDE.

تحول خطاب أنطون تيتوف من SpiralScout LLC إلى هذه الحالة النادرة في إطار برنامج المؤتمر عندما حدث انحراف موضوعي عن الدورة التدريبية "بصرامة في PHP" ، ولكن قصته حول تطوير تطبيقات PHP / Go الهجينة باستخدام RoadRunner كانت ناجحة بكل تأكيد.

اتصل توماس تشوتربوبا ، وهو مندوب تشيكي ، بكامل منزله ، يخبرك بالتفصيل عن كيفية جعل إعادة تشكيل صفائف كبيرة من الكود القديم أقل إيلامًا وتسريع العملية من خلال عدة مرات باستخدام قرار مؤلفه - رئيس الجامعة.

قرأ ديمتري إليزيف (ElisDN) تقرير "OOP المختصة: تنظيم المنطق التجاري الموثوق" ، والذي درس فيه ، من بين أشياء أخرى ، كيفية فصل واجهة المستخدم والمنطق التجاري عن العقل.

عدم الاحترام والتخفيف


قرب نهاية البرنامج الرئيسي ، بدلاً من أحد لبنات البناء ، تم اختبار تنسيق Unconference - وهو تناظرية لـ "الميكروفون المفتوح": يمكن لأي شخص الخروج وتقديم تقرير مصغر حول موضوع بدا مثيراً للاهتمام بالنسبة إليه. نجح تجريبي لمثل هذا "الوقوف في تكنولوجيا المعلومات": تحدث ألكساندر ماكاروف عن احتمال Yii3 ، وضيف ضيف من Badoo قصة ، وكيف صنع هو وزملاؤه وكيلًا لـ Xdebug ، وأخيراً ، تم تخصيص عرض تقديمي تلقائي آخر لميزات العمل مع طابعات الملصقات المتخصصة وفحص وشد هذا الأمر برمته إلى PHP.



في غرفة رابعة منفصلة ، بعد الغداء ، بدأت مجموعة من الإجراءات التطبيقية (ووجدوا أيضًا جمهورهم):

  • "لارافيل مقابل سيمفوني: مقارنة لا تضاهى".
  • "كيفية المساهمة في Symfony ولماذا تفعل ذلك."
  • "كيفية استخدام Yii2 في المؤسسة؟ احصل على أفضل الممارسات من Symfony! "

بدوره ، لم يرتب شركاء المؤتمر "مقبرة من الرفوف" ، ولكن حركة غير مزعجة ومسلية ومناسبة. كان لدى العديد من Chat مسابقات PHP عبر الإنترنت ، ومسابقة لإنشاء وفك روبوتات ، وكلمات تعبيرية عادية رائعة. في الزاوية ، تخترق Badoo تقنية الاسم المستعار - إصدار تكنولوجيا المعلومات من أجهزة كمبيوتر سطح مكتب الاسم المستعار. حسنًا ، في جناح Paxful ، كان الزوار ينتظرون "الأفيال الأرجواني غير التقليدية" والملصقات والحلويات من إستونيا.





"تأمين" الماضي


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



ما رأيك في "الفيلة 2020"


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

  • دون شك ، سنستمر في جعل Unconference: الناس سعداء بالتنسيق وطلب المزيد.
  • سنحاول طلب قطعة من الفيلة. في PHP Russia 2019 لم يكونوا كذلك: اتضح أن الحقوق الخاصة بهم تعود إلى اللاعبين من فرنسا ، وأنها بطيئة جدًا - يجب أن يتم طلبها لمدة تتراوح بين 4-6 أشهر.
  • من المؤكد أننا سنحضر نفس ماركو بيفيتا ، الذي كان في برنامجنا ، ولكنه سقط في اللحظة الأخيرة لأسباب خارجة عن إرادته. لدينا أيضا آراء والد Symfony فابيان Potencier. في النهاية ، سنحاول إحضار Rasmus Lerdorf أيضًا: لقد اتصلنا به في المؤتمر الأول ، لكن كان لديه تقاطعات مع أحداث أخرى.

الكل في الكل ، ترقبوا!



PS وأخيرا - مكافأة صغيرة. كما يعلم بعضكم ، يستضيف قسطنطين بوركاليف ، أحد سكان هابروفسك الأصلي وعضو لجنة برنامج PHP Russia ، مواد إذاعية لتكنولوجيا المعلومات. والنسخة 104 التالية من SDCast هي المقابلة التي أجراها من اثنين من المتحدثين الجديرين في المؤتمر ، هما Anton Shabovty و Anton Morev. تحدث مع الأول حول عمليات PHP غير المتزامنة وتعدد المهام وعمليات PHP طويلة الأمد ، والثاني - حول واجهة برمجة تطبيقات Rest API و GraphQL وإيجابيات وسلبيات النهج ومجالات ومهام التطبيق. هل لديك الاستماع لطيف!

Source: https://habr.com/ru/post/ar454028/


All Articles