В настоящее время я работаю над платформами React JS и React Native. На полпути я натолкнулся на Immutable или библиотеку Immutable-JS, когда читал о реализации Facebook Flux и Redux.
Вопрос в том, почему неизменность так важна? Что не так в мутирующих объектах? Разве это не упрощает ситуацию?
В качестве примера рассмотрим простое приложение для чтения новостей, где начальный экран представляет собой список заголовков новостей.
Если я установлю, скажем, массив объектов со значением изначально, я не смогу им манипулировать. Это то, что говорит принцип неизменности, верно? (Поправьте меня, если я ошибаюсь.) Но что, если у меня есть новый объект новостей, который должен быть обновлен? В обычном случае я мог бы просто добавить объект в массив. Как мне добиться в этом случае? Удалить магазин и воссоздать его? Не является ли добавление объекта в массив менее дорогой операцией?