سؤال

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

على سبيل المثال ، لا يتيح لك هذا الرمز تحوم قيمة getFoo ():

return GetFoo();

لكن هذا الرمز لا يلي:

var foo = GetFoo();
return foo; // your hover-foo is great

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

كيف يمكنك كتابة الكود لأفضل حل وسط بين البساطة وسهولة استخدام الأخطاء؟

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

المحلول

لا أعرف عن الأخطاء الآخرين ، لكن مصحح Visual Studio المتكامل سيبلغ عن ما تم إرجاعه من وظيفة في نافذة "Autos" ؛ بمجرد أن تخطو عبارة الإرجاع ، تظهر قيمة الإرجاع على أنها [اسم الوظيفة] مع قيمة أي قيمة تم إرجاعها.

يدعم GDB نفس الوظيفة أيضًا ؛ يقوم الأمر "Finish" بتنفيذ بقية الوظيفة الحالية ويطبع قيمة الإرجاع.

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

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

نصائح أخرى

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

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

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

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

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

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