العربية  

books blocks losing track

If you do not find what you're looking for, you can use more accurate words.

View more

فقدان مسار البلوكات (Info)


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

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

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

طريقة أخرى تكون باستخدام تعليقات الإنلاين المضافة بعد قوس الإغلاق

for (int i = 0; i < total; i++) { foo(bar); } //for (i)

if (x < 0) { bar(foo); } //if (x < 0)

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

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

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

for (int i = 0; i < total; i++) whoops(bar); /* repeated total times, with i from 0 to (total-1) */ { only_once(); /* Programmer intended this to be done total times */ } //for (i) <-- This comment is no longer valid, and is very misleading!

يتجنب أسلوب كيه آند آر هذه المشكلة بالحفاظ على عبارة الضبط وقوس الافتتاح في نفس السطر.

Source: wikipedia.org