يستخدم العديد من علماء البيانات المهنية دفتر Jupyter لإنجاز مهامهم اليومية ، من استكشاف البيانات الأولي إلى النماذج الأولية النموذجية. يعد تفاعل دفاتر الملاحظات مريحة بشكل خاص للبرمجة التي تركز على البيانات ، ويوفر طبيعتها الموثقة ذاتيًا دعمًا ممتازًا لتواصل النتائج التحليلية.
ومع ذلك ، غالبًا ما تم انتقاد دفتر Notebook Jupyter لإثارة عادات البرمجة السيئة ودعم أفضل ممارسات هندسة البرمجيات. للاستفادة من أجهزة الكمبيوتر المحمولة ، يجب أن يكون المستخدمون على دراية بمخاطرهم المشتركة وتعلم كيفية منعها.
في العمل السابق (راجع "استنباط أفضل الممارسات للتعاون مع دفاتر الملاحظات الحسابية" [1]) ، قدمنا كتالوجًا من 17 إرشادات تم تهديدها تجريبياً للاستخدام التعاوني لأجهزة الكمبيوتر المحمولة في سياق احترافي.
لتعزيز اعتماد هذه الممارسات الأفضل ، أنشأنا Pynblint ، وهي أداة تحليل ثابتة لأجهزة الكمبيوتر المحمولة Jupyter المكتوبة في Python. يكشف Pynblint عن عيوب دفتر محتملة وتوصي الإجراءات التصحيحية. يمكن تشغيله إما كتطبيق مستقل CLI أو كجزء من خط أنابيب CI/CD.
تم اشتقاق قواعد linting الأساسية لـ pynblint كتشغيل لأفضل الممارسات من كتالوجنا. ومع ذلك ، فإن بنية المكونات الإضافية لـ Pynblint تمكن مستخدميها بسهولة من تمديد المجموعة الأساسية للشيكات بقواعد التصميم الخاصة بهم.
بيثون 3.7+.
يمكن تثبيت Pynblint مع pip أو آخر PYPI Package Manager:
pip install pynblintبعد التثبيت ، نوصي باستكشاف واجهة سطر الأوامر للأداة:
pynblint --helpيمكن استخدام Pynblint لتحليل:
دفتر ملاحظات مستقل:
pynblint path/to/the/notebook.ipynbمستودع رمز يحتوي على أجهزة الكمبيوتر المحمولة:
pynblint path/to/the/project/dir/ (ربما مضغوط أيضًا كأرشيف .zip ):
pynblint path/to/the/compressed/archive.zipمستودع github العام يحتوي على أجهزة الكمبيوتر المحمولة (دعم المستودعات الخاصة موجود على خارطة الطريق الخاصة بنا؟):
pynblint --from-github https://github.com/collab-uniba/pynblintلمزيد من المعلومات حول الخيارات المتاحة ، يرجى الرجوع إلى وثائق المشروع.
تقوم Pynblint حاليًا بتنفيذ 22 قواعد linting:
هذه القواعد مستمدة من كتالوجنا الشامل لأفضل الممارسات لتطوير دفتر الملاحظات التعاوني [1]. فيما يلي حالة التنفيذ الحالية لقواعد الارتباط المرتبطة بكل ممارسات أفضل:
| أفضل الممارسات من [1] | حالة | تفاصيل |
|---|---|---|
| 1. استخدم التحكم في الإصدار | ✅ كاملة | تنفذ بالكامل |
| 2. إدارة تبعيات المشروع | ✅ كاملة | تنفذ بالكامل |
| 3. استخدام البيئات المستقلة | ⏳ في التقدم: | المخطط : اكتشاف - بيئات بيثون الظاهرية (على سبيل المثال ، تم إنشاؤها باستخدام venv أو pyenv أو conda )- بيئات الحاويات (على سبيل المثال ، Docker). |
| 4. ضع الواردات في البداية | ✅ كاملة | تنفذ بالكامل |
| 5. ضمان إعادة التنفيذ (إعادة تشغيل دفاتر الملاحظات من أعلى إلى أسفل) | ✅ كاملة | تنفذ بالكامل |
| 6 . | ؟ جزئي | الحالي : اكتشاف بنيات Modularization في دفاتر الملاحظات. المخطط : توصيات إعادة توصيات تركز على المعدل بناءً على الأنماط المكتشفة |
| 7. اختبر الكود الخاص بك | ؟ جزئي | التيار : الكشف عن بيانات التغطية على مستوى المستودع. المخطط : اكتشاف وحدات/وظائف الاختبار مستقلة عن أدوات التغطية |
| 8. قم بتسمية دفاتر ملاحظاتك باستمرار | ✅ كاملة | تنفذ بالكامل |
| 9. التمسك بمعايير الترميز | ؟ جزئي | التيار : اكتشاف الخلايا مع بناء جملة بايثون غير صالح. المخطط : تكامل بياضات Python مثل Pylint و Flake8 و Ruff |
| 10. استخدم المسارات النسبية | ⏳ في التقدم: | المخطط : تحديد حالات المسارات المطلقة في دفاتر الملاحظات والتوصية بالمسارات النسبية المقابلة |
| 11. قم بتوثيق تحليلك | ✅ كاملة | تنفذ بالكامل |
| 12 . | ✅ كاملة | تنفذ بالكامل |
| 13. حافظ على نظافة دفتر ملاحظاتك | ✅ كاملة | تنفذ بالكامل |
| 14. حافظ على موجز دفترك | ✅ كاملة | تنفذ بالكامل |
| 15. التمييز بين القطع الأثرية للإنتاج والتطوير | غير مخطط | يعتبر التنفيذ غير ممكن (انظر الملاحظة أدناه) |
| 16. اجعل دفتر ملاحظاتك متاحًا | ⏳ في التقدم: | المخطط : ستضمن Pynblint أن تتوفر دفاتر الملاحظات كما تم نشرها في تكوينها عبر الإنترنت |
| 17. اجعل بياناتك متوفرة | ✅ كاملة | تنفذ بالكامل |
ملاحظة : لن يتم تنفيذ أفضل الممارسات رقم 15 (التمييز بين القطع الأثرية للإنتاج/التطوير) حيث لا توجد معايير موضوعية لتحديد هذا التمييز من خلال التحليل الثابت لأجهزة الكمبيوتر المحمولة أو المستودعات.
هذا المشروع مرخص بموجب شروط ترخيص معهد ماساتشوستس للتكنولوجيا.
[1] Luigi Quaranta و Fabio Calefato و Filippo Lanubile. 2022. استنباط أفضل الممارسات للتعاون مع دفاتر الملاحظات الحسابية. بروك. ACM HUM.-COPPUT. يتفاعل. 6 ، CSCW1 ، المادة 87 (أبريل 2022) ، 41 صفحة. https://doi.org/10.1145/3512934