سؤال

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

أنا أعمل مع حفنة من المبرمجين لأول مرة (في مقابل العمل بمفردي أو مع فقط واحدة أخرى المبرمج), لذلك أنا فقط المصارعة مع قرارات مثل هذا للمرة الأولى.يجب علينا تبني برامج عملية التنمية ؟

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

المحلول

نعم، يرجى اعتماد عملية تطوير البرمجيات. وهناك مجموعة متنوعة من هناك، من الذي أنا متأكد من أكثر من واحدة تناسب فريقك. حتى واحد هو أن لا وجود تطابق كامل هو أفضل بكثير من أي عملية على الإطلاق.

وهكذا كيف شركتي تذهب عن وجود يوميا يبني والسعي لصفر العيوب؟ نحن تشغيل مجموعة اختبار لنا قبل أن تحقق في التعليمات البرمجية لدينا. مشكلة فريدة بالنسبة لنا هو أن المدى الكامل للجناح الاختبار يأخذ أكثر من 72 ساعة، لذلك نحن تشغيل مجموعة محدودة من اختبارات الوحدة قبل التحقق من التعليمات البرمجية. ليبني لنا ليلا، ونحن تشغيل مجموعة من الاختبارات التي يستغرق حوالي 8 ساعات لتشغيل. ثم في عطلة نهاية الأسبوع ونحن تشغيل مجموعة اختبار كاملة. كل مرحلة المصيد المزيد والمزيد من المشاكل، ولكن اشتعلت أكثر من 90٪ مع الاختبارات المطور 5 دقائق، وربما أكثر من 98٪ مع الاختبارات ليلا. هذا لا يزال ينبهنا إلى حد ما في وقت مبكر للمشاكل قبل أن تخرج لعملائنا ويكلف الكثير لإصلاح.

نصائح أخرى

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

نحن دائما الاندماج محليا, تشغيل تجاربنا ضد رمز, و عندما يمر علينا تسجيل الوصول.لقد تحقق في حوالي 20-30 مرة في اليوم عند العمل.بناء الخادم تلتقط التغيرات تشغيله يبني ضد النظام.المستمر التكامل (CI) هو شيء جيد.:D

التكامل المستمر - أتمتة يبني الخاص بك

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

أنا أيضا أتفق مع chadmyers' الجواب:كل ما عليك أن تقرر أنه يحتاج إلى أن يكون التلقائي والآلي.أفضل شيء حول أتمتة أدوات للقيام بهذا النوع من الاشياء بالنسبة لك هو أنه لم يعد لديك للتفكير في الامر أو تذكر أن تفعل ذلك.أو مثل تشاد وقال: أنت لا يتوقف عن فعل ذلك.أنا يمكن أن يوصي توصية من أجل CI الأدوات ولكن نظرة هنا: ما هي الأدوات التي تستخدمها الآلي يبني / النشر الآلي?لماذا ؟

مرة واحدة كنت قد CI ، يمكنك الحصول على جودة أعلى إذا كنت يمكن حقن بعض الفكاهة (و العار) عن طريق إدخال كسر في بناء رمزية! http://ferventcoder.com/archive/2008/08/20/continuous-integration-enhancement--the-broken-build-token.aspx

استخدام أداة جيدة الآلي يبني

معظم الناس في .صافي استخدام الأراضي نانت أو MSBuild البرامج النصية الآلي وبالطريقة التي يمكن لاحقا ربط ما يصل إلى CI الخادم.إذا كنت بدأت للتو ، اقتراحي سيكون لاستخدام كمة, هو بجنون سهلة الاستخدام بناء الإطار الذي يستخدم نانت.هنا الوصلة الثانية مع أعمق تفسيرات: كمة.

فروع مقابل صندوق التنمية النشطة

سيكون لديك لا فرع إلا إذا ترك الجذع مفتوحة فقط على الإصدارات (مما يعني أن الجميع يعمل في نفس الفرع كما كنت).ولكن كنت أود أن يكون CI على الجذع و التنمية النشطة فرع.

عملية تطوير البرمجيات

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

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

ودمج في وقت مبكر، ودمج كثير من الأحيان، ودمج بسرعة. بدلا من "بناء اليومي، وبناء في كل مرة شخص يرتكب وارتكاب كثير من الأحيان (مرة واحدة في اليوم على الأقل، ويفضل أكثر من 2).

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

