Тут есть люди которые шарят за Zenject?

11 ответов

24 просмотра

+ Расскажите в чем его смысл вообще. А то после 5 минут в гугле я не особо понял зачем он нужен и в чем его полезность

.
Замена синглтону.

Синглтону как шаблону проектирования? Чет тогда стремно, я и сам руками синглтонить могу

Константин
+ Расскажите в чем его смысл вообще. А то после 5 ...

DI. Если коротко - суть в том что объекты не будут связаны тобой. Отсюда все плюсы - если нужно внедрять зависимость - за тебя это сделает DI, если нужно менять реализацию - достаточно в одном месте перерегистрировать её, и вот, весь проект будет использовать то что надо.

.- Автор вопроса

Смотрел видосики, хотел себе внедрять. На юнити, по причине того что есть особенности работы с памятью, zenject выглядит каким то костылём, но для тех кто живёт на IoC, это не проблема, адаптируются. Тут вопрос ты себе должен задать - хочешь ли изучать что то новое, планируешь развивать проект, будешь ли мириться с тем, что придётся переписать многое (если проект не с нуля), при этом не поменять в нём толком ничего, кроме жизненного цикла объектов (спорно, особенно для объектов которые являются объектами юнити) и крутого функционала по работе со связностью объектов между собой (это довольно круто в больших и крупных проектах, в тех где всё постоянно меняется и код переписывается, рефакторится)

.- Автор вопроса
kyctuk
Смотрел видосики, хотел себе внедрять. На юнити, п...

Ну, я просто смотрю, что много кто требует zenject, вот и пытаюсь изучить, хотя вот - по началу жёсткая тупая(наверное) ошибка, ибо хз как работает.

.
Ну, я просто смотрю, что много кто требует zenject...

Да, требуют, потому что это инструмент который позволяет работать с крупными проектами. Все хотят легко доработки делать, а не править тоны кода при очередной доработке, вносить регресс из-за того что где то что то забыли и т.д. Лучше всего начни с IoC. Это более общая концепция идеи, а вот DI более частный случай подхода, а уже zenject - это прям реализация, одна из очень многих.

Константин
+ Расскажите в чем его смысл вообще. А то после 5 ...

Опишу свою точку зрения (игры давно делаю, но зенджект начал недавно осваивать, так что опытом работы с ним похвастать не могу). - Зенджект помогает писать проекты не превращая их в паутину ссылок на префабы/объекты/настройки и т.д.. К примеру без зенджекта у тебя в уровне могут быть ссылки на юнитов, у юнитов ссылки на игрока/UI/настройки и еще бог знает на что, а у них ссылки еще на что то и т.д.. Ссылки могут прокидываться как в инспекторе так и напрямую в классы. Уровней, врагов и прочего может быть много и у каждой реализации надо будет прокидывать ссылки. В итоге на больших проектах может получиться довольно запутанный клубок который сильно усложнит разработку. Запросто можно забыть прокинуть где- то нужную ссылку или поменять, в результате чего отхватишь много проблем. Или что наверно более часто встречающееся, если понадобится заменить какую то ссылку использующуюся в разных местах проекта, то придется искать все места где эта ссылка указывается и надеется что ничего не упустил. В случае с зенджектом, все ссылки ты агрегируешь в одном месте и пишешь инструкции как их внедрять. Внедряются эти ссылки упрощенно говоря одной строчкой с добавлением агрумента inject. Если без зенджекта допустим ссылка на UI прокидывалась через инспектор и код был явно связан с этим UI, то с зенджектом ты пишешь одну строчку в нужном классе и он получает ссылку на этот UI, без взаимодействия с инспектором или отдельного закидывания через другие классы. При необходимости заменить UI везде, не придется искать поля в инспекторе у всех объектом или куски кода которые давали ссылку на UI, а достаточно будет в одном месте с настройкой зенджекта заменить ссылку. Так же а некоторых случаях не надо думать как прокинуть ссылку через несколько классов (допустим ui-level-enemy-bar) а просто указать в классе bar поле [inject] private Ui _ui; - в плане синглтона, да зенджект позволяет его более грамотно реализовать, но это лишь один конкретный случай использования - в мелких проектах я для себя не вижу смысла использовать зенджект, там ссылок не так много и проще их без него прокинуть. По идее он для больших проектом должен быть очень полезен - ну и чем вкуснее вакансия, тем больше шансов что там в требованиях есть зенджект Если где неправ, знатоков прошу поправьте) Это полотно в том числе и для себя написал

kyctuk
не стрёмно, изучай что такое DI/IoC

Всю жизнь на плюсах сами солиды внедряли, а тут зенжект какой-то сам все делает 🤣

Похожие вопросы

Обсуждают сегодня

Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
Привет!) Кто как юзает переменные в строках?) Чисто ради интереса Вот так: echo "У меня {$bananasAmount} бананов"; Или вот так: echo "У меня ${bananasAmount} бананов";
Виталий
3
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
разработчик ботов скидывает портфолио, боты которые он уже создал. А вот как узнать что это именно он их создал?
Gosudar
4
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Карта сайта