به تیم مهندسی Gilded Rose خوش آمدید! همانطور که میدانید، ما مسافرخانهای هستیم که فقط بهترین کالاها را میخرد و میفروشد. کیفیت کالاهای ما هرچه به مهلت فروششان نزدیکتر میشوند پیوسته افت میکند، بنابراین یک سیستم انبارداری داریم که این دادهها را پیگیری میکند.
از شما میخواهیم ویژگی تازهای به سیستم ما اضافه کنید تا بتوانیم فروش دستهی تازهای از اقلام را آغاز کنیم. با این حال، کد ما بههمریخته است و تا وقتی کد موجود را بازآرایی نکنید، افزودن ویژگی تازه دشوار خواهد بود.
پس کار شما دو بخش دارد: سیستم انبارداری را بازآرایی کنید، بعد ویژگی تازه را اضافه کنید.
اصول اولیهی سیستم ما از این قرار است:
خیلی ساده است، نه؟ اما اینجا است که ماجرا جالب میشود:
برای هموار کردن راه ویژگی تازه، کد موجود را بازآرایی کنید و تغییر دادنش را آسانتر سازید.
هر تغییری که میخواهید بدهید و هر کد تازهای که لازم است اضافه کنید، به شرطی که همهچیز همچنان درست کار کند (یعنی تا وقتی آزمونهای ویژگیهای موجود همچنان قبول شوند).
توجه: میتوانید فرض کنید که اقلام همیشه با کیفیتی معتبر شروع میکنند. به بیان دیگر، آزمونهای خودکار بررسی نمیکنند که وقتی کیفیت اولیهی یک قلم از بیشینه بالاتر باشد، یا وقتی کیفیت اولیهی یک Sulfuras چیزی جز ۸۰ باشد، چه اتفاقی میافتد.
ما بهتازگی با تأمینکنندهای برای اقلام Conjured قرارداد بستهایم. وظیفهی شما افزودن قواعد زیر به سیستم ما است: