→ كل صفحات التوثيق التوثيق · حُدّث في 2026-07-05

نظام N2

N2، عُقد مصنوعة من عُقد: نظام التركيب في Flowzart، وسجلات العُقد لمشاركة ما تبنيه.

N2: عُقد مصنوعة من عُقد

N2 (نظام Node-Node) هو جانب التركيب في Flowzart: يمكن لتدفق العمل أن يصبح عقدة، وكل عقدة تُبنى بهذه الطريقة مركّبة بدورها من عُقد أصغر. والاسم هو الفكرة مرفوعة إلى الأس الثاني: عُقد، مصنوعة من عُقد.

أسهل طريقة لتصوّر ذلك هي الدمية الروسية المتداخلة (Matrioshka). افتح الدمية الخارجية تجد أخرى بداخلها، افتحها تجد أخرى. ولوحة الرسم في Flowzart تعمل بالطريقة نفسها. فالعقدة على لوحة الرسم الخارجية قد تكون تدفق عمل مكتملاً بذاته، له عُقده ومنطقه ومخرجاته.

شاهد تشريح العقدة ←: تفكيك تفاعلي لعقدة: انقر على كل منفذ وحقل وسر وزر لترى أي عقدة داخلية تضيفه.

كل مستوى من التداخل مستقل. فتدفق العمل الخارجي لا يهمه كيف بُني الداخلي؛ بل يهمه فقط ما يدخل وما يخرج. وكل مستوى يبقى قابلاً للفحص: فتح عقدة N2 يكشف لوحة رسمها الداخلية تماماً كما لو كانت المستوى الأعلى. لا شيء مخفي. لا شيء غامض.

وهذا مهم لسببين:

  • تركيب دون تعقيد. تدفق العمل المكوّن من مئة عقدة في مستوى واحد يصعب صيانته. أما التدفق نفسه مقسّماً إلى أجزاء متداخلة (جزء للجلب، وجزء للتحويل، وجزء للتسليم) فيمكن استيعابه بسهولة. وكل جزء وحدة تستطيع التفكير فيها منفردة.
  • إعادة استخدام دون تكرار. يمكن حفظ تدفق العمل المتداخل كعقدة ووضعه في تدفقات عمل أخرى، والتعامل معه كوحدة واحدة قابلة للتركيب بدلاً من عُقد منسوخة ومبعثرة في ملفات مختلفة. (أما هل تنتقل التعديلات على تدفق العمل الداخلي إلى كل مكان يُستخدم فيه، فمسألة لم تُحسم بعد؛ انظر «العمل مع N2» أدناه.)

سجلات العُقد

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

ويترتب على ذلك ثلاثة أمور:

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

مشاركة الإصلاحات مع المصدر

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

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

العمل مع N2

من تدفق العمل إلى العقدة: الـ Contract. يصبح تدفق العمل عقدة حين يعلن Contract: مواصفة للواجهة العامة لتدفق العمل (مدخلاته ومخرجاته) تتعامل معها بقية لوحة الرسم على أنها سطح العقدة. وما إن يُعلَن الـ Contract حتى يتولى نظام ImEx (الاستيراد والتصدير) الباقي: يمكن تصدير تدفق العمل كعقدة، واستيراده في تدفقات عمل أخرى، وتركيبه إلى جانب أي عقدة مدمجة.

يستطيع تدفق العمل الواحد أن يعلن أكثر من Contract. وكل Contract يُصدَّر كعقدة منفصلة. فتدفق عمل واحد حسن التصميم قد ينتج عائلة من العُقد المخصصة المترابطة، لكل منها واجهة مختلفة فوق مخطط داخلي مشترك. وهذا مفيد حين تتشارك عدة عُقد معظم منطقها وتختلف في المدخلات والمخرجات التي تكشفها.

إعادة الاستخدام دون إعادة الإعلان. داخل تدفق العمل الذي يقف خلف الـ Contract، تركّب بلوحة العُقد نفسها كأي تدفق عمل آخر، بما في ذلك العُقد التي عرّفتها في مكان آخر أو استوردتها عبر ImEx. لا تعيد إعلانها؛ بل تشير إليها. فالعقدة التي تبنيها تستطيع استخدام عُقد N2 أخرى بنيتها من قبل، لتبني قدرات أعلى من قدرات أدنى دون تكرار المنطق. وهذا ما يجعل أثر السجلات مضاعفاً لا مجرد إضافة: فكل عقدة في السجل تستطيع التركيب مع كل عقدة أخرى، ويبقى المخطط الناتج قابلاً للفحص كما كان الأصل.

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

العمل مع السجلات

نشر عقدة. انقر بزر الفأرة الأيمن على أي عقدة تملكها على لوحة الرسم واختر «Publish» (نشر). يسألك مربع حوار إلى أي سجل تريد الإرسال. إذا كان السجل ينشر مباشرة، تصل العقدة إليه فوراً؛ وإذا كان يتطلب موافقة، يصبح إرسالك طلب تغيير يقبله أحد المراجعين قبل أن تُتاح العقدة. وفي الحالتين، يستطيع كل من لديه صلاحية الوصول إلى ذلك السجل تثبيتها ما إن تصل إليه.

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

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

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

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