# 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. Не бачу використання паттернів проектування.