تا حالا شده توی خونه مبل رو جوری بذاری که جلوی پریز رو بگیره ولی بعد یه مدت به همون وضعیت عادت کنی؟ حالا اگه یکی بیاد مبل رو جابهجا کنه که خونه رو قشنگ کنه، شاکی میشی چون تمام نظم ذهنی تو به هم ریخته. این دقیقا خلاصه اتفاقیه که بهش میگن قانون هایروم.
این قانون تبدیل شده به یکی از قوانین نانوشته مهندسی نرم افزار که خیلی خوبه که یادش بگیرید !
حرف حساب این قانون ساده است: اگه کدی که زدی کاربر زیادی داشته باشه، دیگه مهم نیست توی داکیومنت و راهنما چی نوشتی. مردم به جای اینکه بخونن تو چی گفتی، نگاه میکنن کدت در عمل چیکار میکنه و دقیقا روی همون رفتار (حتی اگه غلط یا اتفاقی باشه) حساب باز میکنن.
یه مثال واقعی و عجیب از دنیای لینوکس:
یه بار مهندسهای گوگل دیدن توی خروجی لیست فایلهای لینوکس چندتا فاصله خالی (Space) بیخود وجود داره. اونا هم از روی دلسوزی این اسپیسها رو حذف کردن که خروجی تمیز بشه. به محض منتشر شدن این تغییر، کلی از برنامههای دنیا از کار افتاد! چرا؟ چون برنامهنویسهای دیگه کدشون رو جوری نوشته بودن که مثلا میگفت: برو کاراکتر شماره ۲۰ رو بردار. اونا از اون فاصلههای بیخود به عنوان خطکش استفاده میکردن و با حذف اونا، کل محاسباتشون غلط شد.
یا مثلا یه کتابخونه قدیمی بود که وقتی فضای هارد خیلی زیاد میشد، به خاطر باگ، عدد رو منفی نشون میداد. بقیه به جای گزارش باگ، توی کدشون نوشتن: اگه عدد منفی بود یعنی فضا خیلی زیاده! حالا اگه سازنده بیاد این باگ رو درست کنه و عدد رو مثبت نشون بده، برنامه تمام اون آدمها میترکه چون فکر میکنن فضای هارد تموم شده.
ته داستان اینه که وقتی نرمافزارت بزرگ و پرکاربر میشه، تو دیگه صاحب ۱۰۰ درصد کدت نیستی. هر حرکت کوچیکی که بزنی، یه جای دنیا یه نفر هست که به اون مدل "تپق" زدن کدت عادت کرده و اگه اصلاحش کنی، زندگیش به هم میخوره. توی ابعاد بزرگ، دیگه فرقی بین باگ و ویژگی وجود نداره؛ هر چیزی که کاربر میبینه، براش میشه قانون.
تا حالا بهش برخوردین ؟ دوست دارم نظرتونو بدونم راجبش !
#lawsofsoftwareengineering
@codehalics | کدهالیک
Post #395
531
- ❤ 8
- 👏 4
- 🤣 1