diff --git a/HW_COLLECTIONS.md b/HW_COLLECTIONS.md index c1e19c3..c5f225a 100644 --- a/HW_COLLECTIONS.md +++ b/HW_COLLECTIONS.md @@ -1,21 +1,21 @@ -# Домашнее задание к занятию "Collections Framework. CRUD и тестирование систем, управляющих набором объектов" +# Домашнее задание к занятию «Collections Framework. CRUD и тестирование систем, управляющих набором объектов» ## Цель задания -1. Научиться использовать коллекции для работы с наборами элементов +1. Научиться использовать коллекции для работы с наборами элементов. ------ ## Инструкция к заданию -1. Скачайте и установите профессиональный редактор кода [Intellij Idea Community Version](https://www.jetbrains.com/idea/download/) -1. Откройте IDEA и [создайте и настройте новый Maven-проект](QA_Maven_Idea_Create.md) (под каждую задачу следует создавать отдельный проект, если обратное не сказано в условии) +1. Скачайте и установите профессиональный редактор кода [IntelliJ IDEA Community Version](https://www.jetbrains.com/idea/download/). +1. Откройте IDEA, [создайте и настройте новый Maven-проект](QA_Maven_Idea_Create.md). Под каждую задачу следует создавать отдельный проект, если обратное не сказано в условии. 2. Создайте пустой репозиторий на GitHub и свяжите его с папкой вашего проекта (не с какой-либо другой папкой). -3. Правильно настройте репозиторий в плане `.gitignore`. Проигнорируйте папки `.idea` и `target` (раньше была `out`) и `.iml`-файл - их в репозитории быть не должно. -4. Закоммитьте и запушьте созданный проект на гитхаб, [настройте Github Actions](QA_CI.md), сделайте `git pull`. -4. Выполните в IDEA требуемую задачу согласно условию. -5. Проверьте соблюдение [правил форматирования кода](QA_Java_Idea_Format.md) -6. Убедитесь что при запуске `mvn clean verify` (раньше было `mvn clean test`) все тесты запускаются, проходят, а сборка завершается успешно +3. Правильно настройте репозиторий в плане `.gitignore`. Проигнорируйте папки `.idea` и `target` (раньше была `out`) и `.iml`-файл — их в репозитории быть не должно. +4. Закоммитьте и запушьте созданный проект на GitHub, [настройте Github Actions](QA_CI.md), сделайте `git pull`. +4. Выполните в IDEA требуемую задачу по условию. +5. Проверьте соблюдение [правил форматирования кода](QA_Java_Idea_Format.md). +6. Убедитесь, что при запуске `mvn clean verify` (раньше было `mvn clean test`) все тесты запускаются, проходят, а сборка завершается успешно. 7. Закоммитьте и отправьте в репозиторий содержимое папки проекта. 8. Убедитесь, что CI запустился на последнем коммите и завершился успешно (зелёная галочка). @@ -23,9 +23,9 @@ ## Материалы, которые пригодятся для выполнения задания -1. [Как создать Maven-проект в IDEA?](QA_Maven_Idea_Create.md) -1. [Как отформатировать код в Java?](QA_Java_Idea_Format.md) -1. [Как настроить CI на основе Github Actions?](QA_CI.md) +1. [Как создать Maven-проект в IDEA](QA_Maven_Idea_Create.md). +1. [Как отформатировать код в Java](QA_Java_Idea_Format.md). +1. [Как настроить CI на основе GitHub Actions](QA_CI.md). ------ @@ -34,16 +34,16 @@ Ваша задача — разработать класс, управляющий турниром игроков. Каждый игрок описывается дата-классом `Player` с полями `id`, `name`, `strength` (сила). Сам же турнир описывается классом `Game` с методами: -* `register (Player player)` — метод регистрации игрока, если игрок не зарегистрирован, то он не сможет играть в турнире. Вам нужно хранить всех зарегистрированных игроков в поле класса `Game` в виде списка. +* `register (Player player)` — метод регистрации игрока, если игрок не зарегистрирован, то он не сможет играть в турнире. Вам нужно хранить всех зарегистрированных игроков в поле класса `Game` в виде списка; * `round (String playerName1, String playerName2)` — метод соревнования между двумя игроками. Если хотя бы один из игроков не зарегистрирован, должно выкинуться исключение `NotRegisteredException` — сами создайте его класс. Обратите внимание, что игроки передаются методу через имя — полную информацию об игроке нужно будет найти в коллекции зарегистрированных игроков (см. аналог в виде `findById` из прошлых домашних заданий). Выигрывает тот игрок, у которого больше `strength` (сила), если сила одинаковая, то будет ничья. Метод должен возвращать одно число — `0` в случае ничьи, `1` в случае победы первого игрока и `2` в случае победы второго игрока. Напишите на класс `Game` тесты, покрыв по бранчам на 100%. -Итого: отправьте на проверку ссылку на репозиторий GitHub с вашим проектом. +Итог: отправьте на проверку ссылку на репозиторий GitHub с вашим проектом. ------ -## Задание 2 (НЕобязательное) +## Задание 2 (необязательное) Отведите ветку `fast` в репозитории прошлой задачи и выполняйте эту задачу в ней. Доработайте прошлую задачу, заменив коллекцию списка игроков на мапу (`HashMap`) для быстрого поиска информации об игроке по его имени. @@ -52,21 +52,21 @@ ------ -## Правила приема работы +## Правила приёма работы -Прикреплена ссылка на публичный репозиторий с решением задачи +Прикреплена ссылка на публичный репозиторий с решением задачи. ------ ## Критерии оценки -1. В каждом репозитории размещено содержимое папки проекта IDEA. Корнем репозитория должна именно папка проекта - не папка `src`, не папка внутри которой лежит папка проекта; т.о. в корне репозитория должна лежать сразу папка `src`. -1. Есть файл `.gitignore`, игнорирующий ненужные файлы и папки, которые должны отсутствовать в репозитории. Если они присутствуют - их нужно оттуда удалить. -1. Программа соответствует всем требованиям из условия задачи -1. Программа использует только те инструменты языка, которые мы проходили или которые прямо разрешены условием задачи -1. Программа работает правильно на всех примерах из условия -1. Программный код отформатирован и соответствует пройденным требованиям к качеству кода -1. При запуске `mvn clean verify` тесты запускаются и проходят, а сборка завершается успешно -2. В репозитории настроен CI на основе Github Actions и он успешно прошёл на последнем коммите -3. Программа спроектирована достаточно логично и правильно, не противоречит общепринятым в производстве практикам и традициям -4. При наличии недочётов, в зависимости от их серьёзности и количества, работа может быть отправлена на доработку или принята; решение принимается на основе экспертной оценки работы. +1. В каждом репозитории размещено содержимое папки проекта IDEA. Корнем репозитория должна быть именно папка проекта — не папка `src`, не папка, внутри которой лежит папка проекта. В корне репозитория должна лежать сразу папка `src`. +1. Есть файл `.gitignore`, игнорирующий ненужные файлы и папки, которые должны отсутствовать в репозитории. Если они присутствуют, их нужно оттуда удалить. +1. Программа соответствует всем требованиям из условия задачи. +1. Программа использует только те инструменты языка, которые мы проходили или которые прямо разрешены условием задачи. +1. Программа работает правильно на всех примерах из условия. +1. Программный код отформатирован и соответствует пройденным требованиям к качеству кода. +1. При запуске `mvn clean verify` тесты запускаются и проходят, а сборка завершается успешно. +2. В репозитории настроен CI на основе GitHub Actions и он успешно прошёл на последнем коммите. +3. Программа спроектирована достаточно логично и правильно, не противоречит общепринятым в производстве практикам и традициям. +4. При наличии недочётов, в зависимости от их серьёзности и количества, работа может быть отправлена на доработку или принята; решение принимается на основе экспертной оценки.