كيفية إعداد التحكم بالمصادر مع منتجات متعددة تعتمد جميعها على مكتبة فئة واحدة

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

سؤال

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

لدينا 5 تطبيقات ويب أقوم بإنشائها وصيانتها.نحن نستخدم ASP.NET، ويشير كل تطبيق ويب إلى مكتبة فئة .NET (DLL) واحدة تم نسخها إلى مجلد "bin" لكل تطبيق.لقد قمت بالتطوير باستخدام "حل" Visual Studio واحد يتضمن مكتبة الفصل وجميع تطبيقات الويب.أنا متأكد من أنها مبالغة بعض الشيء، لكن هذه الطريقة جعلت من السهل بالنسبة لي تقليل الأخطاء من خلال تمكيني من إجراء عمليات البحث والاستبدال الشاملة على جميع تطبيقاتي (ومكتبة الفصل) في نفس الوقت.

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

فيما يلي الأسئلة التي أحتاج إلى المساعدة بشأنها:

  1. هل ينبغي عليّ تقسيم كل تطبيق إلى "مشروع" منفصل أو الاحتفاظ بها جميعًا معًا حتى نتمكن من الاستمرار في الاستفادة من عمليات البحث والاستبدال العالمية عند الضرورة.أنا قلق بشأن تقسيمهم بسبب وضع مكتبة الفصل (انظر رقم 2).

  2. في حالة تقسيم التطبيقات إلى مشاريع منفصلة، ​​لست متأكدًا من كيفية متابعة مكتبة الفصل التي يحتاج كل مشروع إلى نسخة منها.على سبيل المثال، لنفترض أن التغييرات التي تم إجراؤها على أحد التطبيقات (أطلق عليه "المشروع 1") تتطلب تغييرًا في مكتبة الفصل...إذا كانت مكتبة الفصل في مشروع منفصل (أطلق عليه اسم "المشروع 2")، فيبدو لي أن المشروع 1 سيعتمد على آخر التغييرات في المشروع 2 لكي يعمل بشكل صحيح.أو، هل تقوم ببساطة بإجراء تغييراتك على المشروع 2 (مكتبة الفصل)، وإيداعها، ثم نسخ ملف dll المترجم حديثًا إلى المشروع 1 (ولكن لا ينبغي تسجيل النسخة الجديدة من ملف dll الذي يتم نسخه إلى المشروع 1 في SCC بطريقة أو بأخرى).أشعر بالحيرة حتى وأنا أكتب هذا..

شكرا مقدما لمساعدتكم.

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

المحلول

أولاً، تهانينا على اتخاذ القرار باستخدام التحكم بالمصادر أخيرًا.أعلم أن تغيير عاداتك يمكن أن يكون محبطًا ولكن على المدى الطويل أنا متأكد من أنك ستلاحظ الفوائد.

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

نصائح أخرى

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

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

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