Комментарии 39
Не увидел в посте каким образом всё перечисленное отменяет стейт-менеджеры.
DataStore — это не только стейт менеджер, но и решение в кодогенерации всех запросов на бэк, реал-тайм, оффлайн, определение базы данных для App Sync. Один источник правды для бэка и фронта.
Вы это под заголовком написали, цитирую: "Прощай Redux, MobX, Apollo! Грань между бэкендом и фронтендом сломана! Инновационый шаг эволюции стейт менеджеров"
И да, DataStore стейт менеджером, судя по написанному в посте, не является.
А какое отношение стейт-менеджер имеет к бэкенду?
На фронте может быть информация, не предназначенная для передачи на бэк.
Вы же не веб-приложение на React пишете, а мобильное приложение на React Native. У него бэк и вовсе является опциональной частью.
Стейт-менеджмент же — это архитектурная абстракция, разруливающая вопросы взаимодействия между источником данных для приложения и тем, что непосредственно видит пользователь.
Так вот если данные на сервере изменились и DataStore пнул React перерисовать View во всех установленных приложениях, то как это не State менеджер?
С DataStore вы можете использовать его для автономного использования в режиме «только локальный» без учетной записи AWS, а это значит можно разруливать состояние приложение.
Так что пока ваши аргументы не убедили меня.
Так вот если данные на сервере изменились и DataStore пнул React перерисовать View во всех установленных приложениях, то как это не State менеджер?
Вы всерьез полагаете, что подписка на изменение модели — это всё, что делает стейт-менеджер?
PS: Браузер не умеет в реал-тайм. И всё, что внутри него — тоже не умеет в реал-тайм.
У Recoil recoiljs.org тоже нет экшенов. У Apollo нет их тоже. Значит ли это, что они не стейт менеджеры?
У вас в статье про управление восходящими изменениями — ничего вообще.
Что конкретно, с точки зрения бизнеса, я не могу решить с DataStore?
а я про результат
А стейт-менеджмент — не про результат, а про организацию кода.
PS: «С точки зрения бизнеса» всё можно решить намагниченной иголкой и твёрдой рукой. Еще с очень давних времен. Вы со своим DataStore — как раз не про результат, а про процесс.
Лично для меня очевидно, что с DataStore мне не нужно писать кучу болерплэйт кода на бэке и фронте решая конкретные задачи для конечных пользователей, очень просто создавая real-time приложения.
Как когда-то React Native стал бриджем между iOS и Android, так DataStore сегодня стал бриджем, ломая грань между бэком и фронтом. Будущее за подобными full stack serverless решениями.
Вы всерьез полагаете, что подписка на изменение модели — это всё, что делает стейт-менеджер?
Хранит и сообщает о изменениях — это необходимый минимум, чтобы называться стейт-менеджером, всё остальное опционально. Или я что-то забыл? Если нет, то предлагаемое решение вполне тянет на звание стейт-менеджера.
O tempora! O mores!
Уважаемый Дмитрий.
Вот вы постоянно обижаетесь на то, что вас с вашим эмплифай посылают в увлекательное эротическое, при этом утверждая, что это все отношение к эмплифай.
Скажите пожалуйста, вы действительно не осознаете, что проблема не в эмплифай, а в вас, и в вашей личности.
Для большинства обитателей чата RN вы стали самим ярким олицетворением термина «вечный миддл». Начните видеть что-то кроме эмплифай, и перестаньте в чате, на вопросы типа «почему у меня в файрбейзе не обновляется состояние» отвечать «используй эмплифай». Перестаньте позорить относительно неплохой продукт своим клоунским пиаром.
И не пишите больше рэп, пожалуйста, у вас не получается. Спасибо
Пожалуйста пришлите ссылку на мой ответ в телеге, где я на вопросы типа «почему у меня в файрбейзе не обновляется состояние» отвечал «используй эмплифай». Иначе аргумент без доказательств, не аргумент.
Рэп я пишу на своем YouTube канале, потому пожалуйста не смотрите его.
В таких случаях я вспоминаю цитату:
„Великие умы обсуждают идеи. Средние умы обсуждают события. Мелкие умы обсуждают людей.” — Элеонора Рузвельт
Я рад, что благодаря моему Patreon у меня есть мотивация делать, то что я делаю. Пусть нас не много, но есть люди которые ценят мой труд и опыт и это вдохновляет на новые публикации для моих патронов.
Дмитрий, спасибо за статью. Для меня остался не раскрыт один момент. Если приложение несколько сложнее ToDo, где писать бизнес логику? Например, система бронирования чего-либо. При создании брони нужно не только создать в базе запись, но выполнить различные проверки на доступность, авторизовать средства на карте, отправить оповещения (Email, SMS, Push Notification) и прочее. Где это все описывается?
Push Notification скоро переведу на русский :)
AWS Amplify — это комплексное решение:
Easy CI CD / hosting / custom domains
Официалная страница
Документация
Спасибо, ссылки на документацию я и сам могу найти. Так где писать бизнес логику?
авторизовать средства на карте, отправить оповещения (Email, SMS, Push Notification)
Как я понял я ответил на этот вопрос.
и прочее
Про прочее понимаю о чем вы, сам работал с «лапшой» из REST API. В AWS Amplify бизнес логика выноситься на Lambda Function и отдается через GraphQL API.
В конечном итоге нам нужно показать данные в приложении или через инпуты отправить их на сервер — IO(Ввод-вывод). Поэтому модель CRUD, описаная в этом уроке, решает задачу получения данных и отправки их на сервер, а благодаря подпискам(web-sockets) React рендерит слой View на изменения данных c бэкенда.
Очень полезная и нужная статься, считаю что нужно популяризировать альтернативы дорогим решениям типа redux.
В качестве обратной связи, авторский стиль отталкивает от восприятия информации.
DataStore — CRUD (Create Read Update Delete)