پاسخ گم شد یا درخواست رد شد؟
فرض کن پول غذا را پرداخت کردهای، اما صفحه تأیید باز نمیشود. آیا فوری دوباره پرداخت میکنی؟ در ربات هم پاسخ گمشده الزاماً رد سفارش نیست و تکرار میتواند ریسک را دو برابر کند. این جلسه تمرین کنترل در محیط جداگانه دمو است. به حساب واقعی یا موقعیت برنامه دیگر دست نمیزنیم. هدف تعریف رفتار هنگام ابهام است، نه آزمایش خطرناک با پول مشتری یا اعتماد به اینکه ارتباط همیشه سالم میماند.
پاسخ گمشده ≠ رد سفارش
سرور روشن کافی نیست
سرور مجازی وابستگی به لپتاپ را کمتر میکند؛ منطق، داده و اجرا را تضمین نمیکند. زمان آخرین قیمت معتبر، اتصال، نسخه و تنظیمات را ثبت کن. ساعت سیستم، بروکر و منطقه زمانی را جدا بشناس. «سرور روشن بود» دلیل سفارش را توضیح نمیدهد؛ لاگ تصمیم لازم است. داده کهنه و اتصال نامعتبر باید رفتار تعریفشده داشته باشند. ورودی ناقص فقط به خاطر روشنبودن برنامه نباید معتبر فرض شود.
نسخه • تنظیمات • تازگی قیمت • اتصال
قصد سفارش هویت میخواهد
هر قصد ارسال، شناسه پایدار میخواهد تا تکرار همان رویداد شناخته شود. انتظار پاسخ، موقعیت باز، نتیجه نامشخص و توقف را جدا کن. پس از شروع دوباره، حافظه ذخیرهشده را بازیابی و سفارشها را با سرور تطبیق بده. پاککردن حافظه مشکل را حل نمیکند؛ شواهد لازم را حذف میکند. تا نتیجه روشن نشده، ورود تازه و تکرار درخواست باید طبق سیاست امن محدود شوند. برگشت موفق یک تابع هم همیشه به معنی تکمیل معامله نیست.
شناسه پایدار + بازیابی + تطبیق
معنی توقف را دقیق کن
توقف ورود تازه با بستن همه موقعیتها یکسان نیست. در مدل آموزشی، ورود ممنوع میشود ولی مدیریت موقعیت موجود قانون جدا دارد. بستن اجباری هزینه و ریسک خودش را دارد. به موقعیت نامرتبط دست نزن. اگر ارتباط قطع باشد، کلید محلی نمیتواند رسیدن دستور به بروکر را تضمین کند. توقف سمت سرور هم قیمت اجرای قطعی نیست. نام دکمه کافی نیست؛ رفتار، دامنه و شرایط بازگشت آن باید قابل آزمون باشند.
توقف ورود ≠ بستن همه دامنه کنترل مشخص
چهار خرابی قابل تمرین
در محیط جدا چهار حالت بساز: قیمت کهنه، رویداد تکراری، قطع ارتباط پس از ارسال و شروع مجدد با موقعیت باز. قبل از آزمون خروجی موردانتظار را بنویس. برای قیمت کهنه ورود رد شود؛ در نتیجه نامشخص ابتدا تطبیق انجام شود. آستانههای عددی از مشخصات همان سیستم میآیند. عدد مثال را برای همه نمادها مناسب ندان. آزمون باید قابل تکرار باشد و به برنامهها یا موقعیتهای خارج از محدوده اثر نگذارد.
قیمت کهنه • تکرار • ابهام • بازیابی
مدرک موفقیت آزمون
نسخه، ورودی، انتظار، خروجی واقعی و خطا را نگه دار. چاپ کلمه موفق کافی نیست؛ تعداد سفارش و تغییر وضعیت را کنترل کن. شبیهسازی منطق را میسنجد، نه کیفیت اجرای زنده. بعد از آن دمو با لاگ لازم است. چند روز سود جای آزمون قطع اتصال و بازیابی را نمیگیرد. هر خطر شاهد متناسب میخواهد. برای هر آزمون باید بتوانیم بگوییم چه چیزی بررسی شده و چه چیزی هنوز ناشناخته است.
ورودی → انتظار → واقعیت شمارش سفارش و وضعیت
تمرین ایمنی
جدول چهار خرابی را با شرط قبولی و شکست کامل کن. چرا نباید پس از گمشدن پاسخ فوراً سفارش را تکرار کرد؟ ممکن است سفارش اول پذیرفته شده باشد. اول تطبیق، بعد تصمیم. برای شروع مجدد نیز بنویس چه چیزی باید از حافظه و سرور بازیابی شود. جلسه بعد این کنترلها را به جدول مدارک قبل از خرید اکسپرت تبدیل میکنیم. کاهش ابهام هدف است؛ حذف تمام ریسکها وعده این درس نیست.
اول تطبیق؛ بعد تصمیم