Size: a a a

iOS Developers — русскоговорящее сообщество

2019 November 02

VK

Vladimir Kubantsev in iOS Developers — русскоговорящее сообщество
источник

VK

Vladimir Kubantsev in iOS Developers — русскоговорящее сообщество
вот хорошая статья, с выводом которой я согласен. Обычно, фабрик хватает на нужды
источник

SS

Sergey Sergey in iOS Developers — русскоговорящее сообщество
А это, про нотификации, не вариант допустим сделать массив делегатов как аналог нотиф.центра ?
источник

SS

Sergey Sergey in iOS Developers — русскоговорящее сообщество
Спасибо! Тоже почитаю, но читать уже завтра
источник

VK

Vladimir Kubantsev in iOS Developers — русскоговорящее сообщество
Sergey Sergey
А почему допустим не делать DI через конструктор просто?
Какие то примеры swinject были, но там можно было бы статикой решить вроде
Я как бы и минусы зависимостей понимаю и не против хороших либ, но про DI хотелось бы выяснить....на примерах каких то например
Я обычно и через конструктор и делаю. Используя VIPER (и иже с ними) все зависимости в wireframe (assembly) устанавливаются
источник

VK

Vladimir Kubantsev in iOS Developers — русскоговорящее сообщество
нет нормального способа делать инъекции в поля
источник

BB

Boris Bengus in iOS Developers — русскоговорящее сообщество
Vladimir Kubantsev
нет нормального способа делать инъекции в поля
Поддерживаю. Доставка в поля подразумевает форс и не позволяет их скрывать за private. Лучше способе чем конструктор не вижу. ИМХО. Большие массивные init-ы чинятся фабриками или assembly как кому привычнее называть.
источник

V

Vadim in iOS Developers — русскоговорящее сообщество
Boris Bengus
Поддерживаю. Доставка в поля подразумевает форс и не позволяет их скрывать за private. Лучше способе чем конструктор не вижу. ИМХО. Большие массивные init-ы чинятся фабриками или assembly как кому привычнее называть.
Большие иниты чинятся разделением ответственности
источник

BB

Boris Bengus in iOS Developers — русскоговорящее сообщество
Vadim
Большие иниты чинятся разделением ответственности
Ну и это тоже конечно же. Наверное в первую очередь. Просто для условного сервиса если нужен:
- логгер
- апи клиент
- репозиторий
- маппер
- toggle провайдер
- и например push нотификейшн манагер

И это нормальная естественная сложность такого класса, а конструктор уже большеват.
источник

BB

Boris Bengus in iOS Developers — русскоговорящее сообщество
Ответственность разделил, размазал по конкретным классам, но их же теперь какому то фасаду надо доставить? Надо.
источник

VK

Vladimir Kubantsev in iOS Developers — русскоговорящее сообщество
Boris Bengus
Ну и это тоже конечно же. Наверное в первую очередь. Просто для условного сервиса если нужен:
- логгер
- апи клиент
- репозиторий
- маппер
- toggle провайдер
- и например push нотификейшн манагер

И это нормальная естественная сложность такого класса, а конструктор уже большеват.
Не слишком ли много ответственностей на сервисе?)
источник

BB

Boris Bengus in iOS Developers — русскоговорящее сообщество
ну это условный пример, но есть подобные примеры и реальные
источник

BB

Boris Bengus in iOS Developers — русскоговорящее сообщество
не много
источник

VK

Vladimir Kubantsev in iOS Developers — русскоговорящее сообщество
Можно сделать финт ушами, и поместить все поля в структуру и назвать её а-ля ObjectConfiguration
источник

VK

Vladimir Kubantsev in iOS Developers — русскоговорящее сообщество
и количество параметров у сервиса резко падает
источник

IL

Ivan Lupenkov in iOS Developers — русскоговорящее сообщество
Подскажите че за беда, отправляю версию а в App Connect не появляется. Ждал минут 30-40...
источник

IL

Ivan Lupenkov in iOS Developers — русскоговорящее сообщество
источник

IL

Ivan Lupenkov in iOS Developers — русскоговорящее сообщество
источник

VK

Vladimir Kubantsev in iOS Developers — русскоговорящее сообщество
Также, в ряде случаев можно использовать сервис локаторы
источник

BB

Boris Bengus in iOS Developers — русскоговорящее сообщество
если к примеру взять условный SomeItemDataProvider, который является поставщиком данных о некоторых SomeItem-ах, то через апи клиент он может их получить из апи, замаппить и сохранить в репозиторий, попутно логгировать, так же на основе каких то тогглов менять логику работы и еще и как то слушать работу пуш манагера, чтобы условно обновлять что-то. Пример от балды конечно, но впонле все по полочкам.
источник