تجربه
جاوا از نسخه ۸ اجازه میده در کنار شیگرا، تابعی هم بنویسی. دید متفاوتی نیاز داره و روند عادی ذهن برا حل مساله نیست. تابستون یک کتاب حجیم درموردش خوندم. برای تمرین درس زدم از پایه همه رو فانکشنال نوشتم و خوشحال و خندان که چه جالبه. نشستم به نگاه کردن کد (آره من زمان زیادی فقط کد رو تماشا میکنم) حس میکردم یه چیزی عادی نیست. تستها پاس میشدن و مشکل منطق نبود. سرچ کردم و ظاهرا یه مشکلی شبیه cognitive friction به وجود میاد لذا بخش زیادی از کد رو برگردوندم به حالت امری ساده. فقط دو قسمت موند که به نظرم تابعی هنوز خوب بود که یکی به دلیل اینکه jvm سازگاری کامل نداره با تابعی افت پرفورمنس داریم. فقط مورد آخر عیبی نداره و به طراحی کمک کرده.
حالا پرفورمنس و عادت ذهنی به کنار و شاید بشه پذیرفتش، مصیبت اصلی تست کد فانکشناله که واقعا زمانبره.
آخرش اینکه یه ابزار جدید دیگه دارم و حالا تعداد انتخابها بیشتره و باید انرژی بیشتری بذارم ببینم کی از کدوم باید استفاده کنم. و اینکه تماشای تکامل زبانها جالبه، حتی اگه جاوا باشی و ساختهٔ متخصصهای کاردرست باز هم نقص داری.
نکتهٔ اصلی مهندسی نرمافزار همین تریدآفه که همه جا به معنی واقعی همه جا باید حواست بهش باشه. هر جا که یه بهبودی داری باید به این هم فکر کنی که کجا داره بدتر میشه.
// شاید یه روزی مثل بقیه برنامهنویسا وبلاگ جداگانه زدم و با حوصله توضیح دادم فعلا نه.