Code katas — это небольшие упражнения по кодированию для оттачивания ваших навыков программирования. В этом посте я покажу вам свою любимую кодовую ката. Основная идея состоит в том, чтобы решить относительно простую проблему программирования, следуя преувеличенной версии лучших практик кодирования.

Цель

  • Заставьте вас задуматься о своих методах кодирования.
  • Подумайте о компромиссах, возникающих при выполнении повседневных задач программирования, таких как разделение класса или метода.

Правила

  • Все методы имеют максимум три строки кода.
  • Все классы имеют максимум два поля (за исключением классов данных и POJO).
  • Все классы имеют максимум десять строк кода (исключая импорт).

Эти правила имеют в виду Java и Kotlin; вам может потребоваться настроить их в соответствии с вашим языком программирования.

Проблема

Используя предпочитаемый вами язык программирования, разработайте программу лояльности для кофейни. Клиенты получают одну марку за кофе; когда они достигают шести марок, у них есть один бесплатный кофе. Приложение предоставляет следующие общедоступные операции:

  • Создайте клиента.
  • Создание штампа для клиента.
  • Перечислите все марки и бесплатные кофе для клиента.
  • Получите бесплатный кофе.

Если клиент достигает шести марок при добавлении новой марки, приложение должно создать бесплатный кофе в награду.

Не стесняйтесь задавать уточняющие вопросы, оставлять отзывы или делиться решениями в моем Твиттере. Посмотрите другие мои упражнения по программированию здесь.

Примечания/предположения

  • Приложение может хранить состояние (клиенты, марки, бесплатный кофе) в памяти.
  • Делайте разумные предположения для таких вещей, как обработка ошибок (например, попытка добавить штампы не выходящим клиентам); эта часть не так важна.
  • Чтобы упростить тестирование, вы можете предварительно загрузить в свое приложение информацию о клиентах, марках и бесплатном кофе.

Первоначально опубликовано в моем блоге здесь.