Coroid يحتوي على أربع وحدات عمل. تتداخل هذه الوحدات مع بعضها، واختيار الوحدة المناسبة يعتمد بشكل أساسي على حجم العمل ومدى ضرورة تنفيذه دفعة واحدة.
| وحدة | حجم | ينتهي بـ |
|---|---|---|
| مهمة | تغيير واحد | وحدة pull request واحدة |
| خطة | ميزة مقسمة إلى مراحل | وحدة pull request واحدة للخطة بأكملها |
| دورة عمل | كتلة عمل ممتدة عبر الزمن | ما تنتجه مهامها |
| مسار | تدفق عمل متوازي | الفرع الذي يتم دمج عمل الخطة فيه |
سبرينت · أسبوعان
المرحلة 1
مهمةنموذج الدفعمهمةالتحقق من البطاقةالمرحلة 2
مهمةملخص الطلبمهمة مستقلة
مهمةتصحيح تحليل التاريخمهمة
هي الوحدة الأساسية. مهمة واحدة تمثل وحدة عمل تنتج وحدة pull request واحدة، وهي ما يتم تنفيذه فعليًا — أما الخطط ودورات العمل والمسارات فهي كلها طرق لتنظيم المهام.
إذا كان بإمكانك وصف النتيجة في فقرة واحدة ويمكن للمراجع قراءة النتيجة في جلسة واحدة، فهي تُعتبر مهمة.
خطة
عندما يحتاج العمل إلى عدة تغييرات بترتيب معين، يتحول إلى خطة: مجموعة مرتبة من المهام مقسمة إلى مراحل، تقوم بالموافقة عليها قبل كتابة أي كود.
استخدم خطة عندما:
- تعتمد الخطوات اللاحقة على الخطوات السابقة
- ترغب في رؤية النهج الكامل قبل الالتزام بتنفيذ أي جزء منه
- يكون العمل عبارة عن ميزة وليس مجرد تغيير
الموافقة على الخطة تُعد نقطة التدخل الأقل تكلفة في النظام. رفض النهج هنا يكلف دقيقة واحدة؛ بينما رفضه بعد تنفيذ ثلاث مهام يكلف ثلاث عمليات تنفيذ.
كيف تصل الخطة إلى مستودعك
مهام الخطة لا تفتح كل منها وحدة pull request. تعمل هذه المهام على فروعها الخاصة وتندمج في مسار مشترك. فرع المسار، ويتم ترقية ذلك الفرع ليصبح طلب سحب واحد مقابل فرعك الأساسي.
فرع المسار
حيث يتم دمج عمل الخطة
طلب سحب واحد لـ pull request
الميزة المجتمعة، بعد مراجعة واحدة
main
فرعك الأساسي
مهمة لمشروع مختلف عن المسار؛ يتم ترقيتها بشكل مستقل، لذا يفتح خطة متعددة المشاريع طلب سحب واحد لـ pull request لكل مستودع.
وبالتالي، يمكنك مراجعة الميزة المجمعة دفعة واحدة، مع رؤية كل التغييرات أمامك، بدلاً من الموافقة على مراحل ناقصة بشكل منفصل.
الاستثناء هو العمل الذي يشمل عدة مشاريع: فالمهمة التي تنتمي إلى مشروع مختلف عن المسار تُرقى بشكل منفصل، لذا تنتج خطط متعددة المشاريع pull request لكل مستودع. هذا أمر لا مفر منه — فـ pull request لا يمكن أن يمتد عبر مستودعين.
دورة عمل
حاوية محددة زمنياً للعمل، مع مقاييسها وجدولها الزمني الخاص. تُجيب دورات العمل على سؤال «ما الذي سنقوم به خلال هذه الفترة، وما مدى نجاحه؟» بدلاً من «كيف يتم بناء هذه الميزة؟».
استخدم دورة عمل عند تنسيق عمل الفريق على مدى فترة زمنية. استخدم خطة عند تقسيم ميزة واحدة. هما ليسا بديلين لبعضهما — يمكن أن تحتوي دورة عمل على مهام تنتمي إلى عدة خطط.
مسار
المسار هو المكان الذي تُدمج فيه الأعمال المتوازية للخطة. تستهدف المهام فرع المسار بدلاً من فرعك الأساسي، حتى يتمكن عدة وكلاء من التقدم في نفس الوقت دون تضارب، ويتم ترقية النتيجة المجمعة كـ pull request واحد بمجرد أن تستوفي الشروط.
بينما تتعلق الخطة بـ الترتيب، فإن المسار يتعلق بـ التزامن و الدمج. إذا كان لديك القدرة على تشغيل عدة وكلاء وعمل لا يتطلب تنفيذًا تسلسليًا صارمًا، فالمسار هو ما يسمح لهم بالعمل معًا والوصول في النهاية كتغيير قابل للمراجعة واحد.
الاختيار
السؤال ليس حول عدد طلبات السحب التي تريدها — فكل من المهمة والخطة تصل كوحدة واحدة. بل يتعلق بمدى حاجة العمل إلى حدوث تغييرات قبل أن تكون النتيجة جاهزة للمراجعة.
- هل هذا تغيير واحد يمكن للمراجع قراءته في جلسة واحدة؟ نعم ← مهمة.
- هل يحتاج إلى عدة تغييرات متسلسلة قبل أن يكون ذا معنى ككل؟ نعم ← خطة. يتولى مسارها تشغيل الأجزاء بشكل متوازٍ حيثما يسمح ذلك.
تقف دورات العمل إلى جانب كل هذا كطبقة للتخطيط والإبلاغ.
أين يندرج مفهوم الإصدار
إن الإصدار هو سجل التسليم بعد عملية الدمج، وليس مهمة أو خطة أو دورة تطويرية أو مسارًا آخر. فهو يحدد التزامًا معينًا في المستودع، ويتحقق من أن العمل المخطط له موجود ضمن ذلك الالتزام، ويتابع محاولات النشر عبر كل بيئة. قد يحتوي إصدار واحد على عمل من عدة دورات تطويرية؛ وقد تنتج دورة تطويرية واحدة عدة إصدارات. إن ترقية المسار تفتح pull request، لكنها لا تنشئ شحنة مُحققة بشكل تلقائي.
ما الذي يحدد عدد العمليات التي تعمل في آنٍ واحد؟
ليس الهيكل، بل السعة. فخطة تحتوي على عشر مهام قابلة للتنفيذ بالتوازي ومكان واحد لوكيل تنفيذ ستجعلها تعمل واحدة تلو الأخرى. انظر إلى السعة ومواقع وكيل التنفيذ.