шаблон разработки, просящий совет: модель передачи v.s. модель приема

значения по умолчанию Присвоения к переменным

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

var a = b || c;

a переменная получит значение c, только если b falsy (если будет null, false, undefined, 0, empty string, или NaN), то иначе a получит значение [1 116].

Это часто полезно в функциях, когда Вы хотите дать значение по умолчанию аргументу в случае, если не предоставляется:

function example(arg1) {
  arg1 || (arg1 = 'default value');
}

нейтрализация IE В качестве примера в обработчиках событий:

function onClick(e) {
    e || (e = window.event);
}

следующие функции языка были с нами в течение долгого времени, все реализации JavaScript поддерживают их, но они не были частью спецификации до 5-й Выпуск ECMAScript:

debugger оператор

, Описанный в: § 12.15 Оператор

отладчика Этот оператор позволяет Вам помещать точки останова программно в Вашем коде только:

// ...
debugger;
// ...

, Если отладчик присутствует или активен, он заставит его сразу повредиться, исправиться на той строке.

Иначе, если отладчик не присутствует или активен, этот оператор не имеет никакого заметного эффекта.

Многострочные Строковые литералы

Описанный в: § 7.8.4 Строковые литералы

var str = "This is a \
really, really \
long line!";

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

6
задан Jader Dias 1 December 2009 в 15:32
поделиться

2 ответа

^ [^ \ d]. * отмечает целую строку, первый символ которой не является цифрой. Проверьте, действительно ли перед цифрами нет пробелов. В противном случае вам пришлось бы использовать другое выражение.

ОБНОВЛЕНИЕ : Вам нужно будет сделать это в два этапа. Сначала очистите строки, которые не начинаются с цифры. Затем удалите пустые строки в расширенном режиме.

Базовые рабочие теперь могут взаимодействовать с промежуточным уровнем разделенным образом.


Обратите внимание, что в любой модели требуется протокол координации связи: природа протокола координации отличается. В «модели выталкивания» существует дополнительный контур управления, необходимый для сообщения / опроса «коэффициента загрузки» каждого рабочего. При масштабировании системы требуется больше пропускной способности, больше состояний на стороне планировщика, больше задержки и т. Д.

3
ответ дан 17 December 2019 в 04:47
поделиться

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

Я могу представить только 2 реализации:

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

  2. Модель push = 1 услуга с набором задач и списком активных подписчиков плюс множество активных подписчиков (рабочих).

Поскольку модель Pull не требует реализации полнодуплексных вызовов службы и списка подписчиков, она проще.

2
ответ дан 17 December 2019 в 04:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: