قانون 7: موارد شکست را حذف کنید

مجموعه مقالات در مورد کتاب قوانین برنامه نویسی توسط کریس زیمرمن این کتاب 21 قانون را پوشش می دهد که به برنامه نویسان کمک می کند کد بهتری ایجاد کنند. در هر پست کمی در مورد هر قانون از دیدگاه خودم صحبت می کنم و مثال ها و نظراتی را در مورد کتاب می آورم که هدف اصلی آن تثبیت و به اشتراک گذاری دانش است.
اشتباه کردن کاربران یک ویژگی یا رابط کاربری چقدر سخت است؟ این فصل نشان می دهد که این باید سوال اصلی در هنگام طراحی نرم افزار باشد.
ایده ایجاد سیستم هایی که در آن اشتباه کردن غیرممکن است ممکن است آرمان شهر به نظر برسد. از این گذشته، کاربران همیشه راه های غیرمنتظره ای برای ایجاد خرابی پیدا می کنند. پس راه حل چیست؟
زیمرمن پیشنهاد میکند که بهجای پذیرش شکستها بهعنوان اجتنابناپذیر، باید سیستمهای خود را بهگونهای طراحی کنیم که به ندرت – اگر هرگز – اتفاق بیفتند. اگرچه این رویکرد در نگاه اول ساده به نظر می رسد، اما اجرای آن مستلزم نظم و انضباط و تعهد به شیوه های برنامه نویسی خوب است.
یکی از نکات اصلی این فصل، اتخاذ برنامهریزی «دفاعی» است – جلوگیری از شکستها قبل از وقوع. به جای تکیه بر بلوکهای «try-catch» برای رسیدگی به خطاها، باید با اعتبارسنجی ورودیها، اطمینان از پیششرطها و سادهسازی کد از آنها اجتناب کنیم. این اقدامات برای به حداقل رساندن حالت های خطا بسیار مهم هستند.
این ایده به ویژه در سیستمهای پیچیده، جایی که استثناها و خرابیها پیچیدگی را افزایش میدهند و نگهداری کد و اشکالزدایی را دشوار میکنند، مرتبط است. زیمرمن تاکید می کند که خرابی های قابل پیش بینی نباید به عنوان استثنا در نظر گرفته شوند، بلکه باید در جریان عادی برنامه ادغام شوند. به این ترتیب، کد قوی تر، قابل خواندن و نگهداری آسان تر می شود.
یک نکته ضروری در ایجاد رابط های امن، تشخیص خطاهای استفاده در اسرع وقت است. در بدترین حالت، استفاده نامناسب مورد توجه قرار نمیگیرد و منجر به زنجیرهای از خرابیهای رابط میشود. در بهترین حالت، طراحی حتی از بروز خطا جلوگیری می کند.
با این حال، مهم است که به یاد داشته باشید:
“یک اشتباه رایجی که ما هنگام تلاش برای طراحی چیزی کاملاً خطاناپذیر مرتکب می شویم، دست کم گرفتن نبوغ افراد خطاپذیر است.”
در نتیجه، هیچ طراحی کاملی وجود ندارد. ما می توانیم از اشتباهات مستقیم کاربر جلوگیری کنیم، اما رفع عوارض جانبی آن دشوار است. هدف ما باید ایجاد طرحی باشد که استفاده صحیح از آن را آسان کند و برای هر اشتباهی سخت باشد.