فرانتاند نامرئی: تصمیمات کوچکی که یک محصول را نجات میدهند
بهترین کارهای فرانتاند هرگز در یک دمو خود را نشان نمیدهند.
کاری که من بیش از همه برای آن ارزش قائلم، نامرئی است. هیچکس از آن اسکرینشات نمیگیرد. اما بدون این کار، کاربران محصول را ترک میکنند؛ و شما شاید هرگز نفهمید که چرا آنها رفتند.
این کار در شکافها اتفاق میافتد. در میان صفحات و بین بکاند شما و یک انسان واقعی رخ میدهد.
در اینجا سه نمونه از اصلاحات کوچک آورده شده است که از مشکلات بزرگ جلوگیری میکنند.
۱. اصلاح خطاهای ورود (login)
مشکل: فرانتاند یک فیلد وضعیت (status) را بررسی میکرد تا ببیند آیا ورود موفقیتآمیز بوده یا خیر. اما بکاند یک توکن معتبر را به همراه یک وضعیت null ارسال میکرد. کاربر با وجود اینکه درست وارد شده بود، با خطا مواجه میشد.
راه حل: اکنون فرانتاند به جای بررسی رشتهی وضعیت، وجود یک توکن را چک میکند.
درس: یک فیلد مبهم در مستندات فنی، برای کاربر تبدیل به یک درِ بسته میشود.
۲. مدیریت لینکهای تأیید (verification)
مشکل: کاربر یک لینک تأیید را در یک تب جدید باز میکند. تب اصلی معلق (stuck) میماند. درخواستهای Polling به سرور با شکست مواجه میشوند، زیرا تب اول هیچ توکن ورودی ندارد.
راه حل: از storage event مرورگر استفاده کنید. وقتی یک تب local storage را بهروزرسانی میکند، تمام تبهای دیگر بلافاصله پیام را دریافت میکنند. این یک روش رایگان و آنی برای همگامسازی (sync) تبها است.
۳. زمان انتظار (cooldown) دکمه ارسال مجدد
مشکل: تایمر «ارسال مجدد ایمیل در ۳۰ ثانیه دیگر» در state کامپوننت ذخیره شده بود. اگر کاربر صفحه را رفرش میکرد، تایمر دوباره به صفر باز میگشت. کاربران دکمه را اسپم میکردند که باعث افزایش هزینههای ایمیل شما میشد.
راه حل: زمان معکوس را ذخیره نکنید. بلکه زمان پایان (deadline timestamp) را ذخیره کنید.
با ذخیره کردن زمان دقیق پایان دوره انتظار، تایمر با رفرش شدن صفحه از بین نمیرود. با بارگذاری مجدد صفحه، بازنشانی (reset) آن غیرممکن میشود.
چرا بنیانگذاران باید اهمیت دهند:
• اصلاح ورود، فعالسازی کاربر (user activation) را حفظ میکند. • همگامسازی تبها، نرخ تبدیل (conversion rate) شما را حفظ میکند. • زمان انتظار، بودجه شما را در برابر سوءاستفاده محافظت میکند.
مهندسی عالی فقط زیبا کردن ظاهر صفحه نیست؛ بلکه وسواس در مورد شکافهاست. این اصلاحات کمتر از پنجاه خط کد نیاز داشتند. ارزش واقعی از تشخیص مشکل و رفع آن در جای درست حاصل میشود.
منبع: https://dev.to/virendra2902/the-invisible-frontend-small-decisions-that-quietly-save-a-product-1pkl
