طراحی اولیه ابزار و اتصال به Cloudflare Worker
ساختن یک سیستم رزرو آنلاین از صفر، همیشه پروژهای زمانبر و پر از چالشهای زیرساختی بوده است. درگیر شدن با خرید هاست، تنظیمات دامنه، راهاندازی دیتابیس و نوشتن کدهای بکاند و فرانتاند، معمولاً روزها وقت توسعهدهنده را میگیرد. اما مسیر توسعه محصول با ورود هوش مصنوعی تغییر کرده است. وقتی با رویکرد «وایب کدینگ» پیش میرویم، دیگر قرار نیست خط به خط کدها را دستی بنویسیم؛ بلکه ما در نقش یک معمار، مسیر را برای هوش مصنوعی مشخص میکنیم.
یک سیستم استاندارد از بخشهای مختلفی مثل رابط کاربری بیمار، پنل مدیریت منشی، زیرساخت فنی و مسیر توسعه تشکیل شده است. ما دقیقاً همین ساختار را بدون نیاز به هیچ هاست و دامنهای، فقط بر بستر رایگان Cloudflare Workers پیادهسازی میکنیم.
چرا یکباره همه چیز را از هوش مصنوعی نخواهیم؟
شاید فکر کنید کافی است یک پرامپت طولانی بنویسید و تمام جزئیات پروژه را به جمنای (Gemini) بدهید تا ۸۰ درصد کار را در یک لحظه تحویل دهد. بله، این کار شدنی است؛ اما در پروژههای عملی، این روش به سرعت شما را به بنبست میرساند.
در این مسیر، تعامل مرحله به مرحله با هوش مصنوعی کلید موفقیت است. ما با جمنای چت میکنیم، کدهایش را روی محیط واقعی اجرا میکنیم، چالشها را میبینیم و مسیر را اصلاح میکنیم. وقتی وسط کدنویسی جمنای، آن را متوقف (Stop) کنید یا درخواستهای متناقض بدهید، هوش مصنوعی گیج میشود. به جای این کار، منطق برنامه، دیتابیس و رابط کاربری را قدم به قدم پیش میبریم.
معماری یک محصول واقعی؛ از کاربر تا ادمین
ما در حال ساخت یک اسباببازی نیستیم؛ بلکه یک MVP (کمینه محصول پذیرفتنی) کامل برای یک مطب طراحی میکنیم که دو سمت کاملاً مجزا دارد:
- سمت بیمار (Frontend): کاربر باید بتواند روزها و ساعتهای خالی را ببیند. یک نکته مهم در تجربه کاربری (UX) این است که ما تایمهای رزرو شده را پنهان نمیکنیم؛ بلکه آنها را به صورت غیرقابل انتخاب (Disabled) نمایش میدهیم. این کار حس شلوغ بودن مطب و ترس از دست دادن (FOMO) را به کاربر منتقل میکند. بعد از وارد کردن نام و شماره تماس، سیستم یک کد رهگیری و پیام موفقیت به او میدهد.
- سمت منشی (Admin): اینجا قلب تپنده مدیریت نوبتها است. منشی به آدرسی کاملاً مجزا با رمز عبور وارد میشود. او میتواند ساعتهای کاری پیشفرض (مثلاً شنبه تا چهارشنبه، با بازههای مشخص) را تعریف کند. اگر یک روز خاص تعطیل بود، آن تاریخ را استثنا کند تا امکان رزرو برای آن روز بسته شود. همچنین مدیریت سؤالات متداول (FAQ)، لغو نوبتها و ثبت نوبت دستی، همگی از این پنل انجام میشود.
چالشهای ملموس در کار با جمنای و کلودفلر
وقتی وارد فاز اجرایی میشوید، متوجه خواهید شد که هوش مصنوعی بینقص نیست. در مسیر پیادهسازی این سیستم روی کلودفلر و دیتابیس D1، با چالشهای واقعی روبرو میشویم که حل آنها نیازمند درک درست از رفتار هوش مصنوعی است:
- خطاهای پنهان در دیتابیس: وقتی جمنای کدهای SQL را برای ساخت جداول به شما میدهد، معمولاً داخل آنها کامنت (توضیحات) مینویسد. اگر این کدها را مستقیماً در کنسول دیتابیس کلودفلر اجرا کنید، با خطا مواجه میشوید. راهحل ساده است: باید از جمنای بخواهید کدهای SQL را بدون هیچگونه کامنتی بنویسد.
- اصرار به مسیرهای پیچیده برنامهنویسی: هوش مصنوعی تمایل دارد راهحلهای پیچیده پیشنهاد دهد. مثلاً از شما میخواهد برای مدیریت فایلها از ابزار Wrangler (محیط کامند لاین) استفاده کنید. اما برای کسی که میخواهد سریع و بصری کار کند، این یک مانع است. باید به صراحت به ابزار بگویید که میخواهید تمام کارها را مستقیماً از طریق رابط کاربری وب کلودفلر مدیریت کنید.
- تنبلی در کدهای طولانی: وقتی حجم فایلها زیاد میشود (مثلاً بالای ۱۰۰۰ خط کد) یا زمان زیادی از چت میگذرد، جمنای اصطلاحاً تنبل میشود. به جای ارائه کد کامل، فقط بخشهای تغییر یافته را میدهد که جایگذاری آنها برای افراد مبتدی سخت است. در این مواقع، باید یاد بگیرید چطور به جای دریافت مجدد کل کد، فقط توابع مورد نیاز را درخواست کنید تا توکنهایتان هدر نرود.
مدیریت امنیت و متغیرها
یکی از اشتباهات رایج در ساخت ابزارها، قرار دادن رمز عبور منشی یا کلیدهای دسترسی (API Keys) در داخل خود کد یا دیتابیس است. کلودفلر برای این موضوع یک راهحل استاندارد به نام Variables & Secrets دارد. شما متغیری مثل رمز عبور را در تنظیمات پلتفرم تعریف میکنید و کد شما فقط آن را فراخوانی میکند. با این کار، امنیت سیستم حفظ میشود و در صورت نیاز به تغییر رمز، نیازی به دستکاری کدهای اصلی نخواهید داشت.
مهارت دیباگ کردن؛ قلب وایب کدینگ
در طول مسیر توسعه، قطعاً به مشکلاتی مثل لود نشدن فونتهای فارسی، خطای اتصال دیتابیس یا نمایش ندادن درست روزهای استثنا برمیخوریم. هنر شما در وایب کدینگ این نیست که کد بینقص بنویسید؛ بلکه این است که بتوانید خطاها را بهدرستی به هوش مصنوعی گزارش دهید.
مثلاً اگر صفحه لاگین ارور داد، نباید فقط بگویید «کار نمیکند». باید به تب Network مرورگر بروید و کانتکست درست را به جمنای بدهید: «درخواست به این آدرس رفت و این پیام خطا برگشت. ضمناً من قبلاً دیتابیس را ساخته و متصل کردهام.» با این توضیحات دقیق، جمنای سریعاً باگ را پیدا و برطرف میکند.
نگاه به آینده؛ توسعهپذیری سیستم
این سیستم رزرو یک نقطه شروع عالی است. اما معماری آن طوری چیده شده که در آینده بتواند گسترش پیدا کند. ساختار API ها و Endpoint هایی که ایجاد کردهایم، به ما اجازه میدهد در قدمهای بعدی، سیستم را به ابزارهایی مثل n8n متصل کنیم. به این ترتیب، میتوانیم از طریق یک ربات تلگرامی هم نوبتها را مدیریت کنیم و نیازی به باز کردن مداوم مرورگر نداشته باشیم.
البته باید در نظر داشته باشید که برای پروژههای تجاری بزرگتر و حفظ پایداری در شرایط خاص اینترنت، ممکن است در آینده بخواهید دیتابیس و فایلهای اصلی (مثل کدهای HTML، ساختار پس زمینه و فایلهای استاتیک) را به سرور شخصی خودتان منتقل کنید. اما برای شروع سریع، لانچ کردن نسخه اولیه و آزمون و خطا، کلودفلر یک انتخاب قدرتمند است.
شروع کار با هوش مصنوعی برای ساخت ابزارها، نیازمند یادگیری نحوه تعامل با ماشین و درک منطق پایهای سیستمها است. این یک مسیر جذاب و پر از دستاورد است که با آزمون و خطا، شما را به یک سازنده خلاق تبدیل میکند