Комментарии 15
В данной задаче Future больше подходит
0
Поддерживаю. Фьючесы, промисы и рх отлично подходят для таких задач. А сейчас с iOS 13 прям из коробки библиотека Combine.
+1
Вообще я не считаю правильным сразу тянуть либу для решения подобных задач, однако если у вас в проекте много нетривиальных кейсов, где постоянно происходит изменение данных и это все влияет на ui, то тут уже можно подключить rx, promise и тд, а так всегда лучше решать проблему нативно без сторонних либ. Просто данный пример скорее имеет иллюстративный характер
0
НЛО прилетело и опубликовало эту надпись здесь
Библиотеки и велосипеды бывают разные, есть либы, которые перестают поддерживаться и в которых могут быть баги, а можно написать свою легковесную обертку и еще тестами покрыть
0
Просто подход, используемый в статье, не масштабируется. Если будет экран на котором нужно использовать три разных независимых backend API, создавать на каждый из них RequestState будет проблематично, так как в единый момент времени будем много замороженных потоков. Если же шарить общий RequestState, то запросы будут последовательными, а так как вызываемые API являются совершенно разными, то хотелось бы их обрабатывать параллельно. Все эти проблемы уже решены сообществом в опенсорсных библиотеках.
0
Не обязательно тянуть библиотеку. Реализация минимального функционала промисов занимает пару часов времени.
+1
У вас метод sendRequest является блокирующим, наверное лучше ему дать имя sendSyncRequest. Да и вызывающий тред будет заблокан на время запроса, думаю ему можно найти более нужное применение чем ждать ответа от сервера. Вы реализовали своего рода корутины, но очень не оптимально по ресурсам.
+2
Кажется, ваш reducer — это просто функтор. А сама идея — обычный конечный автомат, он же FSM.
+2
А как ваши коллеги из FINCH отнеслись к этому подходу? Это общие наработки компании или личный вклад?
0
Это скорее личный вклад, мы даже провели локальный митап, где я показал свои наработки. В целом коллегам понравилось, но мы решили, что еще поработаем на архитектурой и абстракциями в функциональном стиле. Вообще на youtube есть неплохой канал Functional Swift и там много интересных уроков, где чуваки переосмысляют некоторые привычные понятия в функциональном стиле, очень советую)
0
Спасибо за интересную статью! Книжка «Эффект Медичи» как раз про такой подход в философском смысле)
0
Ну не знаю, автор конечно молодец, но я бы использовал уже готовые решения c promise. В целом для чтива не плохой материал, почему бы и нет.
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Как работать со множественными запросами. Композиция, Reducer, ФП