<aside> 💡
</aside>
اکانت در واقع شناسه ورود به سیستم بازی EA است و شامل ایمیل اکانت بعنوان شناسه و پسورد آن بعنوان رمز ورود به بازی است
ایمیلی که برای ساخت اکانت استفاده میشود توسط EA بعنوان آدرس اکانت شناخته شده و هر گونه اطلاعیه و اعلامیه به آن ارسال میگردد ،توصیه میکنیم برای هر اکانت ایمیل جداگانه و جدای از ایمیل کاری (فقط مختص اکانت EA و PSN اختصاصی همان اکانت باشد) استفاده کنید .
این ایمیل بعد از ساخت اکانت قابل تغییر و جایگزینی است، پسورد اکانت نیز قابل تغییر و یا بازیابی است.
هر شخص دیگری با داشتن ایمیل و پسورد اکانت و با استفاده از کد ورود یکبار مصرف ایمیل شده یا بک آپ کد و یا کد اتنتیکیتور ، امکان ورورد به داخل اکانت را دارد.
فکر کنید یک دیتا کلس داریم
@dataclass
class Order:
id: UUID
customer: Customer
created_at: datetime
accepted_at: Optional[datetime]
paid_at: optional[datetime]
shipped_at: Optional[datetime]
میخوایم این سناریو هارو پیاده سازی کنیم
Order that is received -> Order that is accepted
Order that is accepted -> Order that is paid
Order that is paid -> Order that is shipped
یک تابعی داریم که این چنین کار میکنه:
def ship_order(order: Order) -> Order:
خب طبیعتا مشکلی که وجود میاد اینه که چه چیزی باعث میشه که ما به flow و جریان دیتا احترام بذاریم؟
Order that is received -> Order that is shipped
چطور جلوی این رو میگیریم؟باید هردفعه تو ship order کلی چک بنویسیم که ۱۰۰درصد خیالمون راحت باشه که عملیاتی که میشه داره درست انجام میشه. به این کار میگن validation
تازه این یک سناریو ساده بود. همین ولیدیشن باید برای همه توابع دیگه ای که نیاز داریم نوشته شه یعنی:
accept_order
return_order