التخريب رشيقة استراتيجية المتفرعة
سوبفيرزيون رشيقة استراتيجية المتفرعة
تمت كتابة هذه الوثائق لوصف سلسلة 1.7.x من أباتشي "ў SubversionВ®. إذا كنت تقوم بتشغيل إصدار مختلف من سوبفيرزيون، يتم تشجيعك بشدة لزيارة سفنبوك / وبدلا من ذلك راجع إصدار هذه الوثائق المناسبة لإصدار سوبفيرزيون الخاص بك.
أنماط المتفرعة المشتركة.
هناك العديد من الاستخدامات المختلفة للتفرع و سفن دمج، ويصف هذا القسم الأكثر شيوعا.
وغالبا ما يستخدم التحكم في الإصدار لتطوير البرمجيات، لذلك هنا نظرة خاطفة سريعة على اثنين من أنماط المتفرعة / دمج الأكثر شيوعا المستخدمة من قبل فرق المبرمجين. إذا كنت لا تستخدم سوبفيرزيون لتطوير البرمجيات، فلا تتردد في تخطي هذا القسم. إذا كنت مطور برامج باستخدام التحكم في الإصدار للمرة الأولى، فاحرص على إيلاء اهتمام وثيق، لأن هذه الأنماط غالبا ما تعتبر أفضل الممارسات من قبل الناس ذوي الخبرة. هذه العمليات ليست محددة ل سوبفيرزيون. فهي تنطبق على أي نظام تحكم الإصدار. ومع ذلك، قد يساعدك على رؤيتها في مصطلحات سوبفيرزيون.
الافراج عن الفروع.
معظم البرامج لديها دورة حياة نموذجية: رمز، اختبار، الإفراج، تكرار. هناك مشكلتان في هذه العملية. أولا، يحتاج المطورون للحفاظ على كتابة ميزات جديدة في حين أن فرق ضمان الجودة تأخذ وقتا لاختبار إصدارات مستحيلة من البرنامج. لا يمكن أن يتوقف العمل الجديد أثناء اختبار البرنامج. ثانيا، يحتاج الفريق دائما تقريبا لدعم كبار السن، إصدارات الإصدارات من البرامج؛ إذا تم اكتشاف خلل في أحدث التعليمات البرمجية، فمن الأرجح موجود في الإصدارات التي تم إصدارها أيضا، والعملاء سوف ترغب في الحصول على هذا الإصلاح علة دون الحاجة إلى الانتظار لإصدار جديد رئيسي.
وإليك حيث يمكن للتحكم في الإصدار المساعدة. يبدو الإجراء النموذجي كما يلي:
يلتزم المطورون بجميع الأعمال الجديدة للجذع. وتلتزم التغييرات يوما بعد يوم إلى / الجذع: الميزات الجديدة، وإصلاح الأخطاء، وهلم جرا.
يتم نسخ الجذع إلى فرع الإفراج ”. عندما يعتقد الفريق أن البرنامج جاهز للإفراج (مثلا، الإصدار 1.0)، / قد يتم نسخ الجذع إلى /branches/1.0.
وتواصل الفرق العمل بالتوازي. يبدأ فريق واحد اختبار صارم لفرع الإفراج، في حين يواصل فريق آخر عمل جديد (مثلا، للإصدار 2.0) على / الجذع. إذا تم اكتشاف الأخطاء في أي مكان، يتم استصلاح الإصلاحات ذهابا وإيابا حسب الضرورة. ومع ذلك، في مرحلة ما، حتى تلك العملية توقف. الفرع هو “ المجمدة ” للاختبار النهائي الحق قبل الإفراج.
يتم وضع علامة على الفرع وأفرج عنه. عند اكتمال الاختبار، يتم نسخ /branches/1.0 إلى /tags/1.0.0 كقطة مرجعية. يتم تجميع العبوة وإصدارها للعملاء.
يتم الحفاظ على فرع مع مرور الوقت. في حين يستمر العمل على / الجذع للإصدار 2.0، لا تزال إصلاحات الشوائب إلى استدار من / الجذع إلى /branches/1.0. عندما تراكمت ما يكفي من إصلاحات الشوائب، قد تقرر إدارة القيام 1.0.1 الإفراج: /branches/1.0 يتم نسخ إلى /tags/1.0.1، ويتم تعبئتها وإصدارها.
وتكرر هذه العملية برمتها مع نضوج البرنامج: عند اكتمال العمل 2.0، يتم إنشاء فرع الإصدار 2.0 الجديد، واختبارها، الموسومة، وأفرج عنه في نهاية المطاف. بعد بضع سنوات، ينتهي المستودع مع عدد من فروع الافراج في وضع Ђњ صيانة в،، وعدد من العلامات تمثل الإصدارات النهائية التي تم شحنها.
فروع الميزة.
وهناك فرع ميزة هو نوع من الفرع الذي كان المثال المهيمن في هذا الفصل (واحد كنت قد عملت على حين سالي تواصل العمل على / الجذع). انها فرع مؤقت أنشئت للعمل على تغيير معقد دون التدخل في استقرار / الجذع. على عكس فروع الإصدار (التي قد تحتاج إلى دعم إلى الأبد)، ميزة فروع ولدت، وتستخدم لفترة من الوقت، اندمجت إلى الجذع، ومن ثم حذف في نهاية المطاف. لديهم فترة محدودة من الفائدة.
مرة أخرى، تختلف سياسات المشروع بشكل كبير فيما يتعلق بالضبط عندما يكون من المناسب إنشاء فرع ميزة. بعض المشاريع أبدا استخدام فروع ميزة على الإطلاق: يرتكب إلى / الجذع هي مجانية للجميع. ميزة لهذا النظام هو أنه بسيط "لا أحد يحتاج إلى معرفة عن المتفرعة أو الاندماج. العيب هو أن رمز الجذع غالبا ما تكون غير مستقرة أو غير صالحة للاستعمال. مشاريع أخرى تستخدم فروع إلى أقصى الحدود: أي تغيير ملتزم من أي وقت مضى إلى الجذع مباشرة. حتى يتم إنشاء أكثر التغييرات تافهة على فرع قصير العمر، واستعرض بعناية، ودمجها في الجذع. ثم يتم حذف الفرع. هذا النظام يضمن جذع استثنائي وقابل للاستخدام بشكل استثنائي في جميع الأوقات، ولكن على حساب النفقات العامة عملية هائلة.
معظم المشاريع تأخذ نهج منتصف الطريق. وهم يصرون عادة على أن / جذع تجميع وتمرير اختبارات الانحدار في جميع الأوقات. لا يتطلب فرع الميزة إلا عندما يتطلب التغيير عددا كبيرا من عمليات زعزعة الاستقرار. والقاعدة الجيدة هي أن نسأل هذا السؤال: إذا عمل المطور لعدة أيام في عزلة ثم ارتكب التغيير الكبير في آن واحد (بحيث لم يتزعزع الجذع أبدا)، فهل سيكون التغيير كبيرا جدا في المراجعة؟ إذا كان الجواب على هذا السؤال هو Ђњ نعم، Ђќ يجب أن يتم تطوير التغيير على فرع الميزة. كما المطور يرتكب تغييرات تدريجية إلى الفرع، ويمكن مراجعتها بسهولة من قبل أقرانهم.
وأخيرا، هناك مسألة كيفية الحفاظ على أفضل فرع ميزة في Ђњ مزامنة ” مع الجذع مع تقدم العمل. كما ذكرنا سابقا، هناك خطر كبير للعمل على فرع لأسابيع أو أشهر. التغييرات الجذع قد تستمر في صب في، إلى النقطة التي خطين التنمية تختلف كثيرا بحيث قد تصبح كابوسا تحاول دمج فرع العودة إلى الجذع.
ومن الأفضل تجنب هذا الوضع عن طريق دمج التغييرات الجذع بانتظام إلى الفرع. تشكل سياسة: مرة واحدة في الأسبوع، ودمج قيمة الأسبوع الماضي من التغييرات الجذع إلى الفرع.
عندما كنت في نهاية المطاف على استعداد لدمج Ђњ فرع ميزة Ђњ متزامنة العودة إلى الجذع، تبدأ من خلال دمج النهائي من أحدث التغييرات الجذع إلى الفرع. عندما يتم ذلك، أحدث إصدارات الفرع والجذع متطابقة تماما باستثناء التغييرات فرع الخاص بك. ثم دمج مرة أخرى مع الخيار --reintegrate:
طريقة أخرى للتفكير في هذا النمط هو أن المزامنة الأسبوعية من الجذع إلى فرع هو مماثل لتشغيل التحديث سن في نسخة عمل، في حين أن الخطوة دمج النهائية هي مماثلة لتشغيل سن ارتكاب من نسخة العمل. بعد كل شيء، ما هو أيضا نسخة عمل ولكن فرع خاص الضحلة جدا؟ إنه فرع قادر على تخزين تغيير واحد فقط في كل مرة.
كنت تقرأ النسخة التحكم مع التخريب (ل سوبفيرزيون 1.7)، من قبل بن كولينز-سوسمان، بريان W. فيتزباتريك، و C. مايكل بيلاتو.
ميزة المتفرعة طريقك إلى العظمة.
أو مهمة المتفرعة طريقك إلى هناك. أو الافراج عن المتفرعة. اختار أنت.
المدرب رشيق.
تدعم جميع أنظمة التحكم في الإصدار اليوم خطوطا مستقلة من العمل تنبع من قاعدة مدونة مركزية واحدة. اعتمادا على نظام التحكم في الإصدار الخاص بك، الفرع الرئيسي يمكن أن يسمى الرئيسي، الخط الرئيسي، الافتراضي، أو الجذع. يمكن للمطورين إنشاء فروعهم الخاصة من خط التعليمات البرمجية الرئيسية والعمل بشكل مستقل إلى جانب ذلك.
لماذا تهتم بالتفرع؟
التفرع يسمح فرق من المطورين للتعاون بسهولة داخل قاعدة رمز مركزي واحد. عندما يقوم مطور البرامج بإنشاء فرع، يقوم نظام التحكم في الإصدار بإنشاء نسخة من قاعدة التعليمات البرمجية في تلك المرحلة الزمنية. التغييرات في الفرع لا تؤثر على المطورين الآخرين في الفريق. هذا أمر جيد، من الواضح، لأن الميزات قيد التطوير يمكن أن تخلق حالة من عدم الاستقرار، والتي من شأنها أن تكون مزعجة للغاية إذا كان كل عمل يحدث على خط التعليمات البرمجية الرئيسية. لكن الفروع لا تحتاج إلى العيش في الحبس الانفرادي. يمكن للمطورين بسهولة سحب أسفل التغييرات من المطورين الآخرين للتعاون على الميزات وضمان فرع خاص لا تباعد بعيدا جدا عن سيد.
بروتيب: الفروع ليست جيدة فقط للعمل ميزة. يمكن للفروع عزل الفريق من التغييرات المعمارية الهامة مثل تحديث الأطر، والمكتبات الشائعة، وما إلى ذلك.
ثلاثة استراتيجيات المتفرعة لفرق رشيقة.
وغالبا ما تختلف النماذج المتفرعة بين الفرق، وهي موضوع الكثير من النقاش في مجتمع البرمجيات. موضوع واحد كبير هو كم يجب أن يبقى العمل في فرع قبل الحصول على اندمجت مرة أخرى إلى سيد.
الافراج عن المتفرعة.
الإفراج عن المتفرعة يشير إلى فكرة أن يتم تضمين الإصدار تماما داخل فرع. وهذا يعني أنه في وقت متأخر من دورة التطوير، سيقوم مدير الإصدار بإنشاء فرع من سيد (على سبيل المثال، "1.1 فرع التنمية"). جميع التغييرات في الإصدار 1.1 تحتاج إلى تطبيق مرتين: مرة واحدة إلى فرع 1.1 ثم إلى خط التعليمات البرمجية الرئيسية. العمل مع فرعين هو عمل إضافي للفريق وأنه من السهل أن ننسى أن دمج لكلا الفرعين. الافراج عن فروع يمكن أن يكون غير عملي ويصعب إدارة العديد من الناس يعملون على نفس الفرع. لقد شعرنا جميعا الألم من الاضطرار إلى دمج العديد من التغييرات المختلفة على فرع واحد. إذا كان يجب عليك القيام فرع الإفراج إنشاء فرع أقرب إلى الإصدار الفعلي ممكن.
تحذير: الإصدار المتفرعة هو جزء مهم من دعم برنامج فيرسيونيد خارج في السوق. قد يكون منتج واحد عدة فروع الافراج (على سبيل المثال، 1.1، 1.2، 2.0) لدعم التنمية المستدامة. ضع في اعتبارك أنه قد يلزم دمج التغييرات في الإصدارات السابقة (أي 1.1) مع الفروع التي تم إصدارها لاحقا (بمعنى، 1.2، 2.0). راجع برنامج الويبينار أدناه لمعرفة المزيد حول إدارة فروع الإصدار باستخدام جيت.
ميزة المتفرعة.
وقد انتقلت العديد من الفرق رشيقة تبحث عن نموذج متفرع أكثر مرونة من الإفراج المتفرعة إلى ميزة المتفرعة. يحتفظ نموذج فرع الميزة بكل التغييرات الخاصة بخاصية داخل الفرع. عندما يتم اختبار الميزة تماما والتحقق من صحتها بواسطة الاختبارات الآلية، ثم يتم دمج الفرع إلى سيد.
غالبا ما تقترن فروع الميزة بأعلام الميزة & كوت؛ تبديل & كوت؛ التي تمكن أو تعطيل ميزة داخل المنتج. هذا يجعل من السهل لنشر التعليمات البرمجية إلى سيد والتحكم عندما يتم تنشيط الميزة، مما يجعل من السهل لنشر التعليمات البرمجية في البداية قبل تعرض هذه الميزة للمستخدمين النهائيين.
بروتيب: فائدة أخرى من الأعلام ميزة هو أن رمز يمكن أن تبقى ضمن بناء ولكن غير نشط في حين انها في التنمية. إذا كان هناك شيء يذهب أوري عند تمكين الميزة، يمكن لمسؤول النظام إعادة العلم ميزة والعودة إلى حالة جيدة معروفة بدلا من أن يكون لنشر بناء جديد.
المهام المتفرعة.
في أتلاسيان، نركز على سير عمل فرع لكل مهمة. كل منظمة لديها طريقة طبيعية لكسر العمل في المهام الفردية داخل تعقب القضية، مثل جيرا البرمجيات. ثم تصبح القضايا نقطة الاتصال المركزية للفريق لهذه القطعة من العمل. المهام المتفرعة، المعروف أيضا باسم المتفرعة المسألة، يربط مباشرة تلك القضايا مع التعليمات البرمجية المصدر. يتم تنفيذ كل قضية على فرعها الخاص مع مفتاح القضية المدرجة في اسم الفرع. من السهل معرفة التعليمات البرمجية التي تنفذ المشكلة: ما عليك سوى البحث عن مفتاح المشكلة في اسم الفرع. مع هذا المستوى من الشفافية، فإنه من الأسهل لتطبيق تغييرات محددة لإتقان أو أي تشغيل أطول فرع الإصدار القديم.
منذ مراكز رشيقة حول قصص المستخدم، وفروع المهام الزوج بشكل جيد مع التنمية رشيقة. كل قصة المستخدم (أو علة الإصلاح) يعيش داخل فرعها الخاص، مما يجعل من السهل أن نرى أي القضايا قيد التقدم والتي هي على استعداد للإفراج عنهم. لغوص عميقة في مهمة المتفرعة (تسمى أحيانا قضية المتفرعة أو فرع لكل قضية)، والاستيلاء على بعض الفشار وتحقق من تسجيل الويبينار أدناه واحدة من أكثر شعبية لدينا من أي وقت مضى.
الآن تلبية التوأم الشر المتفرعة: الدمج.
لقد تحملنا جميعا الألم من محاولة دمج فروع متعددة في حل واحد معقول. تقليديا، جعلت أنظمة التحكم في النسخة المركزية مثل التخريب دمج عملية مؤلمة جدا. ولكن أنظمة التحكم الإصدار الأحدث مثل جيت و ميركوريال تأخذ نهجا مختلفا لتتبع إصدارات الملفات التي تعيش على فروع مختلفة.
مع جيت، دمج هو تافهة-تحرير لنا لاستغلال القوة الكاملة للتفرع سير العمل.
تميل الفروع إلى أن تكون قصيرة الأجل، مما يجعل من السهل دمج وأكثر مرونة عبر قاعدة التعليمات البرمجية. بين القدرة على دمج الفروع بشكل متكرر وتلقائي كجزء من التكامل المستمر (سي)، وحقيقة أن الفروع قصيرة العمر تحتوي ببساطة على تغييرات أقل، & كوت؛ دمج الجحيم & كوت؛ يصبح شيئا من الماضي للفرق باستخدام جيت و ميركوريال.
هذا ما يجعل مهمة المتفرعة رهيبة جدا!
التحقق من صحة، التحقق من صحة، التحقق من صحة.
نظام التحكم في الإصدار يمكن أن يذهب فقط حتى الآن في التأثير على نتيجة الدمج. الاختبار الآلي والتكامل المستمر حاسمة أيضا. معظم خوادم سي يمكن أن تضع تلقائيا فروع جديدة تحت الاختبار، والحد بشكل كبير من عدد & كوت؛ مفاجآت & كوت؛ على الاندماج النهائي المنبع وتساعد على الحفاظ على خط رمز الرئيسي مستقرة.
المنتجات التي نوقشت.
اشترك للحصول على المزيد من المقالات.
القراءات الموصى بها.
وضعه موضع التنفيذ.
الحصول على جدية حول المتفرعة.
إدارة مستودعات جيت، وإعداد الأذونات والتعاون في التعليمات البرمجية. آمنة وسريعة، والمشاريع الصف. استكشاف بيتبوكيت.
التالي.
ما أهمية مراجعات الشفرة.
يساعد مراجعة الشفرة المطورين على تعلم قاعدة الشفرة والتكنولوجيات الجديدة والتقنيات الجديدة. ولكن كيكر هو أنها فعلا توفر لك الوقت.
قد نوصي أيضا.
القضايا رهيبة ل جيت المتفرعة سير العمل.
معرفة المزيد عن ثلاثة فرق الصاعد فرق جعل عند اعتماد ميزة المتفرعة سير العمل، وكيفية تصحيحها باستخدام قضايا لتتبع العمل في جيرا البرمجيات. تابع القراءة.
عن المؤلف.
دان راديجان.
كبير أجيل الإنجيلي، أتلاسيان.
كان أجيل تأثير كبير على لي على حد سواء مهنيا وشخصيا كما تعلمنا أفضل التجارب هي رشيقة، سواء في التعليمات البرمجية والحياة. سوف تجد لي في كثير من الأحيان على تقاطع التكنولوجيا والتصوير الفوتوغرافي، والدراجات النارية. تجد لي على تويتر! danradigan.
استراتيجية المتفرعة لإطلاق رشيق مع التخريب.
نقطة التحكم في المصدر وأدوات إدارة التكوين الأخرى ليست فقط لا تحصل في طريق إنجاز الأمور، ولكن لتمكين المزيد من التوازي على فريق البرمجيات. وهناك الكثير من المرات ونحن (علماء التكنولوجيا، المهوسون خاطئة) يمكن الحصول على المحاصرين في اختيار الأداة، وتعديل، وتكوين فرط.
الحل الذي يبدو أنه يعمل بشكل جيد لفريق رشيقة صغيرة أنا بصرف النظر عن الآن هو نسخة بسيطة من نموذج الترويج التقليدي. بدلا من مجموعة ديف / تيست / برودكتيون من الفروع نحن ببساطة استخدام ديف / الإنتاج لفروع طويلة عاشت وتتميز فروع قبالة ديف لأي شيء نعتقد أنه قد يستغرق أكثر من يوم أو يومين لتنفيذ وتحقيق الاستقرار.
التخريب لم يكن لديك دمج تتبع، ولكن، ولكن هناك أداة تسمى svnmerge. py أن يجعل من نسيم للحفاظ على فروع محدثة مع التغييرات التي ارتكبت إلى ديف أو الإنتاج بحيث التكامل من فروع ميزة العودة إلى ديف أو الإفراج عن ديف إلى الإنتاج هو أكثر مرونة وأقل عرضة لدمج الصراعات.
كقاعدة عامة، يتم إصلاحات الساخنة في فرع الإنتاج ومن ثم اندمجت إلى ديف بعد الإفراج عنهم. يتم تحديث الفروع ميزة مع التغييرات الملتزمة ديف مرة واحدة على الأقل في اليوم، وأحيانا أكثر. نحن عادة الإفراج كثيرا جدا حتى دلتا بين ديف والإنتاج عادة ما تكون صغيرة جدا. نظرا لعدم وجود أي برنامج مثبت نقوم بتوزيعه (كل خادم قائم)، علينا أن نحافظ على أي فروع الإفراج، في الواقع، لدينا الإصدار هو ببساطة رقم مراجعة التخريب.
سوبفيرزيون رشيقة استراتيجية المتفرعة
الحصول على فيا أب ستور قراءة هذه المشاركة في التطبيق لدينا!
كيف ينبغي لنا هيكلة بيئة سفن لدينا لتطوير أجيل / سكروم مع فرق متعددة عندما يكون لدينا لتبادل نفس بيئة ضمان الجودة؟ [مغلق]
لقد كلفت مع الخروج مع هيكل سفن لدينا التحول إلى رشيقة أن لديها إلى نطاق واسع لفرق متعددة (مع المطورين متعددة). بعد التحدث مع زملائي كنت قد جاء مع هيكل سبيل المثال ينظر أدناه. حصلت قليلا من دفع مرة أخرى من أعضاء الفريق الآخرين مع المخاوف المشروعة. كنت آمل في العثور على أفضل الممارسات لوجود هيكل سفن بين فرق متعددة عندما يكون لدينا جميعا لتبادل بيئة ضمان الجودة.
في المثال أعلاه، يمكنك أن ترى أنني قد استخدمت الكثير من شروط رشيق / سكروم. فعلت ذلك للمساعدة في شرح قراراتي في لماذا توصلت إلى هذا الهيكل. أساسا الجذع "الرئيسي" سوف يكون دائما قصص فقط من جميع الفرق التي التقى "تعريف القيام به" الذي يتضمن ضمان الجودة. والمشكلة الرئيسية التي أشارت إليها هي أنه يتعين علينا أن نشارك البيئات (ولأسباب لا يمكننا افتراض هذه البيئات)، وبسبب هذا، فإن الإفراج اليومي عن اختبارات ضمان الجودة سيكون أمرا صعبا لأن كل فريق سيخطو بعضهم البعض. وثمة مسألة أخرى أرادوا معالجتها هي أن البعض لا يريد أن يكون لكل مطور برامج فرع خاص به لأنه سيزيد من حجم دمج كل فريق / فرد ما سيتعين عليه القيام به.
في هذه المرحلة أنا لست متأكدا ما يجب القيام به لدينا كيفية الرد. كنت آمل أن بعض الناس / فرق هنا في أرض سو يمكن أن تخبرنا كيف لديهم هيكلها وما القضايا التي واجهتها بسبب هيكل الخاص بك.
أغلقت في المقام الأول على أساس الرأي من قبل تايلره، ستيدي، روبينكتس، بول تينغ، بيتر سميث نوفمبر 29 '17 في 18:47.
العديد من الأسئلة الجيدة تولد قدرا من الرأي استنادا إلى خبرة الخبراء، ولكن الإجابات على هذا السؤال سوف تميل إلى أن تستند بشكل كامل تقريبا إلى الآراء، بدلا من الحقائق أو المراجع أو الخبرة المحددة. إذا كان يمكن إعادة صياغة هذا السؤال لتناسب القواعد في مركز المساعدة، يرجى تعديل السؤال.
أود أن أوصي لك نلقي نظرة على "التسليم المستمر" من قبل جيز همبل وديفيد فارلي. يذهبون إلى الكثير من التفاصيل حول استراتيجيات المتفرعة والتحدث تحديدا عن سفن.
هل تدفع نحو الإصدارات المتكررة؟ إذا كنت، فإن أفضل نهج في كثير من الأحيان أن يكون جميع الفرق التي تلتزم في الجذع. الوقت الوحيد لفرع سيكون على الإفراج، بحيث يمكنك إصلاح على الفور قضايا الإنتاج دون الحاجة إلى القلق حول تأثير العمل في التقدم.
قد تعتقد أن هذا سوف يؤدي إلى الكثير من مشاكل التكامل، وكنت على حق. ولكن الفكرة هي استخلاص قضايا التكامل في أقرب فرصة ممكنة، وهو عادة الوقت الذي يكون فيه الجهد لإصلاحها هو الأدنى.
سوف تحتاج إلى وجود بعض التكامل المستمر القوي لدعم هذا النهج. ويفضل مع تغطية جيدة الانحدار اختبار الآلي.
وأوصي بشدة أن تنظر في القضايا رشيقة التالية:
يجب أن يكون دور ضمان الجودة عضوا في فريقك (مطور كبير يفضل أن يكون مهتما بجودة البرامج). وإلا، فإن ضمان الجودة ينظر إليها على أنها خدمة خارجية، لذلك ليس كثيرا رشيقة (انظر "البرمجة المتطرفة شرح" من قبل كينت بيك). يجب على سكروم ماستر فرض حقيقة أن العمل مع الفروع ليست مشكلة ولكن الحل على وجه التحديد لهذه الحالات التي يوجد فيها عدد من المطورين. العمل مع مجموعة من المطورين يعني أن سكروم ماستر يجب أن نؤكد كل وحدة هو متطورة. للقيام بذلك، تد (اختبار مدفوعة التنمية) هو استراتيجية جيدة للحصول على تقارير مثل تغطية التعليمات البرمجية، على غرار الاختيار، ونسخ + رمز معجون (كبد) ومؤشر التعقيد سيكلوماتيك (من بين أمور أخرى). يجب على سكروم ماستر أيضا النظر في تحديد استراتيجية التكامل المستمر لضمان كل التغييرات وحدة تطبيق لا تعديل السلوك المتوقع من الإصدار الحالي أو الافراج مرشح.
نهج رشيق ليس فقط استراتيجية جيدة شفرة المصدر أو الإدارة؛ يجب على الفريق بأكمله أن يكون موجها بشكل جيد، متزامنة بشكل جيد ودوافع جيدة. وإلا، فإن المشروع الخاص بك سيكون نجاحا ولكن ليس رشيقة.
سوبفيرزيون رشيقة استراتيجية المتفرعة
الحصول على فيا أب ستور قراءة هذه المشاركة في التطبيق لدينا!
أفضل استراتيجية المتفرعة عند القيام التكامل المستمر؟
ما هي أفضل استراتيجية متفرعة لاستخدامها عندما تريد أن تفعل التكامل المستمر؟
الافراج عن فرع: تطوير على الجذع، والحفاظ على فرع لكل إصدار. ميزة المتفرعة: تطوير كل ميزة في فرع منفصل، دمج فقط مرة واحدة مستقرة.
هل من المنطقي استخدام كل من هذه الاستراتيجيات معا؟ كما هو الحال في، كنت فرع لكل إصدار ولكن أيضا فرع لميزات كبيرة؟ هل أحد هذه الاستراتيجيات يتشابه بشكل أفضل مع التكامل المستمر؟ هل استخدام التكامل المستمر حتى معنى عند استخدام جذع غير مستقر؟
11 أجوبة.
تعتمد الإجابة على حجم فريقك وجودة التحكم في المصدر والقدرة على دمج مجموعات التغيير المعقدة بشكل صحيح. على سبيل المثال في كامل تحكم مصدر فرع مثل كفس أو سفن دمج يمكن أن يكون صعبا وكنت قد يكون أفضل حالا مع النموذج الأول، في حين إذا كان استخدام نظام أكثر تعقيدا مثل عب كليركيس ومع حجم أكبر من فريق هل يمكن أن يكون أفضل من مع الثانية نموذج أو مزيج من الاثنين.
أنا شخصيا سوف فصل نموذج فرع الميزة، حيث تم تطوير كل ميزة رئيسية على فرع منفصل، مع المهام الفرعية لكل تغيير يقوم به المطور الفردية. كما تستقر الميزات أنها تحصل على دمجها إلى الجذع، والتي يمكنك الاحتفاظ مستقرة بشكل معقول وتمرير جميع اختبارات الانحدار في جميع الأوقات. كما كنت بالقرب من نهاية دورة الإصدار الخاص بك وجميع فروع دمج، يمكنك استقرار وفرع فرع نظام الإصدار الذي تقوم به فقط إصلاحات الشوائب الاستقرار والرجعية الضرورية، في حين يتم استخدام الجذع لتطوير الإصدار التالي وأنت مرة أخرى فرع قبالة عن فروع ميزة جديدة. وما إلى ذلك وهلم جرا.
هذه الطريقة جذع يحتوي دائما على أحدث رمز، ولكن يمكنك إدارة للحفاظ على استقرار معقول، وخلق تسميات مستقرة (العلامات) على التغييرات الرئيسية وميزات الميزة، فروع ميزة هي تطور يسير بخطى سريعة مع التكامل المستمر والفرعية المهام الفرعية يمكن أن تكون في كثير من الأحيان تحديث من فرع ميزة للحفاظ على كل شخص يعمل على نفس الميزة في المزامنة، في حين لا تؤثر في وقت واحد فرق أخرى تعمل على ميزات مختلفة.
في الوقت نفسه لديك من خلال التاريخ مجموعة من فروع الإفراج، حيث يمكنك توفير الخلفيات والدعم وبوجفيكسيس لعملائك الذين لأي سبب من الأسباب البقاء على الإصدارات السابقة من المنتج الخاص بك أو حتى مجرد أحدث الإصدار الذي تم إصداره. كما هو الحال مع الجذع، كنت لا الإعداد التكامل المستمر على فروع الإفراج، فهي متكاملة بعناية على اجتياز جميع اختبارات الانحدار وغيرها من مراقبة الجودة الإصدار.
إذا لسبب ما اثنين من الميزات هي تعتمد على بعضها البعض وتحتاج إلى تغييرات من قبل بعضها البعض، يمكنك أن تنظر إما لتطوير على حد سواء في نفس الفرع ميزة أو تتطلب ميزات لدمج بانتظام أجزاء مستقرة من التعليمات البرمجية إلى جذع ثم تحديث التغييرات من الجذع لتبادل رمز بين فروع الجذع. أو إذا كنت بحاجة إلى عزل هاتين الميزتين من الآخرين، يمكنك إنشاء فرع مشترك قبالة التي تقوم بتفرع تلك الفروع الميزة والتي يمكنك استخدامها لتبادل التعليمات البرمجية بين الميزات.
النموذج أعلاه لا يجعل من المنطقي بكثير مع فرق تحت 50 المطورين ونظام التحكم في المصدر دون فروع متفرق والقدرة على الاندماج السليم مثل كفس أو سفن، والتي من شأنها أن تجعل فقط هذا النموذج كله كابوس لإعداد وإدارة ودمج.
أجد موضوع مثير للاهتمام حقا لأنني تعتمد بشدة على الفروع على عملي اليومي.
أتذكر مارك شلوورث يقترح نموذجا حول الحفاظ على الفرع الرئيسي البكر في حين تتجاوز سي التقليدية. نشرت لي حول هذا الموضوع هنا. منذ أنا على دراية التحكم كروز، أنا أيضا المدونات حول فروع المهمة و سي هنا. انها خطوة بخطوة تعليمي شرح كيفية القيام بذلك مع سم البلاستيك. وأخيرا، وجدت بعض الموضوعات حول سي (وربما يتحدث عن المتفرعة) في كتاب دوفال على سي مثيرة جدا للاهتمام أيضا.
نأمل أن تجد الروابط مثيرة للاهتمام.
أنا شخصيا أجد أنه من الأنظف أن يكون جذع مستقر والقيام ميزة المتفرعة. وبهذه الطريقة، واختبار وما شابه ذلك الحصول على البقاء على واحد "نسخة" وتحديث من الجذع لاختبار أي ميزة أن رمز الكامل.
أيضا إذا كان العديد من المطورين يعملون على ميزات مختلفة، فإنها يمكن أن يكون كل فروع منفصلة الخاصة بهم، ثم دمج جذع عند الانتهاء من ذلك وإرسال ميزة لاختبارها دون اختبار الحاجة إلى التحول إلى فروع متعددة لاختبار ميزات مختلفة.
كما مكافأة إضافية، وهناك بعض مستوى اختبار التكامل التي تأتي تلقائيا.
وأعتقد أن أي من الاستراتيجية يمكن استخدامها مع التطوير المستمر بشرط أن تتذكر واحدة من المبادئ الرئيسية التي تلتزم كل مطور لجذع / الخط الرئيسي كل يوم.
لقد تم القيام ببعض القراءة من هذا الكتاب على سي والكتاب جعل تشير إلى أن المتفرعة من قبل الافراج عن استراتيجية المتفرعة المفضل لديهم. علي ان اوافق. المتفرعة من ميزة لا معنى لي عند استخدام سي.
سأحاول وشرح لماذا أنا أفكر بهذه الطريقة. ويقول ثلاثة مطوري كل اتخاذ فرع للعمل على ميزة. ستستغرق كل ميزة عدة أيام أو أسابيع حتى تنتهي. لضمان اندماج الفريق بشكل مستمر يجب أن تلتزم الفرع الرئيسي مرة واحدة على الأقل في اليوم. بمجرد أن تبدأ في القيام بذلك فإنها تفقد فائدة إنشاء فرع الميزة. لم تعد تغييراتهم منفصلة عن جميع التغييرات الأخرى للمطور. هذا هو الحال، لماذا تهتم لخلق فروع ميزة في المقام الأول؟
يتطلب استخدام المتفرعة من قبل الإصدار أقل بكثير دمج بين الفروع (دائما شيء جيد)، يضمن أن جميع التغييرات الحصول على أساب متكامل و (إذا فعلت بشكل صحيح) يضمن قاعدة التعليمات البرمجية الخاصة بك في دائما على استعداد للافراج عنهم. الجانب إلى المتفرعة من قبل الإفراج هو أن عليك أن تكون أكثر حذرا إلى حد كبير مع التغييرات. مثلا إعادة بيع كبيرة يجب أن يتم بشكل متزايد، وإذا كنت قد قمت بالفعل دمج ميزة جديدة التي لا تريد في الإصدار التالي ثم يجب أن تكون مخفية باستخدام نوع من ميزة تبديل آلية.
هناك أكثر من رأي واحد حول هذا الموضوع. هنا هو مشاركة بلوق وهو الموالية ميزة المتفرعة مع سي.
الافراج عن فروع مفيدة جدا، وحتى مطلقة تماما، إذا كنت بحاجة إلى الحفاظ على عدة إصدارات من التطبيق الخاص بك.
ميزة فروع أيضا مريحة للغاية، لا سيما إذا كان مطور واحد يحتاج إلى العمل على تغيير كبير، في حين أن آخرين لا يزالون الافراج عن الإصدارات الجديدة.
لذلك بالنسبة لي باستخدام كلتا الآليتين هي استراتيجية جيدة جدا.
وصلة مثيرة للاهتمام من كتاب سفن.
لقد جئت مؤخرا إلى مثل هذا النموذج عند استخدام جيت. على الرغم من أنه تم وضع علامة على سؤالك "سفن"، قد تكون لا تزال قادرا على الاستفادة من ذلك.
التكامل المستمر يمكن أن يحدث إلى حد ما في فرع "تطوير" (أو ما تسمونه) في هذا النموذج، على الرغم من وجود فروع طويلة المدى تشغيل الإصدارات المستقبلية لن تجعل من جامدة جدا للنظر في كل تغيير يحدث لرمز في مكان ما. يبقى السؤال، ما إذا كنت تريد حقا ذلك. مارتن فاولر يفعل.
يجب أن لا يكون التكامل المستمر أي نوع من العوامل في تحديد استراتيجية التفرع الخاص بك. يجب اختيار النهج المتفرع الخاص بك على أساس فريقك، ونظام قيد التطوير والأدوات المتاحة لك.
وقد قلت ذلك .
ليس هناك سبب لعدم استخدام سي في كل من النهج التي تصف تلك النهج تعمل بشكل جيد جدا في الجمع بين أي من العملين "أفضل" من سي الأخرى يجعل الشعور الكلي مع جذع غير مستقر.
تم الإجابة على كل هذا في السؤال الرابع على الصفحة التي أخذت الرسوم البيانية من: blogs. collab / التخريب / 2007/11 / المتفرعة سترات /
طالما أنك تفهم المبادئ، يمكنك دائما إعادة اختراع أفضل الممارسات. إذا كنت لا تفهم المبادئ، فإن أفضل الممارسات سوف يأخذك قبل أن ينهار بسبب بعض المتطلبات الخارجية المتضاربة.
اقرأ الرابط. بمجرد الحصول على الأساسيات، قراءة المقال التالي من قبل هنريك كنيبرج الموقر. وسوف تساعدك على ربط النموذج الرئيسي مع التكامل المستمر.
عندما بدأنا فريقنا ورثنا استراتيجية قائمة على الإصدار من البائع التي وضعت في الأصل النظام كنا على وشك الحصول على المسؤول عن. عملت حتى الوقت الذي طلب فيه عملائنا أن العديد من الميزات المتقدمة لا ينبغي أن تدرج في إصدار (f. y.i.
خطوط 250K من التعليمات البرمجية،
2500 الملفات، سكروم مع زب سدلك).
ثم بدأنا النظر في الفروع القائمة على ميزة. هذا عمل أيضا لفترة من الوقت - مثل 2 أشهر حتى النقطة أدركنا أن عملية اختبار الانحدار لدينا سوف يستغرق أكثر من 2 أسابيع التي جنبا إلى جنب مع عدم اليقين من ما سيصدر صدر خلق إزعاج كبير.
وجاء "مسمار في التابوت" النهائي من استراتيجيات سك نقية عندما قررنا أنه ينبغي أن يكون 1. الجذع مستقرة و 2. يجب أن يحتوي الإنتاج ست، وات، والانحدار اختبار بيناريز (وليس فقط مصدر - أعتقد سيسي)
وهذا يقودنا إلى وضع استراتيجية هي مزيج بين ميزة واستراتيجيات سك القائمة على إطلاق سراح.
لذلك لدينا جذع. كل سباق نحن فرع فرع العدو (لغير الناس رشيقة - سباق هو مجرد جهد التنمية محاصر الوقت مع مخرجات متغيرة على أساس التعقيد.) من فرع العدو نخلق فروع ميزة والتنمية الموازية يبدأ فيها. وبمجرد الانتهاء من الميزات واختبار النظام، ونحن نتلقى نية لنشرها، يتم دمجها إلى فرع العدو - بعض قد تطفو عبر العديد من سباقات السرعة، وعادة ما تكون أكثر تعقيدا. مرة واحدة في سباق بالقرب من نهايته والميزات كاملة. نحن "إعادة تسمية" فرع العدو إلى "الانحدار" (وهذا يسمح كروزيكونترول لاستلامه من دون أي إعادة تشكيل) ثم يبدأ الانحدار / اختبار التكامل على إير بناء سيسي. عندما يتم ذلك كله، فإنه يذهب في الإنتاج.
وباختصار، يتم استخدام الفروع القائمة على ميزة لتطوير واختبار النظام ووظائف وات. فرع العدو (حقا فرع الإفراج) يستخدم لدمج انتقائي الميزات على الطلب والتكامل الاختبار.
الآن هنا هو السؤال للمجتمع - نحن من الواضح أن تواجه مشكلة في أداء التكامل المستمر بسبب حقيقة أن التنمية تحدث على العديد من الفروع وإعادة تشكيل النفقات العامة من كروزيكونترول. يمكن لشخص ما اقتراح والمشورة؟
الطريقة التي أرى أنها تريد أن يكون مجموعة محدودة من الفروع حيث يمكنك التركيز. نظرا لأنك تريد إجراء اختبارات، ومقاييس جودة الشفرة، والعديد من الأمور المثيرة للاهتمام لتشغيلها مع عمليات الإنشاء، فإن وجود عدد كبير جدا من التقارير سيجعلك تفوت المعلومات.
عندما وماذا لفرع، وعادة ما يعتمد على حجم الفريق وحجم الميزات التي يجري تطويرها. لا أعتقد أن هناك قاعدة ذهبية. تأكد من استخدام إستراتيجية يمكنك من خلالها الحصول على التعليقات في وقت مبكر / في كثير من الأحيان، والتي تتضمن تضمين الجودة من بداية الميزات. نوعية بت، يعني أنه كما كنت أتمتة كما فريق يتطور، إذا كنت فرع لميزة كبيرة مجموعة فريق هو بناء، لديك فلدي يكون لها جودة المشاركة في الفريق أيضا.
ملاحظة: أين حصلت على تلك المراجع؟ - لا يشعر أن تلك الرسوم البيانية تمثل جميع الخيارات.
تحديث 1: توسيع لماذا قلت انها ليست قاعدة ذهبية. أساسا لفرق صغيرة نسبيا لقد وجدت أنه من الأفضل باستخدام النهج الذي هو مزيج. يتم إنشاء فروع ميزة إذا كان شيئا طويلا وجزء من الفريق سيستمر إضافة ميزات أصغر.
أعتقد أن الأدوات التي تستخدمها عامل كبير هنا.
إذا كنت تستخدم التخريب، التمسك الخيار 1 والافراج عن الفروع. إذا كنت تستخدم جيت، الخيار 2 سوف تعمل بشكل جيد بالنسبة لك.
الحصول على فيا أب ستور قراءة هذه المشاركة في التطبيق لدينا!
كيف ينبغي لنا هيكلة بيئة سفن لدينا لتطوير أجيل / سكروم مع فرق متعددة عندما يكون لدينا لتبادل نفس بيئة ضمان الجودة؟ [مغلق]
لقد كلفت مع الخروج مع هيكل سفن لدينا التحول إلى رشيقة أن لديها إلى نطاق واسع لفرق متعددة (مع المطورين متعددة). بعد التحدث مع زملائي كنت قد جاء مع هيكل سبيل المثال ينظر أدناه. حصلت قليلا من دفع مرة أخرى من أعضاء الفريق الآخرين مع المخاوف المشروعة. كنت آمل في العثور على أفضل الممارسات لوجود هيكل سفن بين فرق متعددة عندما يكون لدينا جميعا لتبادل بيئة ضمان الجودة.
في المثال أعلاه، يمكنك أن ترى أنني قد استخدمت الكثير من شروط رشيق / سكروم. فعلت ذلك للمساعدة في شرح قراراتي في لماذا توصلت إلى هذا الهيكل. أساسا الجذع "الرئيسي" سوف يكون دائما قصص فقط من جميع الفرق التي التقى "تعريف القيام به" الذي يتضمن ضمان الجودة. والمشكلة الرئيسية التي أشارت إليها هي أنه يتعين علينا أن نشارك البيئات (ولأسباب لا يمكننا افتراض هذه البيئات)، وبسبب هذا، فإن الإفراج اليومي عن اختبارات ضمان الجودة سيكون أمرا صعبا لأن كل فريق سيخطو بعضهم البعض. وثمة مسألة أخرى أرادوا معالجتها هي أن البعض لا يريد أن يكون لكل مطور برامج فرع خاص به لأنه سيزيد من حجم دمج كل فريق / فرد ما سيتعين عليه القيام به.
في هذه المرحلة أنا لست متأكدا ما يجب القيام به لدينا كيفية الرد. كنت آمل أن بعض الناس / فرق هنا في أرض سو يمكن أن تخبرنا كيف لديهم هيكلها وما القضايا التي واجهتها بسبب هيكل الخاص بك.
أغلقت في المقام الأول على أساس الرأي من قبل تايلره، ستيدي، روبينكتس، بول تينغ، بيتر سميث نوفمبر 29 '17 في 18:47.
العديد من الأسئلة الجيدة تولد قدرا من الرأي استنادا إلى خبرة الخبراء، ولكن الإجابات على هذا السؤال سوف تميل إلى أن تستند بشكل كامل تقريبا إلى الآراء، بدلا من الحقائق أو المراجع أو الخبرة المحددة. إذا كان يمكن إعادة صياغة هذا السؤال لتناسب القواعد في مركز المساعدة، يرجى تعديل السؤال.
أود أن أوصي لك نلقي نظرة على "التسليم المستمر" من قبل جيز همبل وديفيد فارلي. يذهبون إلى الكثير من التفاصيل حول استراتيجيات المتفرعة والتحدث تحديدا عن سفن.
هل تدفع نحو الإصدارات المتكررة؟ إذا كنت، فإن أفضل نهج في كثير من الأحيان أن يكون جميع الفرق التي تلتزم في الجذع. الوقت الوحيد لفرع سيكون على الإفراج، بحيث يمكنك إصلاح على الفور قضايا الإنتاج دون الحاجة إلى القلق حول تأثير العمل في التقدم.
قد تعتقد أن هذا سوف يؤدي إلى الكثير من مشاكل التكامل، وكنت على حق. ولكن الفكرة هي استخلاص قضايا التكامل في أقرب فرصة ممكنة، وهو عادة الوقت الذي يكون فيه الجهد لإصلاحها هو الأدنى.
سوف تحتاج إلى وجود بعض التكامل المستمر القوي لدعم هذا النهج. ويفضل مع تغطية جيدة الانحدار اختبار الآلي.
وأوصي بشدة أن تنظر في القضايا رشيقة التالية:
يجب أن يكون دور ضمان الجودة عضوا في فريقك (مطور كبير يفضل أن يكون مهتما بجودة البرامج). وإلا، فإن ضمان الجودة ينظر إليها على أنها خدمة خارجية، لذلك ليس كثيرا رشيقة (انظر "البرمجة المتطرفة شرح" من قبل كينت بيك). يجب على سكروم ماستر فرض حقيقة أن العمل مع الفروع ليست مشكلة ولكن الحل على وجه التحديد لهذه الحالات التي يوجد فيها عدد من المطورين. العمل مع مجموعة من المطورين يعني أن سكروم ماستر يجب أن نؤكد كل وحدة هو متطورة. للقيام بذلك، تد (اختبار مدفوعة التنمية) هو استراتيجية جيدة للحصول على تقارير مثل تغطية التعليمات البرمجية، على غرار الاختيار، ونسخ + رمز معجون (كبد) ومؤشر التعقيد سيكلوماتيك (من بين أمور أخرى). يجب على سكروم ماستر أيضا النظر في تحديد استراتيجية التكامل المستمر لضمان كل التغييرات وحدة تطبيق لا تعديل السلوك المتوقع من الإصدار الحالي أو الافراج مرشح.
نهج رشيق ليس فقط استراتيجية جيدة شفرة المصدر أو الإدارة؛ يجب على الفريق بأكمله أن يكون موجها بشكل جيد، متزامنة بشكل جيد ودوافع جيدة. وإلا، فإن المشروع الخاص بك سيكون نجاحا ولكن ليس رشيقة.
Comments
Post a Comment