DjangoCon Europe 2019. هل مات المهر الخاص بك؟

صورة

في الفترة من 9 إلى 14 أبريل ، عُقد مؤتمر DjangoCon Europe 2019 في كوبنهاغن. مليئة بالأمل والتطلعات ، وصلت إلى هذا الحدث ، وتركت في اضطراب عميق. سأحاول في المقال أن أنقل انطباعاتي عن المؤتمر وأن أعلق على هذا التغيير الحاد في الموقف تجاه جانغو.
إخلاء المسئولية: تحتوي المقالة على التعصب والأحكام الفئوية والنقد غير المبرر.

مرحباً بالجميع ، أنا مكسيم ، أعيش في النمسا ، في تيرول. أنا مدرس في GeekBrains وأحد المالكين المشاركين لمشروع winePad ، وهو جامع وبائع للبيانات الفنية عن المشروبات الكحولية. هذا هو عادة البيانات على الخمور.

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

بدأ المشروع في عام 2012 باستخدام Django 1.4 / Python 2.7 على الخادم ، ومع Jquery على خادم العميل + JsonRPC. الآن زادت مجموعة التقنيات. على أي حال ، ركضنا حرفيا إلى جانغو.

انضممت إلى المشروع في عام 2015 ، حيث توليت المهمة من مطوري Tyrolean. من شعر رديء الجودة كان يتحرك في كل مكان.

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

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

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

ما جاء من كل هذا:



يوم صفر


بعد ظهر يوم الثلاثاء ، قبل بدء المؤتمر ، تم عقد اجتماع للفتيات في جانغو - هذه هي مبادرة DjangoFoundation لترويج جانغو إلى الجماهير النسائية. من الساعة 5 مساءً بدأ التسجيل. كانت الأقراص المرنة 3 بوصة بمثابة شارات ، يمكن لأي شخص أن يكتب كل ما يريده (ها ها ها) على قرص مرن ، وكانت محركات أقراص USB موجودة.

في جميع أيام المؤتمر ، كان هناك كمية غير محدودة من البيرة الحرفية المسمى "الوردي Django-pony" ، من مصنع جعة محلي صغير. من ناحية ، إنه بارد ، من ناحية أخرى ... بيرة هكذا. تم تزيين القاعات بخيل تحلق وردي من جميع الأحجام.



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



عند شراء تذكرة ، كان عليّ الموافقة على الامتثال لقواعد المؤتمر المتعلقة بالانفتاح والتسامح والنقد البناء واحترام التفضيلات الجنسية للمشاركين. بالموافقة على هذا ، لم أكن أظن أن هذا يمكن أن يؤدي إلى ...

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

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

في المساء كنت أتجول في كوبنهاغن.



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

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

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

اليوم الأول


محاضرة افتتاحية حول الوضع مع DjangoProject


لفترة وجيزة: مساعدة من يستطيع.



ورشة عمل GraphQL


JSON للكسل. لن تتحسن الحياة إذا بدأ الجميع باستخدام تدوين استعلام مختلف.

الحياة سعيدة


Django REST Wrapper ، ابدأ في كتابة 4 أسطر من التعليمات البرمجية بدلاً من 6.

ورشة عمل حول الانتقال إلى إصدار جديد من الكود دون إيقاف الخادم


قصة عملية قلب لمدة عشرة أشهر مع رمز من 100 نماذج. تم إنشاء المشروع ثلاث مرات:

  1. مع النماذج القديمة.
  2. مع الطرز القديمة والجديدة وإمكانية التبديل عبر الإنترنت.
  3. بدون النماذج القديمة والمفاتيح.

طويلة ومكلفة.

بسبب ورشة العمل هذه ، فاتني ثلاث محاضرات ، تحدث اثنان بشكل جيد ، وسأنظر في الملاحظات:

  • 750،000 طلب سحب سحب.
  • Django أمن الشبكة على رؤوس.

بعد استراحة مع خزان القهوة التالي ، كانت هناك محاضرة حول DJANGO-ORM . المتحدث - سيجورد لجودال. هذا هو مطور ORM الحالي ، ويمكن الاطلاع على أنشطته على مستودع Django.



