تأیید ورودی
یک قانون کلی برنامه نویسی خوب این است که اگر برنامه ای ورودی را بپذیرد، باید بتواند با هر چیزی که دریافت می کند مقابله کند. این معمولاً به این معنی است که ورودی باید به دقت بررسی شود تا اطمینان حاصل شود که فقط ورودی معتبر برای پردازش بیشتر پذیرفته می شود. ما نمونه ای از این را در فصل قبل وقتی مطالعه کردیم دیدیم خواندن فرمان یک اسکریپت حاوی تست زیر برای تایید انتخاب منو بود:
[[ $REPLY =~ ^[0-3]$ ]]
[[ $REPLY =~ ^[0-3]$ ]]
این تست بسیار خاص است. تنها در صورتی وضعیت خروج صفر را برمی گرداند که رشته وارد شده توسط کاربر عددی در محدوده صفر تا سه باشد. هیچ چیز دیگری پذیرفته نخواهد شد. گاهی اوقات نوشتن این نوع تست ها می تواند بسیار چالش برانگیز باشد، اما تلاش برای تولید یک فیلمنامه با کیفیت بالا ضروری است.
طراحی تابعی از زمان است
زمانی که من دانشجوی کالج بودم و در حال تحصیل در رشته طراحی صنعتی بودم، استاد فرزانه ای اظهار داشت که میزان طراحی در یک پروژه با توجه به زمان اختصاص داده شده به طراح تعیین می شود. اگر به شما پنج دقیقه فرصت داده شد تا دستگاهی را طراحی کنید که «مگسها را میکشد»، شما یک فلایسواتر طراحی کردهاید. اگر به شما XNUMX ماه فرصت داده شود، ممکن است به جای آن یک "سیستم ضد پرواز" با هدایت لیزری بسازید.
همین اصل در مورد برنامه نویسی نیز صدق می کند. گاهی اوقات یک اسکریپت "سریع و کثیف" اگر قرار باشد فقط یک بار و فقط توسط برنامه نویس استفاده شود، انجام می شود. این نوع فیلمنامه رایج است و باید به سرعت توسعه داده شود تا تلاش اقتصادی شود. چنین اسکریپت هایی نیازی به نظرات و بررسی های دفاعی زیادی ندارند. از طرفی اگر اسکریپتی برای استفاده در تولید، یعنی اسکریپتی که بارها و بارها برای یک کار مهم یا توسط چندین کاربر استفاده می شود، نیاز به توسعه بسیار دقیق تری دارد.