ميزات ميزات التسليم في المشاريع الكبيرة

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


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


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

في ظروف الإصدارات المستمرة ، يطرح السؤال: "كيف تجري التنمية؟".
بعد كل شيء ، يجب على كل مطور القيام بالمهام ، وإنشاء فروع لهذه المهام ، ودمجها في مكان ما في النهاية.


صورة


في البداية ، تم تنظيم نهج فرع الميزة في الاستوديو ، فلنلق نظرة على مفهومه ، ونسلط الضوء على الإيجابيات والسلبيات.


صورة


. , , FeatureBranch, DevBranch. , , , , FeatureBranch .


صورة


, . , 100% , , . , - swift , , , , xib , . , .


?


  • .
  • .
  • .

:


  • .
  • .
  • .
  • .

, . , , .


FeatureToggle


, . FeatureToggle , A/B / . , .


, . , . , - , «-» .


:


public final class FeatureToggle {

    public enum SomeFeature {
        public static var isEnabled = true
        public static var useMocks = false
    }

}

, . . , , .. , , .


, . , - .


if FeatureToggle.SomeFeature.isEnabled {
    // Should show feature
} else {
    // Should hide feature
}

, , , « » .


صورة



– . FeatureToggle. , , , . , , . , , , , .


:


  • FeatureToggle.
  • , , .

:


  • .
  • .
  • .
  • .
  • , .

?


, . , , . — . – , . , . , , .


, :



!


P.S.: . , .


All Articles