مقابلة مع الكسندر ماكاروف ، الفريق الأساسي يي

سيقدم ألكساندر ماكاروف ( SamDark ) أحد المطورين الرئيسيين في Yii حديثًا عن مقاييس الحزمة في DevConf ، وقد انتهزت الفرصة لطرح لي بعض الأسئلة حول الإصدار الجديد من Yii ، و ORM الجديدة ، وجمع التبرعات لتطوير OpenCollective ، وتطوير المصدر المفتوح بدوام كامل وقليلا عن المؤتمر.

سأبدأ بالسؤال الذي يتم طرحه باستمرار. ما الأمر مع يي ؟ عندما يكون الثالث ؟ لقد كنت أشاهد الإنشاء الفعال لحزم جديدة على github.com/yiisoft لبعض الوقت.

مع يي ، كل شيء على ما يرام. حسنا ، تقريبا. لشرح ، تحتاج إلى إلقاء نظرة قليلا.

عندما صنعنا الإصدار 2.0 ، بالغنا في تقدير نقاط قوتنا إلى حد ما. من المفهوم أن توالت جبال تشيانغ شيويه كل يوم ويبدو لنا جميعًا مرة واحدة.

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

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

https://github.com/yiisoft/docs/blob/master/001-yii-values.md
https://github.com/yiisoft/docs/blob/master/003-roadmap.md

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

https://github.com/yiisoft/event-dispatcher
https://github.com/yiisoft/di

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

أتذكر أن لديك خطط لاستخدام بعض ORM الجديد ، وهو ما يعرفه القليل من الناس. github.com/cycle/orm لم أكن مضطرا للتعرف عليه بالتفصيل ، أخبرني كيف يختلف عن الآخرين وكيف جذبك؟

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

أنتون وأنا نتحدث منذ فترة طويلة. كان لديه بعد ذلك إطار عمل داخليًا وطرح أسئلة حول كيفية وما الذي يعمل في Yii ، وما يعجبني ويكره في Active Record. ناقش وإيجابيات وسلبيات العقيدة . في بعض الأحيان استدعوا وأظهر أنتون كيف وماذا تم القيام به هناك وقلت عدة مرات أنه أكثر ملاءمة في يي .
في مرحلة ما ، بدأت أقول أقل بكثير وأدركت أن شيئًا مثيرًا للاهتمام عالميًا يمكن أن يأتي من الدورة . في ذلك الوقت ، كان هناك بالفعل بناء جملة مشابه لباني استعلام Yii ، ومفهوم العلاقات ، وأكثر من ذلك بكثير. كان ما يلفت الانتباه بشكل خاص هو حقيقة أن Anton كان لديه RoadRunner في الإنتاج وكان من الأهمية بمكان بالنسبة له أن Cycle لم يتسرب ، ولم يأكل ذاكرة إضافية ولم ينهار بسبب أخطاء في معالجة الدُفعات.

في الواقع ، لقد شاهدت دورة Cycle بالتفصيل في الربيع الماضي ، ولم يتخذ قرار اتخاذ القرار افتراضيًا لـ Yii . هذا ليس سوى خيار. ولكن هناك شيء واحد واضح: لن يتم ربطنا بالسجل النشط للتحقق من الصحة ، والنماذج ، وما إلى ذلك. كل شيء يجب أن يعمل مع أي شيء: مع DTO ، مع كيان المذهب ، مع دورة.
بدأت يي مؤخراً في جمع الأموال من خلال opencollective.com/yiisoft . إن هدف "مطور مركز واحد مركز - 24000 دولار في السنة" على وشك الانتهاء. ماذا يعني هذا؟ المطور بدوام كامل الذي سيتعامل حصرا مع يي؟ من سيكون؟

نعم ، لقد بدأنا بالفعل حملة لجمع التبرعات لأنه يوجد متسع من الوقت لـ Yii 3 أكثر من السابق لدعم Yii 2 فقط. لا يعني المطور الأساسي المركّز أنه سيكون بدوام كامل (لا يزال المبلغ غير قابل للمقارنة مع الوقت الكامل التجاري) ، لكن هذا يعني أن كل مطور تقريبًا سيخصص كل يوم وقتًا كبيرًا للإطار دون أن يشتت انتباهه عن طريق حرق الإنتاج والمواعيد النهائية ومشاكل الفريق وكل ذلك . وهذا هو ، ليس فقط مزيد من الوقت ، ولكن أيضا تركيز جيد للأفكار دون عوامل تشتيت للغاية.

سأكون أول مطور من هذا القبيل. عند الوصول إلى الهدف ، سنحاول رفع المستوى وتوسيع نطاقه ليشمل عضوًا آخر في الفريق الأساسي.
كل هذا النشاط المتزايد على الأرجح يرجع إلى حقيقة أن لديك الوقت أخيرًا. لقد عملت في Skyeng ، غادرت هناك (يمكنك قراءة الأسباب والتفاصيل هنا - rmcreative.ru/blog/post/poka--skyeng ). هل تستمر في التعامل مع المصادر المفتوحة فقط؟ كيف تشعر؟ ميزانية الأسرة؟

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

الأحاسيس ... كل أنواع. هذا هو حقا ما أحب القيام به. أنا سعيد لأنه اتضح أداة عظيمة. يسر مع الناس الذين لا يهتمون يي والذين يساعدون. أحب التحدث في المؤتمرات.

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

حسنًا ، إن الفهم بأنه لا يزال هناك الكثير من العمل الذي ينتظرنا هو أيضًا غير محسوس. على الرغم من أنك إذا نظرت إلى ما تم القيام به كل أسبوع ، إلا أنه يتضح أن القيام بكل شيء حقيقي وسنفعله.

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

مقهىان ، نعم. لقد فعلوا ذلك بأنفسنا. الشريط مرتفع. تحولت الأشياء الجيدة ، ولكن هناك مجال للنمو. أخي يعمل بشكل رئيسي في المقاهي الآن. الوقت لا يأخذ الكثير.
في شهر مايو ، كنت أحد منظمي مؤتمر PhpRussia . كيف ذهبت؟

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

  1. من أجل معرفة أين ينمو.
  2. من أجل فهم ما إذا كان كل شيء على حق في المشروع أم لا.
  3. توظيف أدوات وممارسات جديدة.
  4. للدردشة. هذا غالبًا ما يعطي نتائج غير متوقعة: بدءًا من التواصل الجيد إلى النصائح والأفكار القيمة.

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

هذا ينطبق تماما على PHP . بالطبع ، أولاً وقبل كل شيء ، يعد هذا ضروريًا للمشاريع على مستوى Yii أو Symfony أو Laravel ، ولكن بالنسبة للمشروعات التجارية ، يكون هذا أيضًا منطقيًا. يمكن تطبيق مقاييس الحزم ليس فقط على حزم الملحن ، ولكن أيضًا على وحدات الكود ، والخدمات الميكروية ، وما إلى ذلك.



سيتم عقد DevConf في الفترة من 21 إلى 22 يونيو ولم يتبق سوى أسبوعين فقط. تقارير قوية ، فرصة لمناقشة مجموعة من الأسئلة على الهامش أو على استراحات القهوة والحصول على شحنة إيجابية جيدة لفترة طويلة - سجل .

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


All Articles