The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Вышел менеджер состояний Reatom 1.0, позиционируемый как альтернатива Redux

20.12.2019 20:32

Состоялся релиз Reatom 1.0.0, менеджера состояния для веб-приложений, работающих по модели flux. Проект может применяться в качестве альтернативы Redux. Код написан на JavaScript и распространяется под лицензией MIT. Автор проекта: Артём Арутюнян.

Основные возможности:

  • Преемственность экосистемы Redux;
  • Наличие типизации и хороший вывод типов;
  • Оптимизированное оповещение подписчиков;
  • Лёгкость при тестировании;
  • Ленивые вычисления (только при наличии подписчиков);
  • Обеспечение атомарности и консистентности.


  1. Главная ссылка к новости (https://reatom.js.org...)
  2. Русскоязычный Telegram-канал разработчиков Reatom
  3. OpenNews: Выпуск встраиваемого JavaScript-движка Duktape 2.4.0
  4. OpenNews: Выпуск серверной JavaScript-платформы Node.js 13.0
  5. OpenNews: Релиз 19.3.0 виртуальной машины GraalVM и реализаций Python, JavaScript, Ruby и R на её основе
  6. OpenNews: Прогресс в использовании ОС Redox на реальном оборудовании
Автор новости: Сергей Белозёрцев
Тип: Программы
Короткая ссылка: https://opennet.ru/52069-redux
Ключевые слова: redux, javascript
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (56) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Anonymoustus (ok), 21:51, 20/12/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Читая такие безумные новости, я склоняюсь к мысли, что люди не понимают, зачем нужны компьютеры. А давайте ими будем выгуливать собак и клеить обои?
     
     
  • 2.3, Растобой (?), 22:12, 20/12/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В чём безумство-то?
     
     
  • 3.6, Аноним (6), 22:42, 20/12/2019 [^] [^^] [^^^] [ответить]  
  • +8 +/
    Ну как же! люди забыли, что компьютеры для того, чтобы компилировать генту!
     
     
  • 4.15, Аноним (15), 00:02, 21/12/2019 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Компьютеры для научных вычислений и сложных рассчетов, а генты придумали хипсторы.
     
     
  • 5.24, GentooBoy (ok), 03:10, 21/12/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Если вы не знает зачем появилась гента и кто её придумал не стоит публично гордиться своим невежеством.
     
     
  • 6.25, Онаним (?), 04:02, 21/12/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Генту сама себя не скомпилирует, человек прав.
     
     
  • 7.35, Аноним (35), 10:31, 21/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Если ты не знаешь как появилась гента то не надо тут, как уже выше написали, све... большой текст свёрнут, показать
     
  • 5.34, Аноним (35), 10:12, 21/12/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Калькулейт линукс самая что ни на есть настоящая Гента. Можно её компилить на кластере хоть каждый день. А то что твой кластер считает на целый 1% быстрее чем универсальное ядро это эпик вин.
     
  • 2.7, пох. (?), 22:50, 20/12/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    ну их таких нaxep. Потом собаку либо сам лови по улицам, либо лечи, либо то и другое, а обои отвалятся вместе со штукатуркой.
    Пусть лучше "менеджеры состояний" кодют, так гораздо меньше вреда.

     
  • 2.16, neanonim (?), 01:30, 21/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Компьютеры придумали для того, чтобы появился web-way: сделать пару реактивных кнопочек и продавать за миллиард.
     
     
  • 3.30, Anonymoustus (ok), 08:46, 21/12/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Главное — не запутаться:
    [CODE]
    =
    ==
    ===
    [/CODE]
     
  • 2.27, Олег (??), 06:45, 21/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > А давайте ими будем выгуливать собак и клеить обои?

    ДВК-2 вполне можно использовать для укатки линолеума.

     
  • 2.32, Аноним (32), 09:57, 21/12/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > выгуливать собак

    Разрабы из Boston Dynamics улыбнулись бы твоему каменту, если бы читали опеннет.
    > клеить обои

    Кстати, тот, кто хоть раз клеил обои, наверняка мечтал о двух руках, чтобы держать держать нижний край полосы, двух руках, чтобы поднимать её, приклеивая к стене и ещё об одной руке, чтобы сразу выгонять из-под неё пузыри. Робот, управляемый компьютером мог бы клеить обои намного лучше человека. Более того, робот мог бы клеить сразу с рулона, нанося клей непосредственно перед контактов и отрезая рулон по достижении верхнего края.

     
     
  • 3.36, Anonymoustus (ok), 11:11, 21/12/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ещё скажи, что софт для роботов пишут вебмакаки на жлобоскрипте.
     
     
  • 4.40, InuYasha (?), 12:46, 21/12/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    К сожалению, и такое было. А ещё, вроде, был робот на Жаве, который убился об стену.
     
     
  • 5.41, Anonymoustus (ok), 12:58, 21/12/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > К сожалению, и такое было. А ещё, вроде, был робот на Жаве,
    > который убился об стену.

    Я так и пишу: не понимают, зачем нужен тот или иной инструмент (например, компьютер). Хватаются за модное, заколачивают гвозди микроскопами, руки моют кислотой, зубы чистят сливочным маслом, из автомобилей пытаются сделать смартфон с колёсами и тому подобное.

     
  • 5.47, Павел Отредиез (?), 18:18, 21/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Все нафиг, порвал. Робот на жаве убился об стену :)))
     
     
  • 6.48, Аноним (48), 21:53, 21/12/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это не шутка, если что.
     
  • 3.52, пох. (?), 10:27, 22/12/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Разрабы из Boston Dynamics улыбнулись бы твоему каменту, если бы читали опеннет.

    к  сожалению им некогда читать опеннет - все срочно обновляют профили на линкедине, после того как гугль выкинул их на мороз, так и не сумев придумать, нахрен это ему надо.

    > Робот, управляемый компьютером мог бы клеить обои намного лучше человека.

    я тебе страшный тайна открою - робот без единого управляющего компьютера еще и делал бы это - надежно.
    Робот, кладущий плитку (посложнее задачка, да?), помнится, существовал уже во времена позднего совка. Ну как...робот или не совсем? На "жесткой логике". Поколению жабаскрипта надо разжевывать, что это такое?

    Минус у него был один - реле (или ключи, или на чем уж он там был) не производились из песка, в отличие от микроконтролеров. И труд инженеров стоил (в часах работы и часах на обучение такого инженера, безотносительно к модным тенденциям в экономике фуфла) в сотни раз дороже js-макаки.

    Поэтому плитку кладут и обои клеют таджики, а с роботами как-то вот так: http://bash.org/./?240849

     
     
  • 4.53, Anonymoustus (ok), 13:11, 22/12/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Компьютеризированное решение автопилота разумному человеку должно быть подсказано самим естественным устройством дорог (предельно упрощая — колея для колеса) и давно существующим прототипом «автопилотной» дороги — железной дорогой. Заставить автомобили ездить по навигационной сетке из копеечных маячков — задача, для которой достаточно процессоров уровня i386 и операционной системы типа DOS. Но как же тогда пилить миллиарды баксов на взрывных инновациях прогресса?

    Интересно, кто ещё, кроме меня и тебя, на этом якобы айтишном форуме понимает, что компьютеризация автомобилей — это бубльдотком-2?

     
  • 4.54, Anonymoustus (ok), 13:20, 22/12/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Любой человек, пусть даже не изучавший глубоко, но серьёзно интересующийся науками о нервах, мозге и психике, чётко понимает, что попытки сделать человекообразный ИИ неизбежно ведут к созданию примитивной модели очень тупого человека, а не умной самостоятельной машины.

    Причём на производстве поняли это много десятилетий назад и не заказывают для себя ничего сколько-нибудь напоминающего человека. Там все машины проектируют, говоря отвлечённо, под функцию, а не пытаются обмануть природу вещей и построить электрического мастера на все руки Васяна.

    Погромизды — сущая беда для человечества. За что бы ни взялись, всё портят и ломают. Знаний-то и мозгов ни на что нету, кроме говнокодинга.

     

  • 1.2, Аноним (2), 22:08, 20/12/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Редукс же буквально не более 100 строк занимает. Могли бы за место новости исходник выложить
     
  • 1.4, Аноним (4), 22:16, 20/12/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Там это, file на этой неделе обновился. Чего новость не написали. :(

    >Основные возможности

    Такое ощущение, что новость маркетолух писал. :/ Но непонятно, зачем это тут. Проплаченный рекламный пост? Может, пометку для таких делать?

     
  • 1.5, kai3341 (ok), 22:22, 20/12/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Остро напоминает работу со state в elm lang (ахтунг, диалект хаскеля)
     
     
  • 2.9, kai3341 (ok), 23:30, 20/12/2019 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Посмотрел внимательнее

    Пионером был flux. Читал о нём мельком -- когда потребовалось вкатиться во фронт-энд, уже был redux
    Общая тенденция -- flux позволял слишком много, redux ввёл ограничения -- стало удобнее. Появились best practice, в частности, константы (названия actions) рекомендуется определять в отдельном файле и впредь импортировать их; из личного -- redux позволяет делать состояния вложенными, но я пришёл к их нормализации (возможно, я болен и мой мозг сожрали реляционные базочки)
    Reatom точно эти и возможно другие best practice возвёл в ограничения: теперь не просто придётся определять константы (считай, 'declareAction') в отдельном файле и после их импортировать, теперь не получится сделать иначе. Вложенные состояния теперь невозможны. Зато простые обработчики стали предельно просты и читаемы. Немного стрёмно насчёт CRUD -- там бывает хитрая логика, плохо выносимая в однострочник. Но и тут можно крутиться
    Иногда требуется обработать константу другого редьюсера -- при logout нужно очистить состояние. Вроде, такую возможность не потеряли.

    Посмотрел в код. Если мне не изменяет память, redux прогоняет константу по всем редьюсерам. Просто и достаточно эффективно. Reatom строит дерево -- можно немного тактов сэкономить. На фоне расходов на рендеринг очень смешно, но тем не менее это хорошо

     
     
  • 3.11, vitalif (ok), 23:36, 20/12/2019 [^] [^^] [^^^] [ответить]  
  • –3 +/
    reatom не смотрел, а redux попробовал и ушёл. Он ломает ГЛАВНОЕ преимущество реакта - компонентность. На чистом React лучше писать
     
     
  • 4.12, kai3341 (ok), 23:44, 20/12/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >  reatom не смотрел, а redux попробовал и ушёл. Он ломает ГЛАВНОЕ преимущество реакта - компонентность. На чистом React лучше писать

    Не стоит путать длинное и зелёное :) Классический пример правильного использования redux -- логин пользователя. Откройте форму ответа на opennet: имя пользователя отображается и в правом верхнем углу, и на форме ответа. Так вот, redux гарантирует, что это одни и те же данные, которые можно изменить в одном месте и они обновят разные компоненты одинаково

     
     
  • 5.23, vitalif (ok), 02:36, 21/12/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Оно-то да. Но на нём целиком приложения пишут))
     
     
  • 6.37, kai3341 (ok), 11:33, 21/12/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >  Оно-то да. Но на нём целиком приложения пишут))

    Кстати говнокодом это назвать у меня язык не поворачивается. Плюшка в том, что можно гибко рулить контекстом и очищать его, и в то же время не допускать запроса одних и тех же данных дважды

    Например, у нас есть список, например, книг. По клику открывается модалка с вкладками -- об авторе, аннотация к книге, оглавление, глава для ознакомления с изложением (набор сканов страниц), похожие авторы (корреляционная нейросеть), etc. Очевидно, стейт модалки при её закрытии нужно вычищать. В то же время не всю информацию есть смысл грузить в модалку сразу -- точно сканы страниц грузить сразу не стоит. И в нейронку лезть сразу неразумно.
    Уже загруженную информацию забывать не разумно -- её стоит сохранить, и после очистить, когда она перестанет быть нужна. Вам бы понравилось, если бы при переглючении с предпросмотра главы на список похожих авторов и назад страница перезагружала данные каждый раз? Не, можно пробросить функцию 'setState' из модалки вовнутрь, но какой смысл усложнять код, не получая ничего взамен? Скорость исполнения не увеличится.

     
  • 5.33, Аноним (32), 10:10, 21/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    А просто головой помнить, что вот здесь и вот здесь - логин пользователя, и при его смене надо поменять во всех местах, где он присутствует - не?
     
     
  • 6.38, kai3341 (ok), 11:42, 21/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >  А просто головой помнить, что вот здесь и вот здесь - логин пользователя, и при его смене надо поменять во всех местах, где он присутствует - не?

    У нас нарисовался любитель спагетти-кода. Сейчас он нам расскажет, как правильно программировать

     
     
  • 7.51, Аноним (32), 02:43, 22/12/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > спагетти-код

    Это похвально, что ты запомнил незнакомое слово. Теперь бы ещё тебе узнать его смысл.

     
  • 6.43, имя_ (?), 14:41, 21/12/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    в школе уже каникулы начались?
     
  • 6.55, Ordu (ok), 14:30, 22/12/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ты ещё скажи, что считать надо в уме, а не на калькуляторе.
     
  • 3.14, Аноним (14), 23:53, 20/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Конструктивно расписал! :) Спасибо
     
  • 3.17, neanonim (?), 01:31, 21/12/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ты на себя сперва посмотри.. потом подумаешь как программировать.
     
  • 3.18, Аноним (18), 01:33, 21/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Логика, плохо выносимая в однострочник, лол!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     
  • 3.49, Aninomuz (?), 01:21, 22/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    я в день пишу одну строку зато какую!
     
     
  • 4.50, Аноним (32), 02:42, 22/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Пфе... вот у меня алгоритм хэширования вычисляет всего один бит, зато какой!
     

  • 1.8, Аноним (8), 23:02, 20/12/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Давно использую https://effector.now.sh/
    В котором реализовано гораздо больше фич и до сих пор не сломана обратная совместимость
     
     
  • 2.10, kai3341 (ok), 23:33, 20/12/2019 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Опачке. Два чаю вам. Красивое решение
     
  • 2.13, Аноним (13), 23:46, 20/12/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Видел, что Илья Климов о нём нелестно отзывался после работы над реальным проектом (хотя до этого хвалил)...

    Походу ещё посидим на редаксе.

     
     
  • 3.20, Аноним (20), 01:46, 21/12/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Так же отзовусь о нём нелестно, так же после работы на реальных проектах. Но имхо оно всё же лучше костыльного редакса.
     
     
  • 4.22, Аноним (14), 02:12, 21/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Это да, явно лучше чем редакс.

    Недавно выкатили reduxjs/toolkit, решающий грехи редакса. Забавно, что половину этого пакета занимает immer.

     

  • 1.19, Аноним (20), 01:45, 21/12/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    На фи га, если т. н. менеджер стейта для 99% задач реализуется в 15 строк кода?
     
     
  • 2.21, Аноним (14), 02:08, 21/12/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ждём стейт менеджер в 15 строк кода, решающий 99% задач (без сторонних зависимостей) ;)
     
     
  • 3.26, Онаним (?), 04:03, 21/12/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Главное не забыть включить лифпад.
     
     
  • 4.31, Аноним (31), 09:15, 21/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Давай ты все перепишешь на C89?
     
     
  • 5.42, депутат Милонов (?), 14:32, 21/12/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ведро денег принёс ?
     
  • 3.29, Аноним (2), 08:29, 21/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Из статьи:
    "Мне уже доводилось заглядывать в репозиторий библиотеки redux, но откуда-то появилась мысль углубиться в его реализацию. Своим в некотором роде шокирующим или даже разочаровывающим открытием я хотел бы поделиться с сообществом.

    TL;DR: базовая логика redux помещается в 7 строк JS кода."

    https://habr.com/ru/post/439104/

     
     
  • 4.46, Аноним (46), 18:14, 21/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Взглянул на статью.

    Человек мало того, что написал сломанный вариант Redux так ещё и до решения 99% задач как раком до китайской стены.

     
     
  • 5.56, Я (??), 11:25, 25/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Человек, конечно же, слегка утрировал.
    Однако великолепно показал этим все макачество рассуждающих с умным видом о целой технологии, которая на самом деле является маленькой элементарной вещичкой.
     
  • 3.44, Аноним (44), 15:31, 21/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Вот хорошая реализация. Даже короче
    https://twitter.com/tjholowaychuk/status/957853652483416064
     

  • 1.28, Аноним (28), 07:04, 21/12/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А можно мне такое же, только для preact, пожалуйста?
     
     
  • 2.39, Аноним (14), 12:09, 21/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Так оно независимое и с преакт дружит :)
     
     
  • 3.45, Спорынья (?), 15:41, 21/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Для реакта есть коннектор, а для преакта нет
     
     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2020 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру