Я разрабатываю приложение JavaScript, которое должно отображать визуализацию на основе настроек в хэше URL-адреса или на основе взаимодействия с пользователем.
(На данный момент я использую Backbone.js для MVC, но я думаю, что эти вопросы можно считать независимыми от фреймворка ...?)
Допустим, пользователь просматривает состояние приложения с выбранным индикатором A и индикатором B.
Пользователь меняет индикатор B на C, что происходит?
Что ж, изменение индикатора должно привести к тому, что модель будет ждать получения и обработки новых данных.
... и, конечно, изменение индикатора будет иметь много последствий для разных представлений:
- Доступные для отображения сущности изменятся
- Весы изменятся
- Метка индикатора изменится и т. Д., И т. Д. *
Один вопрос на этом этапе - что делать со всеми этими зависимыми / вычисляемыми переменными?
Должна ли модель, в этом случае, теперь также отслеживать доступность данных, масштаб и т. Д., Основываясь на изменении показателя? И должно ли оно также инициировать события изменения для всех этих вычисляемых атрибутов?
В любом случае «главный контроллер визуализации» теперь должен быть уведомлен об обновлении модели, но как это происходит?
В этом случае произошла смена индикатора, которая должна приводить к добавлению и вычитанию значков, изменению меток и т. Д. И т. Д.
В другом сценарии может измениться только год. Должен ли контроллер затем запустить другой путь?
А в третьем сценарии могут измениться как год, так и показатели (например, когда установлен начальный хэш URL-адреса) ... еще один набор функций, которые должны запускаться в цепочке?
Я ищу надежный способ справиться с этими различными сценариями, чтобы я мог отслеживать, что и когда должно произойти. Что меня особенно интересует, так это ваше мнение о том, какие атрибуты оставить в модели и как расположить функции контроллера для того, чтобы можно было вносить небольшие изменения взаимодействия с пользователем в модель, а также изменения с несколькими атрибутами.