# Review Обершев Владислав
Part2
-----------
1. Необхідно розділяти на hpp і cpp файли. Рекомендую детально ознайомитися з етапами зборки програм.
2. Неініціалізовані параметри класів, що може призвести до невизначеної поведінки.
3. Безліч "магічних" чисел. Краща практиктика - використовувати іменовані константи.
4. Слід розділяти логіку і дані. Рекомендую притримуватися цього принципу навіть в пет проектах. Для прикладу стаття, але можна ще пошукати приклади з поясненнням принципу.
https://blog.klipse.tech/databook/2020/10/02/separate-code-data.html
5. Зустрічається безліч неініціалізованих сирів вказівників. Як мінімум через це необхідно було використати розумні вказівники.
Досить дивна конструкція.

4. Немає застосування патернів проектування.
5. Не вказується ключове слово override при перевизначенні методів базових класів.
6. Порушується інкапсуляція шляхом вказання полів класів в публічній секції.
7. Порівняння вказівника з NULL.https://highload.today/ukazateli-null-nullptr/
У вимогах до тестового вказані вимоги, які бажано виконувати, так як інакше ми не зрозуміємо що ви знаєте і чи вмієте використовувати. Навіть таку гру можна спроектувати таким чином, що це буде як міні рушій для створення простих 2d ігор і тут можна вже використати як мінімум фабрику чи фабричний метод, спостерігач і т.д.
Рекомендована література:
https://drive.google.com/drive/folders/1xeGgYlFCOuP4yR-wJq_Ve1LbJWb-fau3?usp=share_link
------------
Part1
--------
1. Не можу зібрати проект зі студії. Це пов'язано з тим, що в налаштуванні проекту вказаний абсолютний шлях до бібліотеки, потрібно використовувати відносний.

2. Рекомендую подивитися лекцію про принципи Чистого коду.
https://youtu.be/otrfSgeK3JI
3. Передивіться форматування коду вашого проекту.
В чому особливість, що деякі назви класі lowercase, а інші ні. Давайте приймемо один стиль в буде скрізь використовуватись наступний формат:
class Name;

Потрібно уникати подібних речей і т.д.

Для нас дуже важливо охайність і однорідність форматування коду.
4. Потрібно подумати де доцільно використати розумні вказівники і застосувати їх.
5. Не бачу використання паттернів проектування.