التقرير مفيد ، لكنه أزعجني. من ناحية ، نضجت ORM-Django الجديدة كثيرًا. من ناحية أخرى ، استخدم Sigurd الميزات غير الموثقة لـ queryset.query في الأمثلة الخاصة به. في محادثة لاحقة مع Sigurd ، أدهشني أنه ، مثل معظم مطوري Django ، لا يعرف حقًا أساليب queryset.query .

"لماذا تستخدمها في الأمثلة!" سألت. "حسنا ... من هذا القبيل ..." أجاب Sigurd.

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

بضع شاحنات بيرة ومحادثات طويلة بعد محادثات البرق ... في اليوم الأول قد انتهى.

اليوم الثاني


ورشة عمل: Bootstrap جانغو


لم ينجح الأمر.

التعرف على الصور ، والتعلم الآلي مع جانغو


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

ورشة التعرف على الصور


كل شيء يعمل ، وتم العثور على صورة من بين 10 آخرين. لكن سرعة العمل عبرت كل شيء. 20 ثانية للتحضير ، 30-40 ثانية للبحث. اعتقدت: إن البحث لمرة واحدة في مشروعنا عن الصور سيستغرق سنوات. ولدينا عشرات الآلاف من هذه الطلبات في اليوم الواحد. الحل المقترح لا يناسبني.

اختبار التغيير البصري


قد تكون مفيدة للعمال الأمامية.

SQL-Alchemy vs Django-ORM


رئيس جليب من DjangoStars. أوافق على الفكرة ، لكنني ما زلت أطبق بعض الأشياء من خلال أساليب DJANGO-ORM. الشيء الرئيسي الذي رأيته حيث يمكن تطبيق الكيمياء في مشروعي.



ورشة العمل: مسار طلب / استجابة كامل عبر خط أنابيب الغذاء في جانغو


كان من المفيد تحديث المعرفة. المطور Django ، تذكر: كل ما تفعله هو تكوين تطبيق WSGI.

ثم حصلت على فكرة التحدث على "البرق". قدمت عرضًا وتخطيت بعض التقارير.

تقرير وثائق المشروع الإلهي


من رئيس فريق توثيق ريدهات.



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

Pentapesting مع ZAP


سيحاول التطبيق جميع الطرق المعروفة له لتكسير الموقع المحدد.



أردت على الفور محاولة اختراق مشروعي.

كان البرق مفيدًا أكثر من اليوم الأول.

تحدث ألكسندر (DjangoStars) عن إعدادات خيارات التخزين




قصة التفاف لحقول النموذج


تراقب Vrapper نوع القيمة المرتجعة.

تقرير عن تثبيت كعب الروتين بدلا من عرض بيانات العميل الخاصة


مفيدة في مرحلة التطوير والاختبار وقطع الأشجار. في عصر قانون حماية البيانات العالمي ، يجدر التفكير فيه. للأسف ، لم يجيب المؤلف عن سبب اختراعه الديكور @sensitive_variables . يبدو أنه ببساطة لم يقرأ الوثائق.

تقرير عن استخدام المتغيرات مع نطاق داخل سلسلة رسائل واحدة


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

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



الماء في القنوات نظيف. وينظر إلى ذلك في الأسفل. هل ترى شيئا هناك أيضا؟


اليوم الثالث الرائع


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

تقرير القتل الفيكتوري


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

باستخدام GeoDjango مع أمثلة


من مؤلف وثائق GeoDjango. الجمال.



لدي المخطط لها في المشروع. الآن أنا أعرف كيفية تنفيذ هذا.

مجموعة مرنة المهندس المعماري حول منتجات برامج الشركة


وهذا يشمل elasticsearch.



أعجبني مثال كيفية تضمين رسم بياني لنشاط المستخدم في لوحة إدارة Django.

دورة كاملة من إنشاء حقل النموذج الخاص بك




أعجبتني: لدي العديد من حقولي ، لكني فاتني الكثير في عملية إنشائها.

نظام المساعد جانغو


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

ثم دخلت في خطاب حول elasticsearch وذهبت إلى ورشة العمل. ثم فاتني تقريران وضاعت الوقت.

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

إعادة تصميم مشروع جانغو الخاص بك


عاجلاً أم آجلاً ، صادف المطورون توصية: نماذج الدهون ، طرق العرض النحيفة ، النماذج الغبية (قوالب غبية ، طرق عرض رقيقة ، نماذج سميكة).



ObjectManager : تحديد الكائنات فقط في أساليب ObjectManager وفي أساليب ObjectManager التي تم إنشاؤها بواسطة ObjectManager .

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



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



