Шаблоны / Решения для сложных функций управления - PullRequest
1 голос
/ 31 мая 2010

Моя компания разрабатывает решение CDN / Web-хостинг. У нас есть промежуточное ПО, которое служит слоем бизнес-логики и предоставляет веб-сервис для внешнего интерфейса.

Я бы хотел найти чистое решение для управления функциями - в программном обеспечении есть неопределенности и уродливые обходные пути / решения, которые разработчик сказал бы: «когда это случится или сломается, мы исправим это».

Например, вот следующие функции, которые может иметь веб-издатель:

  • Лимит сайтов
  • Ограничение пропускной способности
  • Функция SSL + конфигурация SSL для каждого сайта

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

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

Для случая с функцией SSL. Каждая конфигурация SSL связана с сайтом. Что будет с этими объектами конфигурации, когда функция SSL будет понижена с включенной до отключенной?

Итак, как вы можете видеть, есть много разных ситуаций, и есть разные способы справиться с этим.

  • Я могу создать систему, которая проверяет воздействия и предлагает пользователю внести изменения до понижения / обновления.
  • Или система, которая игнорирует удары и просто модернизирует / понижает рейтинг. Bad.
  • Или система, спроектированная таким образом, чтобы клиентский код должен был знать о матрице сложных функций (или я могу предоставить вспомогательный код клиентскому коду, чтобы проверить, не является ли функция DEFUNCT)

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

Ценю вашу помощь.

...