صيانة - تحقيق التوازن بين مسألة متى وإذا لإجراء تغييرات

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

  •  03-07-2019
  •  | 
  •  

سؤال

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

والسؤال هو: هل يجب أن أفعل لهم أكثر؟ أعتقد أننا جميعا نواجه هذه المعضلة - كيفية تحقيق التوازن بين تشف من النشاط صيانة مقابل الآثار السلبية الناجمة عن تغير.

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

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

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

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

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

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

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

المحلول

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

نصائح أخرى

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

ولكن أعتقد أن وأود أن السير في هذا الطريق. دعم النسخة 1 لبوجفيكسيس وميناء نسخة جديدة 2 للتغييرات الانهيار.

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

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