عاشقِ چیزِ اشتباه میشی
خلاصهٔ کاملتر
نویسنده (کارل کخ) از یه حالتِ شکستِ خاص حرف میزنه که فقط برای آدمهایی وجود داره که همزمان طراح و سازندهان. میگه یه چیزِ قشنگ میسازی، مثلاً یه ترنزیشن که دقیقاً درست فنر میزنه یا یه لودینگ که انگار زندهست، و بعد بیسروصدا شروع میکنی برعکس فکر کردن: دنبال دلیل میگردی که این کارو نگه داری، نه چون دلیل اول بوده، بلکه چون حیفت میاد چیزی که با لذت ساختی رو پاک کنی.
به گفتهٔ نویسنده، طراحی که فقط طراحی میکنه، خودِ مرحلهٔ تحویل ازش محافظت میکنه؛ کارو به یه مهندس میده و همون تحویل یه چکپوینته که یکی دیگه باید قانع بشه تا چیزی ساخته شه. ولی وقتی هر دو کار دست خودته، نه تحویلی هست نه ترجمهای نه لحظهای که یکی بپرسه چرا؛ مستقیم از ایده میری سرِ کد، تنها و سریع.
میگه میتونی مچِ خودتو بگیری. واضحترین نشونه ترتیبِ اتفاقاته: اگه داری بعد از اینکه چیزی ساخته شده توضیح میدی چرا خوبه، یعنی برعکس عمل کردی و اون توجیه اومده که از کار دفاع کنه نه که تستش کنه. نشونهٔ دوم حسشه؛ تصمیمِ درست حسِ خنثی داره و راحت حاضری حذفش کنی، ولی تصمیمی که ازش دفاع میکنی حسِ شخصی داره و دلت میخواد بحثو ببری، و همون هزینهٔ ازدسترفتهست که داره حرف میزنه.
نویسنده از تجربهٔ خودش میگه: چند تا انیمیشنِ فنری و حساس به سرعت برای ماژولِ Search Assist ساخته بوده که واقعاً بهشون افتخار میکرده، ولی هیچکدوم هیچچی رو حل نکردن؛ عددها تکون نخوردن و رفتار کاربرها فرقی نکرد. آخرش بیشترشونو پاک کرده و میگه هنوز یهکم میسوزه، که دقیقاً از همین میفهمه کارِ درستی بوده.
راهحلی که پیشنهاد میده «طراحیِ اولنوشتن» (write-first design) هست: اگه قبل از اینکه تصمیمو تو کد بریزی، دلیلشو تو قالبِ متن بنویسی، اونوقت کد در خدمتِ تصمیم درمیاد نه برعکس. قاعده سادهست؛ دلیل قبل از خودِ چیز میاد. اگه نمیتونی قبل از ساختن بنویسی چرا یه تعامل باید وجود داشته باشه، یه چیزِ دیگه بساز، و اگه ساختیش و دلیل هنوز نمیاد، مهربونترین کار پاککردنشه.
نکات کلیدی:
- دامِ طراحسازندهها: عاشقِ پیادهسازی میشی و بعد براش دلیل میتراشی
- نبودِ مرحلهٔ تحویل، چکپوینتِ «چرا این کارو میکنی؟» رو حذف میکنه
- نشونهها: توجیهِ بعد از ساخت، و حسِ شخصیِ دفاع بهجای بیطرفی
- راهحل: دلیلو قبل از کد بنویس؛ اگه دلیل نیومد، نساز یا پاک کن




