بايثون للمهندسين - دورة 65000 فرك. من Slurm، تدريب لمدة 3 أشهر، التاريخ 15 يناير 2024.
Miscellanea / / November 27, 2023
Techlead، مهندس بيانات في Skyeng / ex Slurm، ISPsystem، Grid Dynamics
ريال سعودى. مهندس برمجيات في اختبار، Auriga، على سبيل المثال ISPsystem
#1: بناء جملة وهياكل بايثون الأساسية
السبب: إن تعلم فهم منطق برامج بايثون، وكذلك كتابة برامج بسيطة، هي المهمة الأكثر أهمية. "رائع" إذا لم تكن على دراية ببناء جملة بايثون.
- أنواع البيانات ومتغيراتها، أنواع البيانات القابلة للتغيير/غير القابلة للتغيير والبسيطة/المركبة، تقنيات تصحيح الأخطاء.
- العبارة الشرطية - العوامل المنطقية، والشروط البسيطة، والشروط المتداخلة، واستبدال عبارة التبديل.
- الحلقات الأساسية - حلقات while وfor، والمكررات، ومقاطعات الحلقة.
- الوظائف وطرق السلاسل والقوائم والقواميس.
- توليد ومعالجة الاستثناءات.
الممارسة: مجموعة من المهام الصغيرة الصغيرة لكل درس.
#2: تحسين كفاءة بايثون: التحسينات وOOP
السبب: دعونا نتقن ميزات لغة بايثون - فهي تتميز بالبساطة والعملية. وسنكشف أيضًا عن معنى تلك الحروف الثلاثة (نحن نتحدث عن OOP) بدون نظرية أكاديمية وبهدف واضح
- العمل المتقدم مع الحلقات - بيان العائد والمولدات، رؤى حول الحلقات في بايثون، بيان آخر في حلقة، تحسين حلقات الفهم، إلخ.
- أنواع خاصة من الهياكل: المجمدة، الافتراضية، الخ.
- مفاهيم OOP الأساسية: الفئات، مثيلات الطبقة، التغليف، الميراث وتعدد الأشكال.
- إنشاء مديري السياق لأنواعك: the with build.
الممارسة: مجموعة من المهام الصغيرة الصغيرة لكل درس.
الممارسة المتقدمة: تدقيق استخدام الخدمة.
بدأ CTO يشك في أن بعض الخدمات لم تعد تستخدم من قبل الفرق. المشكلة هي أن وحدة مراقبة الخدمات المستخدمة لم يتم تحديثها خلال السنوات العشر الماضية: لا يحدث ذلك يمكن تحميل البيانات المجمعة، وتنسيق القيم التي تم إرجاعها لا يتوافق مع القيم المقبولة بشكل عام المعايير. لقد تم اختيارك لاستخراج المقاييس التي تم التقاطها، وتجميعها حسب النوع والفريق، وتقديم هذه المعلومات إلى CTO لإجراء تقييم أولي لنطاق المشكلة.
#3: اتصالات الشبكة
السبب: تحتوي كل خدمة تقريبًا على واجهة للاتصال عبر بعض بروتوكولات الشبكة. وبدون الاتصال يكون التفاعل مستحيلا. لحسن الحظ، يحتوي نظام Python البيئي على وحدات عميل لأي بروتوكول تقريبًا.
- حزمة Pip وتثبيت وحدات الطرف الثالث.
- وحدة Paramiko لتنفيذ الأوامر عبر SSH.
- وحدة الطلبات لتقديم طلبات HTTP.
- نظرة عامة على وحدات العمل مع قواعد البيانات ووسطاء الرسائل.
يمارس. يقدم فريق التطوير منهجية جديدة: إذا سمحت بحدوث تنبيه، فستتلقى مهمة. يبحث النظام الفرعي التحليلي عن الأخطاء المحددة فقط ويرسل رسائل عنها إلى وسيط رسائل كافكا. مهمتك هي إكمال دورة إعادة الأخطاء إلى المطورين: يجب على المستهلك الخاص بك إنشاء المهام تلقائيًا بالوصف والأولوية المطلوبة في Trello.
رقم 4: العمل مع النص بتنسيقات مختلفة
السبب: الاتصال بالخدمة هو نصف المعركة فقط. والنصف الآخر هو تبادل المعلومات. والمعلومات غالبًا ما تكون عبارة عن مجموعة من الأحرف النصية بتنسيق معين. سوف تساعدك الوحدات على فك التشفير والتشفير. لا تحتاج إلى كل المعلومات؟ ستساعدك التعبيرات العادية على استخراج ما هو مهم وتجاهل الباقي.
- وحدة إعادة والتعبيرات العادية.
- وحدات للعمل مع البيانات بتنسيقات مختلفة: القيم المنفصلة، json، yaml، xml.
- باستخدام وسائط سطر الأوامر: وحدة argparse.
الممارسة: إنشاء مصدر لبيانات استخدام الخدمة.
أثناء تدقيق استخدام الخدمات، قمت بتحديد معلومات مهمة للشركة، حتى أن المدير التنفيذي أصبح مهتمًا بها. تقرر تحليل الأموال المفقودة وعدم السماح بحدوث مثل هذه المواقف مرة أخرى. للقيام بذلك، تحتاج إلى منح المحللين أداة للحصول على البيانات حتى يتمكنوا من إعداد التقارير. تكمن المشكلة في أن وحدة المراقبة تُرجع حدود الخدمة لطلب منفصل بتنسيقات yaml، ويتم إرجاع أسعار الخدمات بواسطة نظام الفوترة بتنسيق xml. من الضروري دمج البيانات الخاصة بالحمل الحالي مع الحدود والأسعار. طلب قسم التحليلات معلومات مجمعة بتنسيق JSON مع إمكانية تحديد الفاصل الزمني وخطوة التجميع.
رقم 5: التفاعل مع نظام التشغيل
السبب: لا تحتاج أهمية التفاعل مع نظام التشغيل إلى مزيد من التوضيح. كيفية ربطها مع بايثون موجودة في هذا الدرس.
- قراءة وكتابة الملفات.
- وحدة نظام التشغيل - قراءة متغيرات البيئة، والعمل مع الدلائل والحقوق، والعمل مع العمليات.
- وحدة العمليات الفرعية للتفاعل التفاعلي مع العمليات.
الممارسة: توفير الوصول التلقائي إلى الخوادم.
خلال حملة التخلي عن الخدمات غير المستخدمة، نشأ موقف غريب: خادم بقالة تم إغلاق الفرق، لكن فريق البنية التحتية استخدمها بشكل دوري كمضيف لـ التدريج. اتضح أن فريق المنتج لم يستخدمه لأن شخصًا ما كان يقوم بشكل دوري باستبدال إعداداته بإعداداته الخاصة. تقرر الآن تخصيص المورد لأعضاء فريق واحد فقط، وستساعد الأتمتة على تجنب الأخطاء. أنت، بصفتك الشخص الذي بدأ هذه الفوضى، تحتاج إلى كتابة وكيل يقوم باستقصاء نظام إدارة الحقوق بشكل دوري و قم بإجراء تغييرات على تكوين الحقوق داخل الخدمات المثبتة، وإذا لزم الأمر، قم بمنح الخدمات أمرًا لإعادة القراءة التكوينات.
رقم 6: مشغل K8S في بايثون (بث الترميز المباشر)
13 أكتوبر الساعة 19:00
السبب: دعنا نقوم بتوسيع إمكانيات K8S لتناسب مهامك.
رقم 7: كتابة الوحدة النمطية الخاصة بنا لـ Ansible
السبب: يعد Ansible نظامًا قويًا لإدارة التكوين، ويمكن توسيعه باستخدام وحداته الخاصة. يا لها من مصادفة أن معظم الوحدات مكتوبة بلغة بايثون.
- كتابة الوحدات النمطية الخاصة بك لـ Ansible.
الممارسة: كتابة وحدة إدارة الحقوق.
منذ زمن طويل، في مجرة بعيدة جدًا، قمت بالفعل بكتابة وكيل لإصدار حقوق خدمات معينة. لقد حان الوقت لتغيير السحب إلى الدفع وسيساعدك Ansible في ذلك. كل ما تحتاجه هو مجرد وحدة.
رقم 8: حالات إنشاء واستخدام واجهة برمجة التطبيقات (API) الخاصة بك
السبب: يعد إعداد التعليمات البرمجية للنشر أحد أهم المهام. تساعد البرامج النصية الخاصة بنا لخطوط الأنابيب المسرحية في جعل هذه العملية أكثر مرونة وملاءمة.
- إنشاء REST API في Flask.
- إنشاء مُصدر بروميثيوس الخاص بك باستخدام Prometheus Python Client وFlask.
الممارسة: تحميل البيانات إلى نظام مراقبة تابع لجهة خارجية.
تجاوزت تكاليف المعدات غير المستخدمة حتى التوقعات المتشائمة. الآن أصبح لدى الفريق الهندسي مجال آخر من المسؤولية وهو مراقبة الخدمات غير المستخدمة. للقيام بذلك، تحتاج إلى استطلاع نظام الفوترة بشكل دوري من خلال البرنامج النصي الخاص بك وتمرير البيانات إلى Prometheus. تنسيق البيانات المستلمة لا يزال غير مناسب. تحتاج إلى تنفيذ موصل. وفي الوقت نفسه، اكتب نقطة نهاية حتى يكون لدى قسم التحليلات دائمًا معلومات محدثة بتنسيق JSON في متناول اليد.
جلسة AMA + اجتماع غير رسمي مع المتحدثين في الدورة
28 أكتوبر الساعة 19:00
نجتمع لمناقشة مخاوف المشاركين في الدورة.
#9: اختبار واجهة برمجة التطبيقات الخاصة بتطبيقك
السبب: في بعض الأحيان يكون عدم وجود تعليمات برمجية أفضل من عدم وجود تعليمات برمجية غير مستقرة. لكي لا تخاف من كسر التعليمات البرمجية الخاصة بك، تحتاج إلى كتابة الاختبارات.
- أنواع الاختبارات: الوحدة والتكامل والنهاية إلى النهاية.
- نظرة عامة على وحدة pyhamcrest ومطابقاتها.
- الهندسة المعمارية وقدرات pytest.
- استخدام pytest وpyhamcrest لكتابة اختبارات الوحدة
التدريب العملي: كتابة الاختبارات باستخدام pytest وpyhamcrest لواجهة برمجة التطبيقات (API) الخاصة بك.
رقم 10: التفاعل مع أنظمة CVS و DevOps
- استخدام وحدات الطرف الثالث باستخدام مثال التكامل في خطوط أنابيب Gitlab.
- استخدام pygit للحصول على معلومات حول تغييرات التعليمات البرمجية.
الممارسة: إنشاء سجل تغيير من الالتزامات.
أعجب الفريق الهندسي بحلولك كثيرًا لدرجة أنهم استلهموا منها وبدأوا في كتابة حلولهم الخاصة. لكن الناس ينسون دائمًا كتابة أوصاف الإصدارات. ولتحقيق ذلك، قرر الفريق تنفيذ اتفاقيات الالتزام وإنشاء سجلات التغيير مباشرةً من عمليات الالتزام متى دمج فرع التطوير مع الإصدار، وإذا كان اسم الالتزام لا يتوافق مع اتفاقيات الالتزام، فلا تسمح بطلب الدمج حتى دمج.
#11: Chatops مع Errbot في بايثون
السبب: لا تتعلق مشكلات العمل الرئيسية بأداء التطبيق أو حتى الأخطاء التي تحدث في التعليمات البرمجية. تنشأ أخطر المشاكل عندما يكون التواصل بين الموظفين غير فعال. Chatops هي إحدى الطرق لحل هذه المشكلة.
- مفهوم Chatops: ما هي المشاكل التي يحلها Chatops؟
- إطار عمل Errbot: التثبيت وإنشاء قالب البرنامج المساعد الأساسي والتكوين والتشغيل.
- إطار عمل Errbot: إنشاء مكون إضافي خاص بك لـ Chatops مع خيارات متنوعة لمعالجة الرسائل.
المشروع النهائي
مراجعة الموعد النهائي والحماية للمهتمين
بعد الدورة، سيكون لديك مشروع على Git: يمكنك أتمتة مهمة عملك أو تنفيذ أحد الخيارات المقترحة.
يمكن استخدام المشروع النهائي كحالة محفظة ويظهر عند التقدم لوظيفة.