Pull to refresh

Comments 39

Открывает многие возможности, которые можно реализовать проще, чем это было раньше
Будь эта статья написана более спокойным и техническим языком, я бы даже прочитал её. Сейчас статья больше напоминает рекламный буклет, где эффективный продаван пытается продать мне ручку.

Не увидел в посте каким образом всё перечисленное отменяет стейт-менеджеры.

Где я написал что DataStore отменяет cтейт менеджеры?
DataStore — это не только стейт менеджер, но и решение в кодогенерации всех запросов на бэк, реал-тайм, оффлайн, определение базы данных для App Sync. Один источник правды для бэка и фронта.

Вы это под заголовком написали, цитирую: "Прощай Redux, MobX, Apollo! Грань между бэкендом и фронтендом сломана! Инновационый шаг эволюции стейт менеджеров"


И да, DataStore стейт менеджером, судя по написанному в посте, не является.

Как это нет, если при изменении данных на бэкенде, DataStore пинает React перерисовать View?

А какое отношение стейт-менеджер имеет к бэкенду?

В том то и эволюция, что стор фронтенда, является стором и для бэкенда. Один источник правды.

На фронте может быть информация, не предназначенная для передачи на бэк.


Вы же не веб-приложение на React пишете, а мобильное приложение на React Native. У него бэк и вовсе является опциональной частью.

> С DataStore вы можете использовать его для автономного использования в режиме «только локальный» без учетной записи AWS, а это значит можно разруливать состояние приложение локально.
Вы упорно мешаете теплое и круглое. Amplify, с точки зрения функциональной классификации — это транспортный протокол высокого уровня (а датастор Amplify — источник данных, работающий по этому протоколу). Способ получить ваши байтики данных здесь и сейчас через очень высокоуровневые абстракции, скрывающие 100500 транспортных мелочей, и, как и любые высокоуровневые абстракции — легко протекающие.

Стейт-менеджмент же — это архитектурная абстракция, разруливающая вопросы взаимодействия между источником данных для приложения и тем, что непосредственно видит пользователь.
Лучший учитель — это ученик. Поэтому я готов быть не правым и статью можно отредактировать, но парадигма serverless научила меня смотреть не на код и его научное описание, а на то какую функцию он предоставляет!
Так вот если данные на сервере изменились и DataStore пнул React перерисовать View во всех установленных приложениях, то как это не State менеджер?
С DataStore вы можете использовать его для автономного использования в режиме «только локальный» без учетной записи AWS, а это значит можно разруливать состояние приложение.
Так что пока ваши аргументы не убедили меня.
Так вот если данные на сервере изменились и DataStore пнул React перерисовать View во всех установленных приложениях, то как это не State менеджер?

Вы всерьез полагаете, что подписка на изменение модели — это всё, что делает стейт-менеджер?
Хорошо, по другому. Redux без мидлварей умеет оффлайн или реал-тайм?
Для редакса это всё безразлично, он не этими вопросами занимается.

PS: Браузер не умеет в реал-тайм. И всё, что внутри него — тоже не умеет в реал-тайм.
Что он может того, что не может DataStore?
Какой в них смысл если в конечном итоге нужно изменить данные локально или на сервере?
У Recoil recoiljs.org тоже нет экшенов. У Apollo нет их тоже. Значит ли это, что они не стейт менеджеры?
Окей, если вы не понимаете намёков, я объясню популярно: стейт-менеджер абстрагирует не только нисходящие изменения (модель -> view), но и восходящие (view -> action -> model). Не важно, есть ли в конкретном менеджере выделенная абстракция action или нет — важно, что вообще есть инструменты управления восходящими изменениями. В том же recoil есть селекторы, например, которые именно что позволяют управлять восходящими изменениями.

У вас в статье про управление восходящими изменениями — ничего вообще.
Вы уходите в процесс того как решается задачи в том или ином менеджере, а я про результат. То как решали задачи вчера, сегодня уже решают по другому! Время не стоит на месте.

Что конкретно, с точки зрения бизнеса, я не могу решить с DataStore?
а я про результат

А стейт-менеджмент — не про результат, а про организацию кода.

