Size: a a a

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

2020 April 13

ВБ

Вячеслав Белый... in iOS Developers — русскоговорящее сообщество
Kei Sidorov
В фазе активной разработки одной из фитч (50+) экранов, пользовался генерамбой. Хорошо показала себя с точки зрения владения кодом командой — заставляло в одном стиле писать, исколюзовать одинаковый нейминг.

Т.к. нет DI этот вопрос похакан с использованием Sourcery, а так же для поддержки модульной архитектуры, некоторый бойлерплейт по подключения кода хендлит.
а почему генерамбу использовал, а не шаблоны икскода, как ребята пишут?
источник

KS

Kei Sidorov in iOS Developers — русскоговорящее сообщество
Вячеслав Белый
а почему генерамбу использовал, а не шаблоны икскода, как ребята пишут?
А они вроде не позволяют мне создать пачку файлов в нужном месте с кучей замен внутри каждого файла. Но могу ошибаться, дело год назад было, по-моему такой возможности не было
источник

KS

Kei Sidorov in iOS Developers — русскоговорящее сообщество
Плюс, использовались параметры. Типа создаёшь модуль и говоришь помечаешь что он routable в командной строке. От этого ещё некоторые сущности в коде появлялись. Это конечно можно обойти разными шаблонами, но все-же
источник

AS

Alexander Solncev in iOS Developers — русскоговорящее сообщество
вчера спрашивал, спрошу еще раз, может кто то знает готовые решения для автообновления токена в moya или какой то обертки над nsurlsession
источник

ВБ

Вячеслав Белый... in iOS Developers — русскоговорящее сообщество
Alexander Solncev
вчера спрашивал, спрошу еще раз, может кто то знает готовые решения для автообновления токена в moya или какой то обертки над nsurlsession
поидее это должен быть отдельный сервис, который будет хендлить 401 ошибку, и в таком случае делать авторизацию еще раз
источник

AS

Alexander Solncev in iOS Developers — русскоговорящее сообщество
ну что то типа интерсептора
источник

AS

Alexander Solncev in iOS Developers — русскоговорящее сообщество
тока нужно корректно обработать зафейлившиеся парраллельно выполянющиеся запросы, а новые поступающие запросы во время обновления токена куда то складывать и после обновлению запустить в работу
источник

AS

Alexander Solncev in iOS Developers — русскоговорящее сообщество
можно сделать serial очередь и стопать ее на момент обновления, но тогда все это будет медленно работать, хотелось бы иметь возможность параллельного выполнения запросов
источник

ВБ

Вячеслав Белый... in iOS Developers — русскоговорящее сообщество
а как ты видишь паралельное выполнение пока токен не обновится?
источник

AS

Alexander Solncev in iOS Developers — русскоговорящее сообщество
Вячеслав Белый
а как ты видишь паралельное выполнение пока токен не обновится?
пока токен обновляется складывать таски в массив
источник

AS

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

KS

Kirill Saltykov in iOS Developers — русскоговорящее сообщество
Alexander Solncev
пока токен обновляется складывать таски в массив
OperationQueue?)
источник

AS

Alexander Solncev in iOS Developers — русскоговорящее сообщество
Kirill Saltykov
OperationQueue?)
не ну очередь то тут и не нужна вовсе, главно запомнить поступающие таски
источник

ВБ

Вячеслав Белый... in iOS Developers — русскоговорящее сообщество
Alexander Solncev
а после обновления делать pop из массива и запускать
зачем поп? все запускай одновременно с новым токеном
источник

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
да это нормальная практика рефрешить токены (хоть я и не понимаю для чего). но мне в голову не приходило, что для этого нужно искать еще одну зависимость
источник

AS

Alexander Solncev in iOS Developers — русскоговорящее сообщество
Вячеслав Белый
зачем поп? все запускай одновременно с новым токеном
ну в целом да
источник

AS

Alexander Solncev in iOS Developers — русскоговорящее сообщество
Denis Kim
да это нормальная практика рефрешить токены (хоть я и не понимаю для чего). но мне в голову не приходило, что для этого нужно искать еще одну зависимость
ну просто задача казалось бы очевидная в почти любом проекте, один раз написать и использовать
источник

ВБ

Вячеслав Белый... in iOS Developers — русскоговорящее сообщество
только в одном проекте юрлсессион, во втором аламофаер, в третьем моя, в четвертом сокеты
источник

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
в каждом проекте свой подход к этому вопросу. на уровне библиотеки я хз как это сделать. код подключения такой либы займет возможно столько же, сколько самому реализовать
источник

ВБ

Вячеслав Белый... in iOS Developers — русскоговорящее сообщество
у нас на проекте для этого есть плагины, каждый запрос/ответ проходит через плагины, если плагин на ответе дает 401, то плагины на запросах,  могут повлиять на новый запрос и, например, приостановить его до хороших времен, они получают инфу, что нужно приостановить запросы, пока им не прийдет ответ и тогда, или логаут полный или обновление запросов (главное не забывать крутить ромашку). Думаю,  что всегда нужно иметь две абстрацкции на запрос и на ответ, какой бы API layer у тебя небыл.
источник