Сценарий
Предположим, вы — приложение Bob
, а я — приложение Kevin
.
Наша работа состоит в том, чтобы посылать сообщение всякий раз, когда мы видим красную машину на шоссе.
У Kevin
есть камера с искусственным интеллектом, направленная на шоссе, которая отправляет сообщение на мобильный телефон Kevin
всякий раз, когда видит красную машину.
У Bob
нет камеры с искусственным интеллектом, поэтому Bob
должен все время сидеть и смотреть на шоссе, и всякий раз, когда Bob
видит красную машину, он отправляет сообщение.
Боб иногда может пропустить красную машину, и это также приводит к ошибкам.
Анализ
Kevin
имеет камеру. Камера всегда включена, наблюдает за дорогой и всегда обнаруживает красные машины. Черт возьми, он даже отправляет сообщение для Kevin
, так что Kevin
никогда ничего не нужно делать.
Это делает Kevin
намного более эффективным, потому что теперь Kevin
может делать все, что захочет. Он может съездить в Club Med или куда-то еще. Все хорошо!
Реальный мир
В Angular этот эффект включается состоянием RxJS и Observable
, и это то, на чем построен Firefly Semantics Slice.
Из-за этого мы можем использовать ChangeDetectionStrategy.OnPush
для компонентов Angular, что эффективно сообщает Angular, что у каждого компонента есть камера AI.
За счет этого и компонент, и приложение соответственно становятся намного эффективнее.