Разделите данные формы, правила доступности полей и переходы статусов; вычисляйте UI из роли, отношения пользователя к объекту и текущих значений.
1. Есть большая форма, она создает объект определенного вида (задача в Jira)
Разделите данные формы, правила доступности полей и переходы статусов; вычисляйте UI из роли, отношения пользователя к объекту и текущих значений.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
-
Есть большая форма, она создает объект определенного вида (задача в Jira)
-
Кнопки для переводы статусов зависят от роли пользователя и от его отношения к объекту
-
Редактируемость, обязательность и видимость полей зависят от роли пользователя и от его отношения к объекту
-
Изменение одних полей в форме может влиять на состояние других: поля могут пропадать с формы, становиться обязательными, у них можем меняться значения, они могут блокироваться
Ответ
Разделите данные формы, правила доступности полей и переходы статусов; вычисляйте UI из роли, отношения пользователя к объекту и текущих значений.
Правила удобно оформить чистыми функциями или декларативной схемой: visible, editable, required и допустимые переходы. Явно определите, очищаются ли скрытые значения, и порядок зависимых изменений, чтобы избежать циклов. Сервер повторно проверяет права, обязательность и переход статуса независимо от интерфейса. Для конкурентного редактирования используйте версию объекта и обработку конфликта.