Как написать динамически самоуравновешивающую систему для тестируемости? - PullRequest
2 голосов
/ 21 сентября 2009

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

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

Ответы [ 2 ]

1 голос
/ 21 сентября 2009

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

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

Рекомендуемый подход состоит в том, чтобы скрыть такие компоненты за интерфейсом, который затем можно заменить на так называемые Test Doubles в модульных тестах.

Книга xUnit Test Patterns охватывает многие из этих вещей, и многое другое, очень хорошо.

1 голос
/ 21 сентября 2009

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

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

Он довольно хорошо показывает ловушки и распространенные ошибки, а также дает возможные решения.

Первое издание доступно для скачать бесплатно от авторов .

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

...