سؤال

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

هل هناك سبب وجيه للاحتفاظ بالكود القديم في قاعدة التعليمات البرمجية كتعليقات؟أنا أستخدم التحكم في الإصدار بواسطة Visual Sourcesafe

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

المحلول

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

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

نصائح أخرى

وهناك سبب وجيه أستطيع أن أفكر في ذلك (وهمية) على سبيل المثال:

# removed the following test because this should work now that bug #12345 is fixed.
#assert a != 0
b = number / a

وأساسا، للحفاظ على مطورين آخرين من إعادة إدراج التعليمات البرمجية التي تم إزالتها لسبب ما.

ونقول للمقاولين ليتوقف عن فعل هذا. وهذه ممارسة الرهيبة.

وليس هناك في الواقع أي سبب للحفاظ على القانون القديم في رمز قاعدة. فإنه يحصل فقط في الطريق. ونظام التحكم في الإصدار الخاص بك تظهر لك التاريخ من كل ملف.

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

وأحيانا سوف أعلق فقط من التعليمات البرمجية مع العلم أن أنا أضع تغيير مؤقت في (بواسطة مؤقتة يعني أقل من بضعة أيام)، وبالتأكيد خطة للعودة إليها.

وتحرير: ممارسة أخرى ذات صلة تضع أسماء وتواريخ التغييرات في الملف:

// 06/20/2009 - joe changed this #1245

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

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

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

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

هل هناك أي شيء عن القانون القديم الذي هو أفضل من القانون الجديد؟

هل المقاولين يشعر في عجلة من أمره؟ أم أنها مجرد عادة قديمة من أيام السيطرة قبل اصدار جديد؟

عند تذكير المقاولين ليس لديهم التعليق الخروج الكود كما SOURCESAFE سيبقي التاريخ نطلب منهم لماذا يفعلون ذلك.

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

والإقناع أفضل من الإجبار.

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

في الأساس، لديك خياران فقط.

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

بخلاف ذلك، المذكور أعلاه هما خياران فقط.اتصالك!!

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

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

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

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

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

أولا، أقول التخلص منه.

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

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

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

وهذا المشروع أنا إدخال حاليا، يستخدم بعد نهج آخر - نوعا من الحل الوسط ... عندما تقرر أن بعض جزء من التعليمات البرمجية لم يعد لاستخدامها، يمكنك ببساطة التعليق بها، وكتابة تاريخ يعلق بها، و (إذا كان من الممكن - على سبيل المثال في نتبيانس أو VisualStudio) قمت بإدراج القانون القديم في #region OLD_IMPL. تأثير؟ - لا يزال لديك رمز القديم في حال - كتلة من التعليمات البرمجية غير المستخدمة يأخذ بالضبط 1 خط (#region OLD_IMPL) - إذا كنت ترى، لا يتم استخدام هذا الرمز لمدة سنة (كان لديك تاريخ من يعلق بها)، يمكنك ببساطة حذفها.

في حال وجود أي حالات حرجة عليك دائما استخدام SVN.)

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

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

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

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

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