سؤال

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

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

لذلك سأكون مهتمًا بالآراء في هذه الأمور:

  1. هل يجب كتابة كود الشبكة الجديد (باستثناء أدوات سطر الأوامر الصغيرة) باستخدام Twisted؟
  2. هل يمكنك مزج Twisted أو http2lib أو كود المقبس في نفس المشروع؟
  3. هل تعتبر Twisted python بالنسبة لمعظم المكتبات (فهي أكثر تعقيدًا من البدائل، وتقدم تبعية لحزمة غير قياسية...)؟

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

هل كانت مفيدة؟

المحلول

  1. هل يجب كتابة كود الشبكة الجديد (باستثناء أدوات سطر الأوامر الصغيرة) باستخدام Twisted؟
    • ربما.هذا يعتمد حقا.في بعض الأحيان يكون من السهل جدًا تضمين مكالمات الحظر في سلسلة الرسائل الخاصة بها.يعد Twisted مفيدًا لرمز الشبكة واسع النطاق.
  2. هل يمكنك مزج Twisted أو http2lib أو كود المقبس في نفس المشروع؟
    • بالتأكيد.لكن تذكر فقط أن Twisted عبارة عن خيط مفرد، وأن أي مكالمة حظر في Twisted ستمنع المحرك بأكمله.
  3. هل تعتبر Twisted python بالنسبة لمعظم المكتبات (فهي أكثر تعقيدًا من البدائل، وتقدم تبعية لحزمة غير قياسية...)؟
    • هناك العديد من المتعصبين الملتويين الذين سيقولون إنه ينتمي إلى مكتبة بايثون القياسية.ولكن يمكن للعديد من الأشخاص تنفيذ تعليمات برمجية مناسبة للشبكات باستخدام غير متزامن/غير متزامن.

نصائح أخرى

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

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top