Очень похожий вопрос, с полезными ответами, задали ранее: , Как я определяю более темный или более легкий цветной вариант данного цвета?
Короткий ответ: умножьте значения RGB на константу, если Вы просто нуждаетесь "достаточно хороший", переводите в HSV при требовании точности.
Несколько шаблонов, которые приходят на ум:
Некоторые ресурсы:
Сделайте приложение максимально не зависимым от состояния. Будет легче адаптироваться к ферме серверов.
Книги POSA (шаблонно-ориентированная архитектура программного обеспечения) являются отличным источником таких шаблонов.
POSA 4 , в частности, касается распределенных вычислений, но все разделы посвящены полный шаблонов масштабируемости.
Ничего не бесплатно - все сводится к приемлемым компромиссам для достижения целей вашего бизнеса. Основными переменными являются:
Отличная статья для чтения по этой теме.
Я считаю хорошей метрикой было бы изучить "стоимость / пользователь" кривой и попробуйте поддерживать ее в линейном режиме (при условии, что приемлемая стоимость на пользователя является известным параметром: -)
Шаблоны проектирования действительно играют роль, но наибольшее значение имеет общая архитектура. Можно было бы быть очень тщательным на уровне модуля, но, как следствие, упущены ограничения на уровне сети и масштабируемость.
В конце концов, я считаю, что нужно спросить себя: для типа отказа X сколько » пользователи "могут быть затронуты и как долго?
Где-то всегда будет SPOF (Single Point Of Failure), но можно спроектировать систему так, чтобы этот SPOF был перемещен ближе к конечным точкам (например, к пользователям). Однако во многих случаях SPOF находится вне контроля приложения, например сетевой POP недоступен.
В любом случае, я мог бы потратить часы на эту тему ...
-)Шаблоны проектирования действительно играют роль, но главное - это общая архитектура. Можно было бы быть очень тщательным на уровне модуля, но, как следствие, упущены ограничения на уровне сети и масштабируемость.
В конце концов, я считаю, что нужно спросить себя: для типа отказа X сколько » пользователи "могут быть затронуты и как долго?
Где-то всегда будет SPOF (Single Point Of Failure), но можно спроектировать систему так, чтобы этот SPOF перемещался ближе к конечным точкам (например, пользователям). Однако во многих случаях SPOF находится вне контроля приложения, например сетевой POP недоступен.
В любом случае, я мог бы потратить часы на эту тему ...
-)Шаблоны проектирования играют роль, но главное - это общая архитектура. Можно было бы быть очень тщательным на уровне модуля, но упущенные ограничения на уровне сети и масштабируемость страдают, как следствие.
В конце концов, я считаю, что нужно спросить себя: для типа отказа X сколько » пользователи "могут быть затронуты и как долго?
Где-то всегда будет SPOF (Single Point Of Failure), но можно спроектировать систему так, чтобы этот SPOF был перемещен ближе к конечным точкам (например, пользователям). Однако во многих случаях SPOF находится вне контроля приложения, например сетевой POP недоступен.
В любом случае, я мог бы потратить часы на эту тему ...
В конце концов, я считаю, что нужно спросить себя: для типа отказа X сколько «пользователей» может быть затронуто и как долго?
Всегда будет SPOF (Single Point) Of Failure) где-то, но можно спроектировать систему так, чтобы этот SPOF был перемещен ближе к конечным точкам (например, пользователям). Однако во многих случаях SPOF находится вне контроля приложения, например сетевой POP недоступен.
В любом случае, я мог бы потратить часы на эту тему ...
В конце концов, я считаю, что нужно спросить себя: для типа сбоя X сколько «пользователей» могут быть затронуты и как долго?
Всегда будет SPOF (Single Point) Of Failure) где-то, но можно спроектировать систему так, чтобы этот SPOF был перемещен ближе к конечным точкам (например, пользователям). Однако во многих случаях SPOF находится вне контроля приложения, например сетевой POP недоступен.
В любом случае, я мог бы потратить часы на эту тему ...