Files
GildedRose-Refactoring-Kata/GildedRoseRequirements_ru.md
T

41 lines
4.6 KiB
Markdown

# Технические требования «Gilded Rose»
Привет и добро пожаловать в команду «Gilded Rose». Как вы знаете, мы небольшая гостиница удобно расположенная
в известном городе под руководством дружественного управляющего по имени Эллисон. Также мы занимаемся покупкой
и продажей только самых лучших товаров. К несчастью, качество наших товаров постоянно ухудшается по мере приближения
к максимальному сроку хранения.
У нас есть информационная система, которая ведет переучет всех товаров. Система
была разработана рубаха-парнем, по имени Leeroy, который отправился за поисками новых приключений. Ваша задача
заключается в том, чтобы добавить новый функционал в нашу систему, чтобы мы могли начать продавать новую категорию
товаров. Для начала введение в нашу систему:
- Все `товары` имеют значение `срока реализации` (`SellIn`), которое обозначает количество дней, в течение которых мы должны их продать
- Все `товары` имеют значение `качества` (`Quality`), которое обозначает, насколько ценен товар
- В конце дня наша система снижает значение обоих свойств для каждого товара
Довольно просто, не правда ли? Тут-то и начинается самое интересное:
- Как только срок продажи товара истек, его качество (`Quality`) портится в два раза быстрее
- Качество (`Quality`) товара никогда не бывает отрицательным
- Для товара __"Aged Brie"__ качество (`Quality`) увеличивается с возрастом
- Качество (`Quality`) товара никогда не превышает `50`
- __"Sulfuras"__, являясь легендарным товаром, никогда не нужно продавать и его `качество` (`Quality`) никогда не уменьшается
- __"Backstage passes"__, как и __"Aged Brie"__, увеличивается в качестве (`Quality`) по мере приближения к значению срока реализации (`SellIn`):
- Качество (`Quality`) увеличивается на `2`, когда остаётся `10` дней или меньше, и на `3`, когда остаётся `5` дней или меньше, но
- Качество (`Quality`) падает до `0` после концерта
Недавно мы подписали контракт с поставщиком зачарованных товаров. Это требует обновления нашей системы:
- Зачарованные (__"Conjured"__) предметы теряют качество (`Quality`) в два раза быстрее обычных товаров
Не стесняйтесь вносить любые изменения в метод `UpdateQuality` и добавлять любой новый код до тех пор,
пока система работает корректно. Тем не менее, не меняйте класс `Item` или свойства `Items`, так как они принадлежат
сидящему в углу гоблину, который очень яростен и поэтому выстрелит в вас поскольку не верит в принцип
совместного владения кодом (вы можете сделать метод `UpdateQuality` и свойства класса `Item` статическими
если хотите, мы вас прикроем).
Просто для уточнения, товар никогда не может иметь качество (`Quality`) выше чем `50`, однако легендарный товар __"Sulfuras"__
имеет качество `80` и оно никогда не меняется.