بهجای وباپ داخلی، یک بات اسلک بساز
خلاصهٔ کاملتر
نویسنده میخواست یک ابزار کوچک برای هماهنگی «ناهار دونفره» بسازه و رفلکسش این بود که یک وباپ کامل با Convex بزنه؛ تا اینکه یک همکار پرسید «چرا این یک بات اسلک نیست؟». پیامش اینه که آیین وباپ (انتخاب فریمورک، بالاآوردن دیتابیس، سیمکشی احراز هویت و انتخاب هاست) غلط نیست، اما وقتی مخاطب اولیه یک دفتره و قابلیت «پیدا کردن یک ساعت خالی هفتهی بعد» است، بیشازحد بزرگه.
هزینههای پنهان وباپ داخلی رویهم آن رو میکشن: هزینهی فعالسازی (همکارها باید یادشون بمونه ابزار وجود داره)، URL (یک ماه بعد کسی لینک رو یادش نیست)، سیستم طراحی (یا از صفر کامپوننت میسازی یا با Tailwind میجنگی)، موبایل (طراحی واکنشگرا یک مالیات زمانیه) و هویت کاربر (هیچکس رمز جدید نمیخواد؛ SSO جواب درسته اما دردسر آدرس بازگشت (کالبک) داره).
ساختن داخل اسلک همهی اینها رو به یک تصمیم تبدیل میکنه و چهار چیز رو رایگان میده: هویت (هر رویدادی که بات میگیره از قبل احراز شده و user_id و team_id داره)، توزیع (همکارها بهجای رفتن به یک تب، از همان رشتهی چت /plunch میزنن)، سیستم طراحی (بلاککیت؛ مجموعهای محدود از کامپوننتها که روی دسکتاپ و موبایل یکدست رندر میشن) و سطح گفتوگو (دستورها کنار پیامهایی که همکارها میفرستن زندگی میکنن).
اما اسلک خودِ ابزار رو نمیسازه. ممکنه برای هویت از OAuth فرار کنی، ولی برای دسترسی به منابع (مثلاً Google Calendar بهنمایندگی از هر کاربر) همچنان به یک جریان OAuth جداگانه نیاز داری که اسلک مدیریتش نمیکنه؛ و اگه بات در Socket Mode باشه، باید یک سرور HTTP برای callback بالا بیاری. state هم مشکل بعدیه: اسلک از دید بات بدون حالته، پس بهمحض اینکه بخوای چیزی (مثل توکن) رو به یاد بسپاری، دیتابیس و migration و بکاپ برمیگرده. و محدودیتهای بلاککیت وقتی UX پیچیدهتر بشه، تبدیل به مانع میشن.
جمعبندی: با ساختن روی اسلک، هویت، توزیع و طراحی رو به اسلک واگذار میکنی. همهچیز رایگان نیست (OAuth منابع، state و محدودیت بلاککیت میمونن) اما اینها رو در هر صورت داشتی. برای ابزاری هممقیاس همکار که میخواد همانجا که گفتوگو هست زندگی کنه، معاملهی خوبیه. بهجای «بسازمش؟» بپرس «دارم سراغ ابزار درست میرم؟».
نکات کلیدی:
- برای ابزار داخلی کوچک، وباپ کامل اغلب بیشازحد بزرگه
- اسلک هویت، توزیع، سیستم طراحی (بلاککیت) و سطح گفتوگو رو رایگان میده
- اسلک OAuth منابع، state و دور زدن محدودیتهای بلاککیت رو نمیده
- سؤال درست: «دارم سراغ ابزار درست میرم؟» نه «بسازمش؟»




