Как мы формируем модели для js

Бизнес правила начинают появляться в клиентском коде

public class SuperViewModel
{
    public BillType BillType { get; set; }
    public BillState BillState { get; set; }
    public int Amount { get; set; }
}
// ...js
if (BillType === BillType.Import) {
    /* не выводим Amount */
}
// ...js
if (BillState === BillState.ConditionallyPaid) {
    /* не дадим нажать на кнопку */
}

Почему это плохо

  • Нарушается инкапсуляция
  • Потенциальная дыра в безопасности
  • Чтобы сделать мелкий фикс требуется ресурс и фронтэндера, и бэкэндера

А вот так

  • Модель должна изъясняться понятными с точки зрения интерфейса терминами
  • При этом модель не должна декларировать, как именно и где должны отображаться те или иные данные

boolochkee

By koteek

boolochkee

  • 409