كيفية جعل البناء (Java) "مستقلًا عن CM" قدر الإمكان؟(CM=مدير التكوين)

StackOverflow https://stackoverflow.com/questions/486668

سؤال

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

إليكم ما أهدف إليه:

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

أفكاري الأولى هي تحقيق ذلك من خلال:

  1. تنفيذ عملية طلب البناء (من خلال نماذج البناء التي تلتقط جميع التفاصيل المطلوبة للبناء بحيث لا يسقط أي شيء في الشقوق لمجرد أنه في رأس شخص ما)

  2. تبسيط خطوات البناء بحيث يمكن تسجيلها في وثائق بسيطة كسلسلة من الأوامر - يجب أن يكون القرد المدرب قادرًا على العمل مع البناء (حسنًا..لا ألقي الشتائم ولكن - لقد فهمت الفكرة :-)))

  3. استخدام ميزات الأداة إلى أقصى درجة (اقرأ ANT، SVN) بحيث يتم اكتشاف المشكلات المحتملة مسبقًا ويساعد أيضًا في توفير تنبيهات أفضل في حالة الفشل/المشكلات.

  4. التمتع بحرية المرض أو أخذ تلك الإجازات العرضية دون أن يتعرض مدير المشروع لنوبات ذعر في كل مرة أذكر فيها يومين إجازة.:-)

سأكون سعيدًا بالحصول على بعض الأفكار والأفكار لمساعدتي في هذا الاتجاه.شكرا لكم جميعا!

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

المحلول

في الرمز الحضري, ، نشير إلى هذا باسم النمط المضاد لـ "Bob the Builder".والخبر السار هو أن بوب (أنت) يريد الخروج من الحلقة.عندما لا يتمكن عامل البناء من الذهاب في إجازة أو المرض دون توقف أجزاء من العملية، فهناك بالفعل مشكلة غير مقبولة.إذا كنت رجل الرهان، عندما تبدأ عملية تبسيط العملية وصولاً إلى مستويات "القرد المدرب"، فسوف تتساءل لماذا تقضي وقتك في القيام بهذه الأشياء الروتينية عندما تكون ذكيًا ويمكن أن تضيف بالفعل قيمة في مكان ما.

أعراض متلازمة "بوب البناء" في كتابنا:

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

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

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

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

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

قد يكون الحصول على نماذج أفضل أمرًا جيدًا في هذه الأثناء، كما أن استخدام أدواتك بشكل جيد يعد أمرًا جيدًا دائمًا، لكنني سأهاجم مشكلة "القرد المدرب" بقوة كبيرة.أي شيء لا يمكن أن يفعله قرد مدرب (أو كمبيوتر) يجب أن يكون مرشحًا لترك العملية.بمجرد وصولك إلى حالة "القرد المدرب"، قم بتشغيل أتمتة البناء الخاص بك بحيث لا تحتاج أنت أو المطورون إلى أن تكونوا قرودًا.يؤدي ذلك إلى تغيير دورك من "Bob the Builder" إلى "Bob the Build System Owner".

نصائح أخرى

تبسيط خطوات البناء بحيث يمكن تسجيلها في وثائق بسيطة كسلسلة من الأوامر - يجب أن يكون القرد المدرب قادرًا على العمل مع البناء (حسنًا..لا ألقي الشتائم ولكن - لقد فهمت الفكرة :-)))

إذا كان ذلك ممكنًا، فمن الممكن تشغيل الإنشاء في خطوة واحدة عبر برنامج نصي (قد يكون ant أو bash أو maven أو أي برنامج نصي).يجب أن يكون هذا هو الهدف، بحيث يمكن لأي شخص القيام بالبناء.

يجب أن يكون الهدف من تطوير عملية البناء هو:

  1. ابدأ بدليل فارغ في أي مكان (تابولا راسا، إذا صح التعبير)
  2. تأكد من تثبيت أدوات صغيرة جدًا من الأدوات الأساسية (بالنسبة لي عادةً ما يكون ذلك عميل سطر الأوامر Java + Maven + SVN)
  3. تحقق من أ أعزب الدليل من SVN/CVS/...
  4. بدء أمر واحد (وهذا يعني شيئًا لا يحتوي على 25 معلمة)
  5. انتظر (ربما لفترة طويلة)
  6. احصل على بنيتك الكاملة

إذا لم تتمكن من القيام بذلك، فإن عملية البناء الخاصة بك لا تزال غير جيدة بما فيه الكفاية.

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

عادة لا توجد مثل هذه النقطة.إنها فقط الأدوات/الدراية/الدافع المفقود.أنا شخصياً اكتشفت أن القيام بذلك أسهل من وصف سبب عدم إمكانية القيام بذلك.

حظ سعيد.

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