Перенос с другого сайта.
Сделал ещё одно тестовое задание.
Ещё ведутся разговоры о переносе игры с флеша на юнити.
Но пока заказчик молчит.
---
Очередной отказ...
https://github.com/Musin-Mihail/TestProjectCraft
Фидбек по Вашему тестовому от лида:
- вся игра на 3 классах;
- все на mono;
- магические числа;
- нарушения SOLID;
- неверная верстка (как я понял, автор задумывал открытие меню выбора сложности через отдельную кнопку, но в верстке убрал её за игровой экран);
- отсутствие расширяемости.
Рекомендации: углубиться в паттерны проектирования, принципы SOLID.
---
Я им отправил ответ
Вы хотели чтобы я создал отдельные классы для каждого действия в игре? Это примерно 20 штук.
Все мои классы работают с MonoBehaviour, поэтому они все наследуют его.
Магическое число у меня только одно Time.timeScale == 1. К сожалению я не смог придумать другой способ перезапуска игры.
В чём я ошибся в SOLID? Видимо я не подхожу на конвейерное производство. Ради этих правил я не готов создавать лишний код. Или я чего-то не понимаю.
Кнопка смены сложности видна, в начале игры и при проигрыше, чтобы нельзя было случайно её нажать в процессе игры. Для этого я видео создавал, чтобы не возникало недопонимания.
В задании было требование расширяемости? Это по умолчанию для всех проектов? Даже самых маленьких, где я должен сложить 2+2?
Буду благодарен, если вы мне пришлёте репозиторий человека который соответствует принципам SOLID по этому заданию.
---
Как я им и написал, я видимо не подхожу для работы в команде.
Я понимаю, что все в команде должны писать одинаково.
Может когда-нибудь я и научусь писать код в таком формате. Но я не вижу в этом практического смысла, когда я работаю один...
Скорей всего я бы быстро перестроился, если бы я начал с ними работать, и писал код который им нужен, но не судьба.
---
Они сами меня нашли, сами отказали, я не огорчён. Но их ответ не делает меня лучше.
Ничего нового я для себя не нашёл. На конкретные ошибки они мне не указали. Но они и не менторы чтобы этого делать.
---
Мне кажется, что они мне вообще не ответ больше.
---
Изучаю принцип SOLID.
У меня в тестовом задании не было условия, чтобы я думал о расширении игры.
А принцип SOLID рассчитан на то, что код нужно будет поддерживать и расширять.
Получается задание было сформулировано с одними задачами. А проверили задание основываясь на других.
Или люди думают, что и так всё всем понятно и не нужно ничего объяснять.
---
Я ради тренировки переделаю код под принципы SOLID, но результат проверки немного непонятен.
---
Сейчас я в процессе редактирования... Какая же это бесполезная работа...
Столько лишнего кода... И не понятно ради чего...
---
Пришёл этап принятия. Провёл рефакторинг кода https://github.com/Musin-Mihail/TestProjectCraft
Было 369 строк кода, стало 468
Но на конечный результат это никак не сказалось.
Зато в процессе я научился чему то новому.
Я почему-то раньше не работал с экземплярами классов. Оказывается очень удобно.
---
Отправил новую версию на проверку.
---
Я даже видео об этом записал:)
---
Готовлю ещё одно видео по поиску пути
---
Доделал проект. 120 срок кода.
Записал материала на 6 часов. :)
Всё это время я придумывал алгоритм и тестировал.
Сейчас монтирую видео на YouTube
---
Оставил только голос. Получилось меньше двух часов.
Сейчас удаляю лишние слова.
---
Правильно говорят, если знаешь один язык программирования, то второй изучать проще.
Вчера создавал расширения для браузера Google Chome. Язык JavaScript
Интересный опыт, но ограничение браузера не дали реализовать задуманное.
Делал парсер страницы.
---
Оптимизировал алгоритм поиска пути. Всего одна дополнительная строчка кода.
Хочется об этом видео записать, но мало информации. Буду ещё что-нибудь придумывать.
---
Вчера прошло очередное собеседование.
Из него я понял, что я не знаю что такое структуры. Я их не использовал.
Теперь сижу, изучаю. Буду пробовать на своих проектах.
Но врятли я смогу оценит их в таких условиях.
---
Начал создавать лабиринт для моего алгоритма поиска пути
---
Доделал лабиринт. Нужно придумать как это визуализировать. А то со стороны не понятно.
Лабиринт 10 на 10 рассчитывается несколько секунд.
Сейчас мой алгоритм способен строить пути до 10000 точек.
-----
Без второй оптимизации (белая линия) ещё быстрее. Зависит от сложности лабиринта.