enforceActions не даст мутировать из любого места. В MobX 6 по умолчанию включен.
Если еще добавить модификаторы доступа TypeScript (private, protected), то вообще проблем не будет.
Принцип наименьшего удивления – это маркетинговый ход Ruby, который привел к тому, что у них есть три метода для взятия длины строки (length, size и count). Чтобы уж точно никого не удивить.
В реальности этот принцип не работает, потому что у всех свои собственные ожидания от языка. Например, я ожидаю, что пустая строка кастанется к false, но Ruby считает по-другому.
Поэтому мораль простая: ты или знаешь спеку или не знаешь.
Для описания поведения сравнения в JS нужно помнить больше вещей, как я понимаю.
Достаточно запомнить правило «никогда не используй ==». А если забудешь, то статический анализ напомнит.
Ну так и для любого JS WTF есть какое-то объяснение. Я это к тому, что язык должен соответствовать своей спеке, а не ожиданиям каких-то людей.
Если [] == "" соответствует спеке Хаскеля, то меня ничего не смущает.
Смотрели как под капотом работает redux-toolkit? Насколько я могу понять, они точечно мутируют стейт с помощью immer, потом мутируют стейт целиком и какой-то жесткой логикой пытаются найти разницу, чтобы показать красивую историю изменений.
Кажется команда Redux поняла наконец-то что они куда-то не туда повернули в своей жизни, но чтобы сохранить лицо они пытаются впарить людям MobX (immer) под видом Redux.
Без вашего комментария пост был бы неполон)
Даже если $mol лучше по всем параметрам, я не знаю как его продать руководству и команде. Не знаю как нанимать людей на $mol. Не знаю зачем менять реально работающее «достаточно хорошее» решение, на потенциально «идеальное».
Дальше синтаксиса шаблонов $mol никто в моей команде не будет смотреть. <=> — что это такое? $.$$ это мои удивленные глаза.
Как вы тестируете-то это всё без возможности замокать стор?
Jest позволяет замокать любой импорт. Более того, он может замокать любую функцию (даже не импортируемую) любого модуля. Сейчас ведь не 1994 год, в самом деле.
Согласен с вами. Хотя если команда прям совсем слабая и нет времени придумывать архитектуру, то кажется проще взять Angular или Ember. C ember-data вам даже не надо думать как организовать структуру API.
Конкретно Effector не рассматривали, но на самом деле такого добра на рынке как грязи – Effector, Reatom, Storeon, Unstated. Если честно, я не знаю как из них выбирать и как потом это продать команде.
Да, имеет смысл обратиться к другим экосистемам, в которых такое тестирование уже давно практикуется. Haskell, F#, Scala и т.д.
Ничего нового тут не придумать, учитывая то, что они начали практиковать property-тесты намного раньше.
Дней без ошибок в коде: NaN
Если еще добавить модификаторы доступа TypeScript (private, protected), то вообще проблем не будет.
В реальности этот принцип не работает, потому что у всех свои собственные ожидания от языка. Например, я ожидаю, что пустая строка кастанется к false, но Ruby считает по-другому.
Поэтому мораль простая: ты или знаешь спеку или не знаешь.
Достаточно запомнить правило «никогда не используй ==». А если забудешь, то статический анализ напомнит.
Если [] == "" соответствует спеке Хаскеля, то меня ничего не смущает.
Простите.
Кажется команда Redux поняла наконец-то что они куда-то не туда повернули в своей жизни, но чтобы сохранить лицо они пытаются впарить людям MobX (immer) под видом Redux.
Даже если $mol лучше по всем параметрам, я не знаю как его продать руководству и команде. Не знаю как нанимать людей на $mol. Не знаю зачем менять реально работающее «достаточно хорошее» решение, на потенциально «идеальное».
Дальше синтаксиса шаблонов $mol никто в моей команде не будет смотреть. <=> — что это такое? $.$$ это мои удивленные глаза.
Jest позволяет замокать любой импорт. Более того, он может замокать любую функцию (даже не импортируемую) любого модуля. Сейчас ведь не 1994 год, в самом деле.
Можно настроить в VS Code:
"workbench.editor.labelFormat": "short"
Ничего нового тут не придумать, учитывая то, что они начали практиковать property-тесты намного раньше.
Доступность нужна всем публичным сайтам.
Учитывая что Леруа это европейская компания, очень скоро полетят судебные иски.