سوبر مفيدة.

ثم كانت هناك خطب وإغلاق الجزء الرسمي من DjangoCon.

ثم كان هناك تقرير أجاب على جميع أسئلتي وأكد مشاعري.

جانغو إعادة تصميم الخطوط العريضة


المتحدث - توم كريستي ، مبتكر إطار عمل جانغو ريست . في الشرائح ، أخبر توم وأظهر في أمثلة التعليمات البرمجية لماذا لم يعد لدى Django (ونتيجة لذلك ، DRF) فرص التطوير. نعم ، يمكنك إصلاح الخلل ، نعم يمكنك إضافة وميض أو تحسين ORM. الشكل العام لجانغو لا يزال دون تغيير.



عندما قال توم ، "لا أعتقد على الإطلاق أنه من الممكن بناء نظام سريع التحميل في بيثون" ، صمت الناس.



ثم عرض توم أمثلة على الكود حول كيفية حل مشكلات عدم التزامن في مشاريع Django وما هي المشاكل التي ستتبعها.



بالنسبة إلى ORM غير المتزامن ، تم ذكر Ariadne وبرنامج تشغيل DB غير المتزامن غير المكتمل. لقوالب Jinja وإعادة رمز القالب.



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

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

الخيار ما يجب القيام به بعد ذلك لأولئك الذين يريدون النزول. لا يوجد حل "كما في جانغو". كان هناك استعراض نظائرها الحالية ، والسرعة ، والتعقيد ، والآفاق. لقد حاولت بالفعل GO المذكورة ، وأنا أحب ذلك تقريبا.

على الصواعق ، غامرت بإجراء مكالمة لخفض جانغو أكثر. فقط بعد خطاب توم كريستي - بدا النداء غير مقنع تمامًا.



يتكون اليومان التاليان من سباق العدو . أولئك الذين بقوا يعملون مع جانغو: فتحوا رسائل خطأ وقاموا بتصحيحها.



بعد التعديل الناجح ، يمكنك الصعود إلى أعلى القاعة بأكملها. كان تواتر الطفرات كل 5-7 دقائق.

للمتعة ، ما يحدث في سباق العدو
نظرت إلى أحد التعديلات المعتمدة: إصلاح الخطأ في تحويل رقم إلى سلسلة. ( # 30363 - لا تستخدم الترميز الأسي للملف العشري الصغير ) django / utils / numberformat.py
وشعرت بالحزن الشديد:
  • يحتوي التعديل على خطأ في نوع الإرجاع.
  • تمت إضافة تكراري غير الضرورية إلى التعليمات البرمجية.
  • لا يبدو أن المؤلف يفهم كيف يعمل الرقم Decimal .
  • لا تحقق الاختبارات كافة الحالات الحدودية ونوع البيانات التي تم إرجاعها.

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

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

من هنا تنشأ مشكلة أخرى ، لماذا Django هو ما هو عليه: غالبًا ما يصحح الأشخاص الأخطاء الذين لا يفهمون الخوارزمية أو الفكرة. هذا هو السبب في ظهور أخطاء جديدة أو طرق منحنى مثل GROUP_BY غير GROUP_BY في الطلب مع base_sort=True (لم يتم التحقق منه ، يمكن إصلاحه) ، أو الحلول غير المنطقية ، كما هو الحال مع formets والمضمنة في AdminModelForm.

بالإضافة إلى سباق السرعة ، كانت هناك بضع ورش عمل ، أعجبني الإعجاب بالبرنامج ZAP. لقد نجحنا في تهكم الموقع ، وتم العثور على ثغرات أمنية.

وفي كوبنهاغن ، كان الجو باردًا ومشمسًا.


زرت كريستيانيا وسرت عبر القنوات ونظرت إلى حورية البحر الصغيرة.







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



ملاحظة: يتم اتخاذ القرار بشأن مشروعي بينما يبقى برنامج وينباد في جانغو.
PPS أنا منفتح لمناقشة كل من المؤتمر وجانغو. اسأل إذا كان غير واضح.
PPPS من 20 حزيران (يونيو) 2019 في GeekBrains ، تبدأ دورة جانغو في قسم تطوير بيثون ، وسأذكر بالتأكيد النقاط المهمة التي تعلمتها في المؤتمر.

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


All Articles