PS: «С точки зрения бизнеса» всё можно решить намагниченной иголкой и твёрдой рукой. Еще с очень давних времен. Вы со своим DataStore — как раз не про результат, а про процесс.
Вообщем каждый пусть решает свои задачи тем путем, который ему ближе.
Лично для меня очевидно, что с DataStore мне не нужно писать кучу болерплэйт кода на бэке и фронте решая конкретные задачи для конечных пользователей, очень просто создавая real-time приложения.

Как когда-то React Native стал бриджем между iOS и Android, так DataStore сегодня стал бриджем, ломая грань между бэком и фронтом. Будущее за подобными full stack serverless решениями.
Вы всерьез полагаете, что подписка на изменение модели — это всё, что делает стейт-менеджер?

Хранит и сообщает о изменениях — это необходимый минимум, чтобы называться стейт-менеджером, всё остальное опционально. Или я что-то забыл? Если нет, то предлагаемое решение вполне тянет на звание стейт-менеджера.

Так вот открываешь одним прекрасным утром хабр, и узнаёшь, что для кого-то оказывается CRUD и стейт-менеджмент каким-то образом приравнялись друг к другу.
O tempora! O mores!
Не знаком с метеор, могли бы провести параллель?
Он тоже весь такой реал-там с подписками и публикациями и всем тем-же из коробки. И работает не только с AWS,
Тут вот тудушка есть для реакта.
Он как я понял для веба. Я мобилки пилю.
Как понял у метеора компоненты не нативные. Это для проектов типа Cordova через WebView.

Уважаемый Дмитрий.
Вот вы постоянно обижаетесь на то, что вас с вашим эмплифай посылают в увлекательное эротическое, при этом утверждая, что это все отношение к эмплифай.
Скажите пожалуйста, вы действительно не осознаете, что проблема не в эмплифай, а в вас, и в вашей личности.


Для большинства обитателей чата RN вы стали самим ярким олицетворением термина «вечный миддл». Начните видеть что-то кроме эмплифай, и перестаньте в чате, на вопросы типа «почему у меня в файрбейзе не обновляется состояние» отвечать «используй эмплифай». Перестаньте позорить относительно неплохой продукт своим клоунским пиаром.


И не пишите больше рэп, пожалуйста, у вас не получается. Спасибо

Благодарю вас за обратную связь!

Пожалуйста пришлите ссылку на мой ответ в телеге, где я на вопросы типа «почему у меня в файрбейзе не обновляется состояние» отвечал «используй эмплифай». Иначе аргумент без доказательств, не аргумент.
Рэп я пишу на своем YouTube канале, потому пожалуйста не смотрите его.
В таких случаях я вспоминаю цитату:

„Великие умы обсуждают идеи. Средние умы обсуждают события. Мелкие умы обсуждают людей.” — Элеонора Рузвельт


Я рад, что благодаря моему Patreon у меня есть мотивация делать, то что я делаю. Пусть нас не много, но есть люди которые ценят мой труд и опыт и это вдохновляет на новые публикации для моих патронов.

Дмитрий, спасибо за статью. Для меня остался не раскрыт один момент. Если приложение несколько сложнее ToDo, где писать бизнес логику? Например, система бронирования чего-либо. При создании брони нужно не только создать в базе запись, но выполнить различные проверки на доступность, авторизовать средства на карте, отправить оповещения (Email, SMS, Push Notification) и прочее. Где это все описывается?

Спасибо, ссылки на документацию я и сам могу найти. Так где писать бизнес логику?

авторизовать средства на карте, отправить оповещения (Email, SMS, Push Notification)

Как я понял я ответил на этот вопрос.

и прочее

Про прочее понимаю о чем вы, сам работал с «лапшой» из REST API. В AWS Amplify бизнес логика выноситься на Lambda Function и отдается через GraphQL API.
В конечном итоге нам нужно показать данные в приложении или через инпуты отправить их на сервер — IO(Ввод-вывод). Поэтому модель CRUD, описаная в этом уроке, решает задачу получения данных и отправки их на сервер, а благодаря подпискам(web-sockets) React рендерит слой View на изменения данных c бэкенда.

Технология очень интересная. Довольно давно сам погружён в проблематику управления данными и redux в частности. Любой проект на опрделенённой стадии развития сталкнётся с проблемами, что пытаются решить подобные технологии.

Очень полезная и нужная статься, считаю что нужно популяризировать альтернативы дорогим решениям типа redux.

В качестве обратной связи, авторский стиль отталкивает от восприятия информации.
Sign up to leave a comment.

Articles