---
# System prepended metadata

title: Review Обершев Владислав

---

# Review Обершев Владислав


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

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. Не можу зібрати проект зі студії. Це пов'язано з тим, що в налаштуванні проекту вказаний абсолютний шлях до бібліотеки, потрібно використовувати відносний.
![](https://i.imgur.com/Y9nJjSe.png)

2. Рекомендую подивитися лекцію про принципи Чистого коду.
https://youtu.be/otrfSgeK3JI

3. Передивіться форматування коду вашого проекту.
В чому особливість, що деякі назви класі lowercase, а інші ні. Давайте приймемо один стиль в буде скрізь використовуватись наступний формат:
class Name;
![](https://i.imgur.com/YItXO1F.png)
Потрібно уникати подібних речей і т.д.
![](https://i.imgur.com/2Xr1TP4.png)
Для нас дуже важливо охайність і однорідність форматування коду.

4. Потрібно подумати де доцільно використати розумні вказівники і застосувати їх.

5. Не бачу використання паттернів проектування.

