GildedRose-Refactoring-Kata/GildedRoseRequirements_ru.md

41 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Технические требования «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` и оно никогда не меняется.