واستثمار بعض الوقت في خط الهجوم إلى الحصول على الإنشاء الخاصة بك يركض بسرعة. إذا كان هناك أشياء بطيئة، ومعرفة السبب انها بطيئة والقضاء على ذلك. إذا كنت لا تستطيع، ثم تعيين ما لا يقل حتى المتتالية يبني ذلك بقية بناء يذهب سريع (اعتقد <2-5 دقائق) والاشياء منذ فترة طويلة يمكن أن يتبع ذلك مباشرة بعد واتخاذ طالما انها تريد (على الرغم من محاولة لإبقائه تحت قمم 10M).

لا استطيع ان اقول بما فيه الكفاية: دورة ردود فعل سريعة على تغييرات مهمة للغاية

!

والحيلة هي أن تحقق في كثير من الأحيان ممكن، أدلى به للتو بعض الاختبارات تمر، لطيف التحقق من ذلك في! إصلاح الخلل واحد، التحقق من ذلك في! محاولة للعثور على smalles فسيزيد احتمال والتحقق من ذلك في! وهذا له فائدة إضافية تتمثل في الواقع جعل من الممكن وconvinent لإرسال الاعارة التعليقات التي هي في الواقع ذات الصلة لذلك أن يكون مكافأة لطيفة.

وطبعا ... التي تتطلب أن يكون لديك بيئة CI أن يبني في كثير من الأحيان في المساء، كلما كان ذلك ممكنا حقا هو الخيار الأفضل هناك.

ويا ونتذكر، إذا كان <م> لا فواصل، ثم كنت أفعل ذلك الخطأ. (أي كنت متحفظا بشكل مفرط، وقليلا من الكسر بين الحين والآخر يذهب فقط لإظهار أنك دفعت به أمل).

إذا كنت لا أذهب للمنزل حتى تختفي جميع العيوب فإنك لن تذهب المنزل.

وأفكاري في هذا هي أن بناء اليومي يجب أن يكون آليا في أوقات معينة. أي رمز غير محددة في قبل هذا لا يحصل بنيت وإذا لم تكن هناك عمليات الوصول من شخص لمدة 2 أيام (يبني) في صف واحد ثم بناء نظام يجب أن يخطر لهم والرصاص التكنولوجيا لأن هذا هو علامة تحذير.

ونهج واحد وربما أكثر واقعية هو أن يكون صفر العيوب على الجذع، وفرع لجميع التنمية، ثم وجود يبني يوميا من الممكن على كل من الجذع والفروع، ولكن صفر العيوب لا ينطبق على ديف الفروع.

وبينما قد يكون لا يزال هناك مستوى معين من وصمة العار من وجود فرع يكسر لها يبني، هو أقل من مشكلة من كسر الجذع.

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

وبعد أن أوصي بشدة الزوج البرمجة.

وفهم أخيرا أن أدوات مثل CruiseControl مفيدة ولكن، كما قال جيم شور، <وأ href = "http://jamesshore.com/Blog/Continuous-Integration-is-an-Attitude.html" يختلط = "نوفولو noreferrer "> التكامل المستمر هو موقف لا الأداة . هذا هو التزام المجموعة لحفظ رمز العمل الذي هو مفتاح الحل.

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

وهذا يجب أن يتم تطبيق للفريق ككل، ولكن إذا كان المطور لديه خلل معين، هذا الخطأ له أولوية على الميزات الجديدة هذه للمطورين أن خلق.

واعتمادا على ما كنت بناء، واعتماد النهج الذي لا يسمح العيوب قد لا يكون مناسبا. رأيي الشخصي هو أنه نادرا ما، هو.

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

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

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

كنت أذهب مع @feverentcoder على CI الحجج.CI هو صديقك ، دعه يساعدك!

أما فرع/شنطة نقطة يجب على الجميع العمل دائما على الجذع, فرعes هي المسامير POCs, الوسم جميع الإصدارات

عندما يتعلق الأمر إلى عمليات انها عادة ما تكون مفيدة للعثور على الممارسات التي هي ذات الصلة إلى لك ومن ثم بناء الصغرى العمليات حولهم.أيضا, استخدام فقط تلك الممارسات/العمليات التي تشعر تعزيز الإنتاجية.وأخيرا يكون شجاعا - حاول ممارسة لمدة أسبوع أو أسبوعين لمعرفة ما إذا كان يعمل معك ؛ إذا كان لا رميها بعيدا.تعلمت أكثر من طريقة لا لجعل المصباح الكهربائي!

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