Сложная проверка адреса электронной почты - PullRequest
1 голос
/ 31 июля 2009

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

Мой выбор:

  1. Создайте единый валидатор адресов, который невероятно строг.
  2. Создайте очень свободный валидатор для основной записи, затем проведите повторную валидацию с помощью настраиваемого валидатора для каждого агентства в соответствии с потребностями до отправки каждой формы.
  3. Что-то, о чем я не подумал?

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

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

Ответы [ 3 ]

3 голосов
/ 31 июля 2009

Второй вариант - определенный выбор: один огромный валидатор (будь то код, регулярное выражение, основанный на правилах и т. Д.) Станет кошмаром для поддержки и расширения. Более того, он на 20% меньше SOLID , поскольку он нарушает S и O.

2 голосов
/ 31 июля 2009

Я предпочитаю и второй, потому что если агентство изменит свои требования к валидации, вам будет проще изменить ваш код.

Кроме того, добавлять агентства гораздо проще.

1 голос
/ 31 июля 2009

Я бы точно выбрал второй вариант. Иметь очень общий валидатор для первоначальной проверки. Тогда меньше, отдельные валидаторы для каждого агентства. Больше работы заранее, но гораздо проще в обслуживании. Как сказал Оксиморон, если агентство изменило свои действующие требования к электронной почте, вы измените только один валидатор. Также минимально добавлять новые агентства или удалять агентства. Работает по принципу слабой связи, высокой когезии.

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