وثبة الثقة

إن اتباع مجرى التنفيذ هو إحدى الطرق المتبعة عند قراءة البرامج، لكن كما شاهدت في الفصل السابق، يمكن للمسارات في هذه الطريقة أن تتداخل وتتعقد بسرعة. من الطرق البديلة طريقة أدعوها "قفزة الثقة". عندما تصل إلى استدعاء عملية، بدلاً من تتبع مجرى التنفيذ، افرض أن العملية تعمل بشكل صحيح وأنها تعيد القيمة المناسبة.
في الواقع، لقد مارست هذه الطريقة سابقاً عندما كنت تستعمل العمليات المبنية مسبقاً في Java. عندما تستدعي Math.cos أو drawOval، فلن تفحص مجريات هذه العمليات. بل تفترض أنها تعمل بشكل صحيح، لأن الناس الذي كتبوا هذه العمليات كانوا مبرمجين جيدين.
حسن، نفس الشيء يصح عندما تستدعي واحدة من العمليات التي كتبتها بنفسك. مثلاً، في القسم 6.7 كتبنا عملية اسمها isSingleDigit تحدد ما إذا كان العدد بين 0 و9 أو لا. بمجرد إقناع أنفسنا بأن هذه العملية صحيحة — بعد اختبار وفحص الشفرة — يمكننا استخدام تلك العملية بدون النظر إلى الشفرة مرة أخرى أبداً.
نفس الشيء صحيح أيضاً مع البرامج التعاودية. عندما تصل إلى الاستدعاء التعاودي، بدلاً من لحاق مجرى التنفيذ، عليك أن تفترض أن الاستدعاء التعاودي صحيح (وأنه يعطي النتيجة الصحيحة)، وبعدها اسأل نفسك، "بفرض أنني حسبت عاملي n-1، هل أستطيع حساب عاملي n؟" في هذه الحالة، من الواضح انك تستطيع، بضربه بn.
طبعاً، من الغريب قليلاً أن تفترض أن العملية تعمل بشكل صحيح قبل أن تنتهي من كتابتها حتى، لكن هذا هو السبب وراء تسميتها قفزة الثقة!


lk ;jhf ;dt jt;v ;uhgl ;lfd,jv gyi [hth hgtwg hgsh]s hgulgdhj hglelvm : ,efm hgerm hglelvm hgerm hgsh]s hgulgdhj hgtag jt;v [hth kfjm ;lfd,jv ;jhf ;dt