Оптимальное решение для случая игнорирования только одного ключа
return all(
(x == y or (x[1] == y[1] == 'key to ignore')) for x, y in itertools.izip(
d1.iteritems(), d2.iteritems()))
Я не стану долго сравнивать.
Вкратце, MobX является непопулярной утилитой, в то время как MST является самоуверенным решением, построенным на основе MobX.
Если вы новичок в MobX, просто используйте MST. Сначала ознакомьтесь с его концепциями, а затем определитесь со вторым проектом:)
Bare MobX невероятно гибок и может использоваться очень креативно. Но вы должны понять, что вы делаете с этим. Это немного похоже на черную магию, мощное, но нужно быть очень осторожным.
На самом деле, MST или MobX State Tree - очень описательное имя, если подумать.
MobX быстр, но не предоставляет никакой организационной структуры из коробки, поэтому централизованные операции, такие как создание снимков всего состояния, восстановление состояния из снимка, автоматическая синхронизация отдельных хранилищ, перемещение во времени или горячая перезагрузка не возможно или до разработчика, чтобы поддержать.
MST поддерживает все вышеперечисленное ( и более ) из коробки, организуя отдельные хранилища в единое дерево интерактивных и взаимодействующих узлов.
Центральным в MST (mobx-state-tree) является концепция живого дерева. Дерево состоит из изменчивых, но строго защищенных объектов, обогащенных информацией о типе среды выполнения. Другими словами, каждое дерево имеет форму (информация о типе) и состояние (данные). Из этого живого дерева автоматически генерируются неизменные структурно общие снимки.
blockquote>Однако все это происходит за определенную плату, и MST в целом несколько медленнее, чем чистый MobX. Поэтому, если вам не нужны эти функции, не стесняйтесь использовать только MobX.