Тестовое задание mid unity C# на 1400$. Не допускай таких ошибок

Поделиться
HTML-код
  • Опубликовано: 23 янв 2025

Комментарии • 121

  • @yummybunny7351
    @yummybunny7351 Год назад +7

    Andrey C# Expert, по итогу на ~1400$ тестовое выполнено, только чуть защитить его на собеседовании? В принципе тестовое тянет на такую цену?
    За код спасибо.
    5:20 согласен, не выглядит полезным. не нужно мокать все сервисы
    но в комментах уже обсудили
    6:50 asset Provider. Лучше сразу исп generic, тип без cast
    8:00 минусы сервис локатора.
    8:10 антипаттерн
    8:40 без PlayerPrefs = binaryFormatter
    9:10 в этом месте binary formatter не нужен
    9:30 лучше с async
    "using" declaration -> try-finaly -> dispose -> fileStream сам закроется
    IL
    11:20 на асинхронный сложно исправлять. до самого ядра дописывать
    15:30 вместо такого хардкода лучше SO
    18:30 лишние слова. лучше вообще без exception
    20:50 нужно разделение на save date и модель данных
    json, protobuf
    24:20 временно увеличил severity подсказок, чтобы понять сколько всего в проекте небрежностей
    25:20 предпочитает в средних и мелк проектах throw Exception вместо Debug.Log
    лучше в первые месяцы помучиться, но потом ядро будет стабильнее
    25:40 "data?.Some()" = скрытие бага
    26:20 Factory не нужно для каждого объекта, особенно если он создаётся 1 раз
    28:00 реальный проект должен оплачиваться
    28:20 отказали из-за незнания библиотеки. Согласен, жидкий ответ.

    • @gamedev_expert
      @gamedev_expert  Год назад +4

      Спасибо за тайм коды! Да вполне, крепким мидлам и 3000$ платят, тут уже не Джун точно

  • @Stellar_Architect
    @Stellar_Architect 4 месяца назад +1

    Только не останавливайся! Делай что делаешь. Очень полезно.

  • @VADIM-SOLOV
    @VADIM-SOLOV Год назад +6

    Спасибо за видео! Как по мне - это очень удачный формат видео. Я имею в виду код ревью + рефакторинг. Я считаю что у Вас отлично получается указывать на ошибки, комментировать и сразу же в коде рефакторить их. С нетерпением жду новых видосов и всего самого наилучшего! :)

    • @gamedev_expert
      @gamedev_expert  Год назад +1

      Спасибо за отзыв, как только придумаю что-нибудь интересное)

    • @КатавыйОбзорщик
      @КатавыйОбзорщик 3 месяца назад

      @@gamedev_expert Подскажи где искать уроки, чтобы научиться во все эти сервисы и ДИ для юнити??? А то чет я прям офигел от всего, хотя в юнити уже кучу игр сделал, а про такое первый раз услышал

    • @gamedev_expert
      @gamedev_expert  3 месяца назад +1

      @@КатавыйОбзорщик самыц простой путь - работать в команде с другими программистами. Альтернатива - это изучать исходники других игр. Можно через декомпилятор, но и на гитхабе можно искать. Например ищешь использование VContainer languange:c# и увидишь как используют di в других unity играх

    • @Nikita-os6om
      @Nikita-os6om 2 месяца назад

      @@КатавыйОбзорщик Это в кратце называется паттернами, на ютубе есть канал Sergey Kazantsev, там и про DI и про все принципы солид

  • @bonbad612
    @bonbad612 Год назад +7

    Большое спасибо за разбор! Приятно видеть фидбэк более опытных программистов. Кстати после собеседования написали, что как у них откроется вакансия на джуна, то напишут мне, но сообщений пока нет :)

    • @gamedev_expert
      @gamedev_expert  Год назад

      Круто, рад что ты нашел разбор полезным)

  • @PotatoManager420
    @PotatoManager420 Год назад +2

    Кстати спасибо за совет в конце видео, что не стоит делать такие тестовые задания бесплатно
    Самому лично приходилось делать такие тестовые задания,
    в итоге меня не взяли т.к. я не знал способов внедрения монетизации в игру, не знал Firebase, не знал как делать деплой через webgl на сайты yandex
    Я действительно их не знал, и подумал что их надо долго изучать, и в принципе не приводил агрументы что потрачу время на их изучение

  • @Diyozen
    @Diyozen Год назад +4

    Класс! Спасибо за видео. Иногда интересно посмотреть, что и как люди пишут.
    Но вот есть несколько нюансов, которые бросились в глаза. Хотел бы их поднять на обсуждение или просто обратить внимание.
    0. Действительно, архитектура местами прям копирует K-Syndicate. Но вот там, где нужно писать самому - начинает просаживаться. Некоторые места, наоборот, опущены. В общем, интересный симбиоз.
    1. "DI не используется" (c). На самом деле, используется. Здесь не используются DI-контейнеры (как, например, Zenject). Прокидывание зависимостей ручками - это т.н. "pure DI" (если вам нужны термины). Спор о том, что лучше "pure DI" или DI-контейнеры - вечен и идёт ещё от отцов-основателей техник DI в C# (например, того же Марка Симана, который пришёл к pure DI). Однако, однозначного мнения здесь нет. Главное понимать, зачем и почему ты используешь тот или иной подход.
    2. "IRandomService - бесполезный" (с). Не совсем. Благодаря выносу абстракции с рандомом, ты получаешь дополнительный контроль над процессом и логикой рандомизации. Например, здесь, ты можешь подсунуть другую реализацию, которая всегда будет возвращаться одно и то же число. Это удобно для тестов (даже без учёта юнит-тестов и интеграционных). Кроме того, ты защищаешь свой рандом от сайд эффектов. UnityEngine.Random небезопасен из-за того, что сид может меняться в любой точке проекта из-за его статики.
    3. По поводу повторяющийхся строк в описании исключений (таймкод 17:37). Есть ещё вариант просто-напросто сделать кастомное исключение и выбрасывать его, унаследовав от нужного. Тогда не было бы необходимости повторять строки.

    • @gamedev_expert
      @gamedev_expert  Год назад +2

      Привет! спасибо за отзыв
      1. я называл di в смысле dependency injection как автоматического внедрения зависимостей + постарался обратить внимание на минусы ручного. Хотя я легко могу путать термины.
      2. 100% я даже сделал это с прокидыванием seed в конструктор System.Random, иии.. на монтаже вырезал, т.к. всё равно усомнился, что надо учить таким крайностям, всё же кол-во кода при таком подходе растёт быстро
      3. Хороший вариант

    • @petrow_
      @petrow_ Год назад

      Все по факту, код реально либо купил либо пизданул их слитый курс - так же юзаем его в компании, но по подходу разраба сразу видно, что взять-то взял, но нет понимания, как с этим обращаться

    • @petrow_
      @petrow_ Год назад +2

      IRandomService, как и любой другой сервис, который оборачивает юнитишные статик филды всегда полезный, тк как минимум не тянет за собой этот статический мусор в бизнес логику, а использует интерфейсы как фасад.
      Это Леха из синдикатов не раз распинался и рассказывал

    • @petrow_
      @petrow_ Год назад

      Изучив до идеала этот курс, который был создан на основании многолетнего опыта нескольких архитекторов (выше синьора), можно пролететь на синьора, но кроме сервисной модели придется на практике понять, чем композиция обходит наследование, и как это дело грамотно применять и делить во вьющий части

    • @guiltyshoes
      @guiltyshoes Год назад

      @@petrow_ нет смысла оборачивать статику в сервисы. Нет ничего плохого в использовании статических утилити классов.

  • @MrStrongSuvorov
    @MrStrongSuvorov Год назад +2

    8:35 дак это и есть Чисты DI с внедрением через конструктор. Сам сервис локатор немного для другого в этой архитектуре должен быть использован. А DI-Контейнеры на то и нужны чтобы зависимости не прокидывать в глубь вручную. Тут сервис локатор заменяет контейнер. И есть мнение от авторов этой архитектуры что контейнер передавать в фабрику это позволительно, т.к. там идёт сборка объекта и это инфраструктурная часть кода (это уже мое мнение).

  • @kasatkinroman5900
    @kasatkinroman5900 Год назад +4

    О, я кажется натыкался на это задание. Не стал делать, тк реально выглядит как реализация фич

  • @nanaschi
    @nanaschi Год назад

    Посмотрел на одном дыхании. Хотелось бы модет где-то схемы архитектуры нарисованные, но если имеет смысл. А так очень понравилось, что и детали и глобально интересные вещи подмечаешь

  • @L0wPressure
    @L0wPressure Год назад +8

    Я ниче не хочу сказать, но этот проект должен стоить больше 1400$ :)

  • @alexeydimov4423
    @alexeydimov4423 Год назад +6

    Код неплохой, видно, что часть бережно перенесена с курса синдикатов, но это скорее плюс, чем минус, хотя то, что написано поверх него уже вызывает некоторые вопросы. Тут видна проблема многих разрабов, вкатывающихся в мидл-уровень, когда очень хочется все сразу максимально ручками написать без готовых решений и порой прям перебор с этим есть. Сам страдал таким несколько лет назад, благо, что в какой-то момент стал писать большой пет-проект и понял, насколько это самовтыкательство палок в колёса

  • @asli9152
    @asli9152 Год назад +3

    Люди, помогите, пожалуйста как научится понимать как строить архитектуру приложения?
    Все говорят про k-syndicate, что это архитектура под копирку, но что здесь плохого, если эта архитектура удачная. У этих людей за плечами много опыта, уж явно они больше знают джунов.
    Читал книгу Роберта Найтстрома про геймдев паттерны, ведь по сути архитектура строится на паттернах, ну и конечно же прошёл курс от k-syndicate по архитектуре. Когда прохожу тестовые, то говорят проект не гибкий и не способен расширяться и не понимаю каким образом ещё более можно расширять проект.
    Посоветуйте книжки по архитектуру приложений, желательно на c# или другой похожий язык как c++ например. Если у вас есть другое мнение и архитектура игры и приложения это разные совершенно вещи, то скажите тогда как в таком случае действовать

    • @gamedev_expert
      @gamedev_expert  Год назад

      Мне помог способ через декомпиляцию кода чужих игр. Те что написаны на юнити лет 5 назад под ПК - их dll можно обратно в код превратить и увидеть как организуют код те, кто доводят до релиза игры

    • @asli9152
      @asli9152 Год назад

      Спасибо! Попробую тоже так поделать
      @@gamedev_expert

    • @theonly647
      @theonly647 2 месяца назад

      мб уже и поздно, но отвечу
      сам сейчас заканчиваю прохождение курса от синдикатов и ничего плохого в нем нет. В курсе в некоторых местах по несколько раз (!) повторяется, что это делается для текущего тестового проекта и на продакшене такое лучше не делать. как пример - ручной DI. Но, как мы видим из данного ревью, не все слышат эти предупреждения ))

  • @kudarova
    @kudarova Год назад +2

    Делал подобное тестовое задание на джуна, тз очень схоже, как минимум начало и конец текста точь-в-точь одинаковы. То ли я неопытен и тз нормально составлять именно так, то ли это просто мошеннический шаблон)) Меня кстати не взяли, проигнорировали. А потом чат с работодателем и вовсе пропал...

    • @gamedev_expert
      @gamedev_expert  Год назад

      Ничего все ошибаются, главное не делать это привычкой)

  • @guiltyshoes
    @guiltyshoes Год назад +2

    На мой взгляд эксепшены нужно кидать только при возникновении нештатной ситуации. Отсутствие предмета в инвентаре это нормальный случай, будет логичней возвращать Null.

    • @gamedev_expert
      @gamedev_expert  Год назад

      Можно и так, пока в разборах не встречал использование nullable annotations, а жаль, очень крутой механизм

  • @serdjuk2827
    @serdjuk2827 Год назад

    Пили еще код ревью, пжалста !!! Топ контент.

  • @platonvin1022
    @platonvin1022 2 месяца назад +1

    Талантище - сделать всё настолько запутанным... Похоже, что людям нужен константный уровень сложности - чем больше делает движок, облегчая разработку, тем хуже и запутанней код (чтобы компенсировать лёгкость). То, чему я бы не уделил и строчки, превращается в несколько классов в нескольких файлах на сотни строк

  • @DaughterOftheSteppesDev
    @DaughterOftheSteppesDev Месяц назад

    Драг-н-дроп и без фиксированных ячеек это уже nextgen inventory :)

  • @danshicu_play5841
    @danshicu_play5841 Год назад +1

    Андрей, добрый день. Не так давно выполнял тестовое задание для стажировки в компанию. По итогу мой вариант выполнения отклонили, не указав в фидбеке вообще никаких конкретных указаний почему мои решения посчитали не эффективными. Можно ли как-то связаться с вами для получения адекватного ревью задания?

    • @gamedev_expert
      @gamedev_expert  Год назад +1

      Привет, если не торопитесь и готовы к тому что это будет на видео, то присылайте dredstd@gmail.com

  • @geekphone1343
    @geekphone1343 Год назад

    Полезный видос как для новичка (который даже не собирается писать на юнити). Лучше учиться на чужих и реальных ошибках, понимаешь как лучше писать код, спасибо)

    • @7gennews
      @7gennews Год назад

      в корне не согласен. Данное видео может быть полезно людям, примерно на том же уровне развития и занимающихся тем же и в той-же сфере, что и автор (ну и автору кода), чисто посмотреть по приколу на расслабоне. Как прим. см. комментарий yummybunny7351, обсудить, поспорить, типа "а вот тут не согласен" и т.д. а все остальное - возгласы безумной толпы. Для новичка нужно прочитать какого нибудь Шилдта и Рихтера, написать хелло ворлд и приткнуться в коммерцию стажером и учиться решать поступающие задачи, учиться у более опытных инженеров по факту и набивать СВОИ шишки. Без проблемы нет решения. Не знаю еще ни одного инженера, который лежа на диване с ютубчиком стал хотя бы джуном. Так что полезность данного видео для новичка (еще и не собирающегося работать в игровой студии на юнити) такая же, как полезность репостов бизнес цитат во вконтакте для того, кто хочет стать бизнесменом. Но как диковинное развлечение, почему бы и нет.

  • @АлександрМармеладов-й3я
    @АлександрМармеладов-й3я 6 месяцев назад

    Делал тестовой на джуна - ТЗ оформлено также - пуля в пулю. Даже версия Unity указана таже. Естественно, отказали. Либо это шаблон такой ТЗ либо просто компания нахаляву получает прототипы.

  • @MegaGrant1988
    @MegaGrant1988 Год назад

    Нормально выполненное задание для ТЗ. Не факт что автор сделает лучше. Открой любой пронект и можно сделать подобный ролик

  • @PotatoManager420
    @PotatoManager420 Год назад

    9:40 Ну насколько я понимаю он используется для сохранения данных в бинарном формате чтобы пользователь не мог отредактировать
    Это как бы прогресс игрока и так же защита данных от редактирования со стороны пользователя платформы, так что вполне оправдано его использование

    • @gamedev_expert
      @gamedev_expert  Год назад

      Тогда надо шифровать перед сохранением, и правда будет понадежнее

  • @yellow_club
    @yellow_club Год назад

    Добрый день. Не нашёл ваших контактов.
    Есть ли у вас платная услуга код ревью?

    • @gamedev_expert
      @gamedev_expert  Год назад

      Напишите мне на почту dredstd@gmail.com, договоримся

  • @profithelper593
    @profithelper593 Год назад

    Интересные видео,, с Вами можно как то связаться? Интересует клиент сервер на c# unity и в целом возможность переноса игры на движёк юнити или воссоздание и ли оно того?

    • @gamedev_expert
      @gamedev_expert  Год назад

      Здравствуйте, вы можете написать на почту dredstd@gmail.com если есть предложения

  • @simxan123
    @simxan123 Год назад

    Интересно, а можно ли Вам проект на обзор скинуть? Джуны, но вроде пишем понятно

    • @gamedev_expert
      @gamedev_expert  Год назад

      Привет, скинуть можете, а когда у меня время будет я не знаю

  • @NoldoWalker
    @NoldoWalker Год назад

    А не слишком ли перегруженная архитектура, стейтмашина, кастомный проброс зависимостей вместо использования готового DI?

    • @gamedev_expert
      @gamedev_expert  Год назад +1

      Да, лучше когда кода мало, но работает

  • @rashdazzle4894
    @rashdazzle4894 Год назад

    привет, подскажи пожалуйста прогу для разминки глаз

  • @TheGoBender
    @TheGoBender Год назад +1

    Получается не разбор тестового, а скорее разбор архитектуры от K-Syndicate :) Ничего нового вообще не было добавлено.
    Я конечно сам ее юзаю в некотором варианте, но если бы делал тестовое, что наверное бы делал что-то свое. Ведь каждый джун уже пишет так, как конкурировать если все одинаково?)

    • @gamedev_expert
      @gamedev_expert  Год назад +1

      Надо посмотреть что за KSyndicate, столько людей говорят о них, а я пропустил как-то. По поводу что-то своё - я согласен что надо экспериментировать и развивать архитектурные подходы

    • @fintik9907
      @fintik9907 Год назад

      ​@@gamedev_expert у них курс в 2019-20г архитектуры в основном они просто показывают бутстрап/сервис локатор/стейт машину показывают ещё пару паттернов

    • @igd1591
      @igd1591 Год назад

      По сути, да, это точная копия их проекта, своя мысль там начисто отсутствует.

  • @vklymenko
    @vklymenko Год назад +2

    Что-то есть в папке Resources? Fail ! Из всего делаем гребанные адрэсибэлс и ничего не засовываем в ресорсэс. Нах** столько классов и интерфейсов - элемент в grid layout - гребанный префаб с одним скриптом на нем и один скрипт с интерфейсом на все окно, еще файл другой на настройки и модели данных и не е**м никому мозги.

    • @gamedev_expert
      @gamedev_expert  Год назад

      Без особых требований на не использование какого-то механизма, фейлить тестовое на субъективной оценке инструмента путь одиночки, а не командного игрока

  • @olegsitnikov633
    @olegsitnikov633 Год назад +4

    Капец код перегружен. Если б от меня зависело решение брать или не брать, я б тоже не взял. На мой взгляд архитектура должна быть максимально простой, но при этом максимально удобной и функциональной. Иначе на реальном тяжёлом проекте, где постоянно с тебя трясут быстрее, офигеешь от собственного нагромождения сервисов

    • @МихаилА-ш2м
      @МихаилА-ш2м Год назад +3

      А что тут неудобного и нефункционального?))

    • @Woolf530
      @Woolf530 Год назад +1

      это приверженцы патернов, не обращай внимания. Они на своей волне. Поэтому от них прекрасный код, но нихрена нет успешных игр.

  • @alexandr_sirota
    @alexandr_sirota Год назад

    Привет, работу не ищешь случайно?)
    У нас создается новая команда под юнити и это первая юнити команда в компании(другие игры были под веб на typescript), пока еще вроде никого не нашли, удаленка, компания из США, но все в основном из стран снг, не гк, проекты которые мы делали довольно таки серьезные, все игры онлайн, ситибилдеры и шутер от первого лица, нфти, крипта и подобное

    • @gamedev_expert
      @gamedev_expert  Год назад

      Привет! Спасибо за предложение, сейчас только бекенд пишу. Есть два друга, с которыми вместе работали раньше, их может заинтересовать, можешь отправить ссылку на вакансию dredstd@gmail.com

    • @alexandr_sirota
      @alexandr_sirota Год назад

      @@gamedev_expert дал контакты нашему hr ну и подал запрос дружбы в линке)

  • @kolmerg
    @kolmerg Год назад

    Привет, а куда можно в личку написать?

    • @gamedev_expert
      @gamedev_expert  Год назад

      Привет, можно на почту dredstd@gmail.com

  • @kawaikaino5277
    @kawaikaino5277 Год назад

    ЗП очень маленькое для Мидла((( Так везде в гемдеве?

    • @gamedev_expert
      @gamedev_expert  Год назад

      А среднем да. Всегда было что в геймдеве меньше денег.

  • @UnityFAN_unity
    @UnityFAN_unity Год назад +2

    Такое впечетление, что после курсов синдиката код написан)

    • @gamedev_expert
      @gamedev_expert  Год назад

      Наверное так и есть

    • @UnityFAN_unity
      @UnityFAN_unity Год назад +1

      @@gamedev_expert наверно поэтому и отказали, думаю их уже все знают) Плюс это всего лишь один из вариантов архитектуры. я думаю с той стороны посмотрели на какую то непонятную хрень и забили просто, ожидали простой код для мобилочек а получили вот это все

    • @bonbad612
      @bonbad612 Год назад

      @@UnityFAN_unity Автор канала похоже зря не показал текст тестового задания. Главным критерием оценки была архитектура проекта. По фидбеку сказали что моё тестовое сильное и из 10 выполнивших только 3 хорошо выполнили. Кстати я правда делал тестовое прямо после курса)

    • @Vinnnik
      @Vinnnik Год назад

      Что за курс? Можно подробнее???

    • @UnityFAN_unity
      @UnityFAN_unity Год назад

      www.youtube.com/@KSyndicate@@Vinnnik

  • @МаратГафиатуллин-н3п
    @МаратГафиатуллин-н3п 4 месяца назад

    Самая главная ошибка, выполнять бесплатно такие тестовые

  • @timurnikolaev1438
    @timurnikolaev1438 Год назад +2

    1400 долларов за миддла ну да это жестко)

    • @petrow_
      @petrow_ Год назад

      Для РФ - норм, геймдев сейчас не в лучшей форме там

    • @yummybunny7351
      @yummybunny7351 Год назад

      @@petrow_ в англосфере сейчас сколько +-мидлу дают?

  • @BlackWindX
    @BlackWindX Год назад +7

    Код под копирку с курса @KSyndicate по архитектуре :D

    • @samserious5483
      @samserious5483 Год назад

      К сожалению, да, никакой фантазии

    • @gamedev_expert
      @gamedev_expert  Год назад +4

      а что плохого в том чтобы копировать удачную архитектуру?)

    • @BlackWindX
      @BlackWindX Год назад

      @@gamedev_expert Вроде ничего) Просто они вроде говорили, что на их уроке показываются внутренности DI, чтобы люди понимали как примерно работает тот же Zenject, и для чего это нужно. Другими словами, есть много готовых решений, чтобы не писать этот сервис локатор.
      Я сам относительно новичек, и ещё только учу и пытаюсь понять всю суть архитектуры и подобных моментов, и пока мне вот конкретно вот такая часть кода, которая была разобрана в этом видео, все ещё сложно даётся. Я уже начал что-то делать для себя в Unity, и сильно привык к монобехам, и [SerializeField] полям, в которые через инспектор легко всё перетягивается. И вот подобный код, где всё надо прокидывать через конструкторы или иногда даже паблик поля, мне выглядит очень неудобным..

    • @gamedev_expert
      @gamedev_expert  Год назад +2

      @@BlackWindX Юнити молодцы и сделали удобный инспектор, он упрощает быстрое прототипирование. И до какого-то размера игры я тоже за то, чтобы просто прокинуть ссылки. А дальше легко проспать и инспектор станет приговором игре из-за запутанности и сложности внесения исправлений

    • @servalstar
      @servalstar Год назад

      @@gamedev_expert мне кажется плохо (плохо для соискателя) копировать популярную архитектуру, т.к. она уже всем намозолила глаза. Типа, вот, ещё один пришёл с копипастой от синдиката.

  • @DaughterOftheSteppesDev
    @DaughterOftheSteppesDev Месяц назад

    Простенький инвентарь за полтора штуки баксов? А готовый "киберпанковский" инвентарь тогда 50к должен стоить)

  • @timurnikolaev1438
    @timurnikolaev1438 Год назад

    у меня есть джуниоровское тестовое задание 3х летней давности когда я был в программировании месяца 1.5
    пойдет на обзор? :D

    • @gamedev_expert
      @gamedev_expert  Год назад +1

      Мне кажется это не будет интересно, вы и сами можете разобрать ошибки в том ТЗ)

  • @ЕгорКудрявцев-щ1р

    Соглашаться на тестовые задания - это ошибка

  • @igd1591
    @igd1591 Год назад

    Асинхронность методов для StateMachine совершенно не нужна и избыточна, если она правильно написана.

    • @gamedev_expert
      @gamedev_expert  Год назад

      Привет, асинхронный метод превращается в стейт машину при компиляции в il код. Так что да, стейт машиной можно заменить асинхронный метод при желении. Если речь о стейт машине в загрузке, то у меня противоположное мнение

    • @igd1591
      @igd1591 Год назад

      @@gamedev_expertПривет, да, речь о стейт-машине (на 11:36), а зачем ей быть асинхронной? Может дальше будет ответ - не досмотрел до конца, комментирую по ходу дела, пока мысль свежа. Другими словами, зачем методу Enter быть асинхронным и кто должен ожидать его заверешния? В момент вызова Enter включается в работу новый стейт и вся дальнейшая работа - это уже работа нового стейта, а предыдущий уже полностью свое отработал, поэтому он переключил и закончил на этом свою миссию. А так получается, что будет выплнен еще какой-то код из предыдущиего стейта после завершения Enter. Можно, конечно, применить логику, что Enter - это только пореходный момент в новый стейт, но даже в этом случае неясно, зачем предыдущему стейту что-то делать после того, как переход будет закончен.
      Сразу оговорюсь, что я не навязываю свое мнение, а дискутирую.

    • @igd1591
      @igd1591 Год назад +1

      По поводу - не писать тип явно где только можно, как раз наоборот делаю - пишу везде, кроме каких-то очевидных ситуаций, как в случае с using, где все и так знают, что за тип будет образован. В других случаях, когда другой программист будет читать мой код (или я сам через какое-то время), то даже беглый взгляд на конструкцию `Dictionary images = GetImages()` сразу дает четкое представление о смысле строки, а учитывая, что в контексте будут и другие строки, намного быстрее складывается общий смысл происходящего, чем в случае с `var images = ...`, т.к. тип - это еще и семантика. Завтра кто-то решит отрефакторить код так, что теперь метод будет возвращать текстуры и это сразу отразится в явном типе. Да, это может потребовать в некоторых IDE вручную пройти и отредактировать тип во всех местах вызова метода, но если это укорит понимание фрагмента кода пускай даже на 10 секунд, то я считаю, что оно того стоит. В примере вроде этого
      ```
      var total= GetTotalAmountOfSometing();
      var completion = GetCompletionPercent();
      var completedAmount = total / 100 * completion;
      ```
      было бы в разы проще не допустить или найти потенциальную ошибку, будь типы указаны явно, поэтому численные типы тоже указываю.

    • @wsxpocxeafx
      @wsxpocxeafx 8 месяцев назад

      @@igd1591 верно говоришь

  • @shelikhann
    @shelikhann 7 месяцев назад

    У меня было похожее тз, такое описание, но зажание другое, нужно было целую игру сделать, я по глупости сделал, отправил и меня просто кинули, никакой обратной связи, не ведитесь на это

  • @gladiko2364
    @gladiko2364 Год назад

    Я не могу понять что вы все прицепились к тестовому заданию? Оно супер элементарное учитывая что чел идёт на мидла. Само задание умещается на одной странице документа, где большую часть занимают расписанеые статы.
    А чел взял и буквально НАСРАЛ в код. Тебя просили срать?
    Такой сотрудник никому нахрен не всрался, по факту такие люди будут только мешать/спорить/тратить время впустую.
    Есть задача, она четко прописана - тебе надо её сделать. ВСЁ! Не сидеть придумывать кучу сервисов и всякой херни которые никогда не будут использованы и на которые ты потратишь в 200 раз больше времени чем должен был, и недайбох кому то другому кроме тебя придется это читать.

    • @gamedev_expert
      @gamedev_expert  Год назад

      Ахахха, по сути ничего нового у тебя просто ещё 1 вариант как сделать

  • @fireruslord
    @fireruslord Год назад +1

    что это вообще такое? Ниче не понимаю... Где такому уровню учат?

  • @ЮринПавел
    @ЮринПавел Год назад

    очень круто, но очень тихо(

    • @gamedev_expert
      @gamedev_expert  Год назад

      Спасибо, в следующем сделаю громко

  • @rusavlad5790
    @rusavlad5790 7 месяцев назад

    1400 это аж никак не зарплата мидла. джун или джун + на крайняк

    • @gamedev_expert
      @gamedev_expert  7 месяцев назад +1

      В общем согласен, но больше зависит от компании, чем от человека

    • @rusavlad5790
      @rusavlad5790 7 месяцев назад

      @@gamedev_expert но сам видос отличный :) Было увлекательно)

  • @mrhaim771
    @mrhaim771 Год назад

    Серьёзно, система инвентаря? Я думал что бы стать разработчиком надо как минимум писать онлайн игры

    • @gamedev_expert
      @gamedev_expert  Год назад +1

      Большое начинается с малого)

  • @ИгорьБилык-п5д
    @ИгорьБилык-п5д Год назад

    Привет!!!
    Как с тобой можно связаться?
    Хотел бы пообщаться