где сделать проверку ввода - PullRequest
2 голосов
/ 09 января 2011

Предположим, что бизнес-уровень используется сетью, а некоторые функции бизнес-уровня открыты для общего доступа также в виде веб-сервисов REST.

Вы бы провели проверку ввода для бизнес-логики на уровне представления (веб или REST-сеть)службы) или на бизнес-уровне и фиксируют ошибки проверки (генерируемые бизнес-уровнем) на уровне представления?

(В частности, используется пружинный каркас)

Ответы [ 3 ]

3 голосов
/ 09 января 2011

Если есть сомнения, как правило, лучше поместить бизнес-логику (включая логику проверки ввода) в бизнес-уровень, потому что

  • Возможно, вы имеете дело с несколькими презентационными средами (например, с веб-интерфейсом и API)
  • Вы не хотите повторять код и управлять двумя экземплярами этой логики

Хорошие фреймворки позволят вам определять такую ​​логику в общем месте и поддерживать обнаружение проблем на ранних этапах (например, на уровне представления), что обычно является более интуитивным (отказоустойчивым), более масштабируемым (интерфейс распознает его) решением. .

Однако, если ваши фреймворки не поддерживают эту возможность, вы должны предпочесть согласованность и ремонтопригодность и использовать логику на бизнес-уровне.

1 голос
/ 09 января 2011

Нарушения бизнес-правил всегда должны происходить на бизнес-уровне. Независимо от того, разрешаете ли вы упреждающую проверку или нет, вы принимаете решение о дизайне, а также хотите ли вы проводить тщательную проверку на клиенте, чтобы избежать повторных обращений.

1 голос
/ 09 января 2011

Я рекомендую проводить проверку на всех уровнях. Я делаю пользовательский интерфейс, чтобы пользовательский опыт был высоким, с немедленной обратной связью. Но я никогда не доверяю данным, предоставленным пользовательским интерфейсом (думаю, пользователь, который отключает JS). Теперь, насколько подробно ваша проверка на стороне сервера идет до вас. Но вы хотите, чтобы ваш пользователь не страдал от полного обхода сервера, если вы можете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...