Комментарии 30
Шо, опять?
Фреймворк Steroids подходит для создания полноценного SPA приложения с продуманной архитектурой
управление состоянием, в том числе с использованием Redux, React Context;
Вы сделали 11 ошибок в слове плохой. Вместо SPA приложения с плохой архитектурой, вы по ошибке написали с продуманной.
Очнитесь, все адекватные люди последние 9 лет используют MobX в связке с React. В противном случае это просто очередной говнокод.
React нужно использовать по назначению, рендер html и жизненный цикл компонента, а управление состоянием, как глобальным, так и локальным - MobX.
Осильте уже что-то сложнее MobX. Внезапно будет и Redux не плох, если применять его к месту и руками.
Я использую RxJS и Inversify в связке с react и это работает. А Redux, это просто очень много размазанного по системе бойлерплейта. Может быть я чего-то не понимаю, но для меня дебажить и писать новые фичи с Redux сложнее и дольше.
RxJS + Inversify позволяет хранить структуру данных вместе с методами их обработки. Соблюдается принцип high cohesion. Я вижу в одном месте связанные логически вещи и инкапсулирую состояние. Появляется иерархия сервисов. От простых для работы с localstorage, до сложных бизнес сценариев (например многошаговые формы, я могу создать сервис для всех этапов, и сервисы для конкретного шага, что позволяет выстроить нормальные и слабозависимые друг от друга шаги и отдать их разным разработчикам).
Я использую RxJS и Inversify в связке с react
В принципе если машину толкать руками она тоже будет ехать (это RxJS и Inversify), только вопрос зачем?) Когда можно заправить ее бензином и завести (это MobX).
RxJS + Inversify позволяет хранить структуру данных вместе с методами их обработки.
Прикольно) MobX тоже) Как бы by design) Ну и так далее по тексту) Он покрывает все кейсы которые только захотите реализовать, с 0 оверхедом по коду и с максимально возможной читаемостью и понятностью кода. Ибо по сути он тупо нативный.
Лично мне кажется, что так больше контроля на потоком данных и соблюдается принципы low coupling и high cohesion. Ну вот как-то по субъективным ощущениям это работает луше.
Лично мне кажется, что так больше контроля на потоком данных и
Вам кажется. Больше контроля быть не может априори, ибо ровно ноль ограничений накладывает MobX.
соблюдается принципы low coupling и high cohesion
Хоспадя, что за новая мода пошла, увидели low coupling и high cohesion, теперь из каждого утюга о них поют. Жаль только с реальной жизнью всё это не контачит. Так что забудьте про эти глупости. Самое главное о чем стоить думать это KISS(Keep it simple stupid), а всё остальное второстепенно. Ну и принципы с MobX можно соблюдать какие душе угодно, всё по той же причине, отсутствие ограничений.
А вот с RxJS только write only once вырви глаз код, который поддерживать без слёз нереально можно соблюдать.
Ну вот как-то по субъективным ощущениям это работает лучше.
Это вам точно кажется)
Вы только что описани ООП и классы, от которых почему то реакт отказался. Почему?????
Я использовал как MobX, так и Redux. И ещё кучу менеджеров состояний. И мне было всегда удобно, не превращался код в кашу. Что я делаю не так? Как закривить руки, чтобы прямо в кашу?
Я использовал как MobX, так и Redux. И ещё кучу менеджеров состояний.
Я тоже.
И мне было всегда удобно, не превращался код в кашу
Ага, а я живу на Марсе. Разница в коде и в том, как принято его писать используя Redux и Mobx просто колоссальная, это вообще небо и земля.
Что я делаю не так? Как закривить руки, чтобы прямо в кашу?
Всё просто, вы либо на самом деле не работали на проектах где есть redux и т.п., либо дальше Hello world ваши проекты не уходили. Потому что только тот кто реально не работал с redux и mobx не видит разницу. а уж тем более тот, кто говорит что проект где redux это не говнокод с кашей, так он вообще в принципе не работал на проекте с redux. Либо его представления о хорошем коде диаметрально противоположны хорошему коду, поэтому эта каша и говнокод не кажется кашей и говнокодом.
Плюс у вас написано, что вы Fullstack-программист, а front-end. Это тоже объясняет ваш ход мыслей.
Зачем? KISS, Keep It Simple, Stupid
Осильте уже что-то сложнее MobX
Зачем? А главное нафига?) Что-бы что? Нет ни одного кейса, где применение Redux и т.п. будет лучше, чем MobX. Уж тем более с точки зрения красоты, читаемости и понятности кода.
вы прямо Фьюзор описали
рендер html и жизненный цикл компонента, а управление состоянием, как глобальным, так и локальным - MobX
только в нем можно любой стейт менеджер подключить на пропсу { mount }
ну и раз нет состояния - то становится не нужен ре-рендеринг и хуки, жизненный цикл компонента сжимется в 4 состояния: create, mount, update, unmount
Очнитесь, все адекватные люди последние 9 лет используют MobX в связке с React.
Адекватные люди имеют это из коробки со Vue
Опять тут навязывают всякие структуры, чтобы говнокод случайно не написали, сделайте просто, чтобы собиралось без геморроя и без всяких топорных /app & /pages
Структуры никто не навязывает, но есть описание и примеры как можно делать (и которые мы у себя используем как правила). Но привязки к директориям (app & /pages ...) здесь нет
upd: и да, если не дать примера как делать — будут делать говнокод :) Либо прогеры будут крутые, но каждый напишет по своему.. и опять получится говнокод)
Нафига redux/rtk когда есть Zustand
Нафига redux/rtk когда есть Zustand
Zustand - полу мера, да он немного получше redux/rtk, но ему далеко до MobX. А какой смыл использовать ни рыбу ни мясо, когда можно взять отличный инструмент и не страдать.
отличный инструмент и не страдать
при этом вы продолжаете использовать react)))
при этом вы продолжаете использовать react)))
Так React доставляет мне ровно 0 неудобств, только даёт плюсы, а удобнее JSX'a пока ничего не придумали. Я же его использую по назначению, как view. Для всего остального есть MobX) Поэтому мне и без разницы какой версией реакта пользоваться, 16, 17, 18, 19, 20, ..100 ) Всё что нужно для полноценной разработки любого приложения есть в 16 версии. Почему именно 16? Просто потому что useEffect удобнее чем componentDidMount, componentDidUpdate, componentWillUnmount. А аналог constructor это useState(() => {...})
Посмотрите ради интереса alpine, vue, svelte... Я после таких тулов, на проектах с реакт, как будто ем костлявую рыбу)) Не говоря уже о фундаментально устаревших вещах как virtual dom
Просто потому что useEffect
ну вот тут оно же)) люди живут без этого)
Посмотрите ради интереса alpine, vue, svelte... Я после таких тулов, на проектах с реакт, как будто ем костлявую рыбу)
Я всё это видел много лет назад, и vue 2 и vue 3, и svelte и angular и inferno и т.д. и т.п.. Что только я не видел за последние 13 лет. И пробовал создавать проекты на них. Но react + mobx по сей день максимально удобны для разработки.
Не говоря уже о фундаментально устаревших вещах как virtual dom
Дайте мне копию синтаксиса React и MobX, а под капотом не будет virtual dom, да и на самом деле пофигу что там под капотом, если по реальным замерам оно будет реально работать быстрее, есть меньше памяти и т.п. То я сразу же на это пересяду без задних мыслей) Но увы, такого пока нет) А самому писать лень, ибо и так всё более чем устраивает мои потребности)
ну вот тут оно же)) люди живут без этого)
Я в своё время реализовывал его и для классовых компонентов, это легко
export class MyComponent extends BaseComponent {
constructor() {
this.useEfftct(() => {...});
this.useEfftct(() => {...}, () => [this.props.name]);
}
}
Гляньте на Ангуляр... Ничего удобнее не придумали
Steroids — ещё один фронтенд фреймворк на базе React?