Pull to refresh
2
0
Send message

Эффективное преобразование данных с использованием трансдьюсеров

Reading time5 min
Views6.2K
image


Преобразование больших массивов данных может быть достаточно ресурсозатратным, особенно, когда вы используете функции высшего порядка, такие как map и filter.


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


Представьте, что у вас база в 1000000 человек, и вам нужно создать сабсет “имен женщин старше 18 лет, которые живут в Нидерландах”. Существуют различные способы решения этой проблемы, но начну с цепочек.


const ageAbove18 = (person) => person.age > 18;
const isFemale = (person) => person.gender === ‘female’;
const livesInTheNetherlands = (person) => person.country === ‘NL’;
const pickFullName = (person) => person.fullName;
const output = bigCollectionOfData
  .filter(livesInTheNetherlands)
  .filter(isFemale)
  .filter(ageAbove18)
  .map(pickFullName);

Ниже представлен пример решения задачи с помощью цепочечного подхода, который создает временные массивы. Представьте затраты на тройное прохождение цикла более, чем в 1000000 записей!


image

Конечно, отфильтрованные коллекции будут несколько сокращены, но это, все еще довольно затратно.


Однако главный момент заключается в том, что map и filter могут быть определены с помощью reduce. Давайте попытаемся реализовать приведенный выше код в формате сокращений.

Читать дальше →
Total votes 21: ↑19 and ↓2+17
Comments7

5 тенденций развития микросервисов в 2018 году

Reading time7 min
Views12K
image

2017 год стал важным годом для DevOps, поскольку число игроков в экосистеме существенно выросло, а количество проектов с CNCF утроилось. Глядя на год вперед, мы ожидаем, что инновации и рыночные изменения ускорятся еще больше. Ниже мы рассмотрели тенденции в области микросервисов в 2018 году: сервисные связки(так называемые “меши”), event-driven архитектуры, нативная безопасность контейнеров, GraphQL и Chaos инженерия.

1. Сервисные связки популярны!


Сервисные связки или “меши”, выделенный уровень инфраструктуры для улучшения связи между сервисами, в настоящее время наиболее обсуждаема в контексте облачности. По мере того, как контейнеры становятся более распространенными, топологии сервисов становится все более динамичными, требуя улучшеной функциональности сети. Сервисные связки могут помочь управлять трафиком через обнаружение сервисов, маршрутизацию, балансировку нагрузки, проверку работоспособности и наблюдаемость(observability). Сервисные связки пытаются укротить непоколебимую сложность контейнера.

Очевидно, что сервисные сетки становятся все более популярными, поскольку балансировщики нагрузки, такие как HAProxy, traefik и NGINX, начали перестраиваться и представлять себя как плоскости данных(data planes). Мы пока не видели широкомасштабного развертывания, но мы знаем о компаниях, которые уже используют связки на живых серверах, в “продакшене”, так сказать. Кроме того, сервисные связки не являются эксклюзивными для микросервисов или сред Kubernetes, и также могут применяться в среде VM и без сервера. Например, в Национальном Центре Биотехнологической Информации(NCBI) нет контейнеров, но используется Linkerd.
Читать дальше →
Total votes 20: ↑16 and ↓4+12
Comments2

Прошлое, настоящее и будущее технологий распознавания речи

Reading time15 min
Views10K
image

Голос — это будущее. Мировые технологические гиганты требуют жизненно важной доли рынка, а ComScore прогнозирует, что «до 50% всех поисковых запросов будут выполняться голосом уже к 2020 году».

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

История технологии распознавания речи


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

Наше восхищение является инстинктивным: мы очарованы машинами, которые могут понять нас.

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

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

История технологии показывает, что распознавание речи далеко не новая озабоченность, даже если темпы развития не всегда соответствовали уровню интереса к этой теме. Как мы видим впоследствии, крупные прорывы, относящиеся к XVIII веку, обеспечили платформу для цифровых помощников, о которых мы все сегодня знаем.
Total votes 13: ↑13 and ↓0+13
Comments8

О чем говорят тренды PHP в 2016-м году?

Reading time5 min
Views25K
Если вы узнали эти несколько строчек кода ниже, значит потенциально вы в тренде последних лет развития PHP.

$client = new \Joli\ArDrone\Client();
// use API service (see below)
$client->start();




PHP-ar-drone является портом node-ar-drone, который позволяет пользователю управлять Parrot AR Drone на PHP. Пару лет назад, когда Адриен Баптист демонстрировал эту технологию, это могло показаться парашюткой :), но не сегодня.

Известные личности в мире PHP и не очень известные, многие сейчас в интернете обсуждают три основных темы – это PHP 7 против HHVM, асинхронное программирование с ReactPHP и PSR-7, а также микрофреймворки как middleware.

Во многом, споры о будущем PHP активизировались с появлением “прямого конкурента” движку PHP Zend Engine. Таким конкурентом стал HHVM — виртуальная машина для компиляции PHP кода в машинный, основанная на JIT, которая была разработана Facebook для решения все возрастающих нагрузок на сервера. Добившись повышения производительности удалось увеличить трафик на 500-600 процентов в сравнении с популярными версиями PHP на Zend 2. После чего, HHVM был отдан в свободное пользование в первую очередь сообществу WordPress. Именно это заставило основателей Zend Engine воспринимать HHVM, как прямого конкурента и к декабрю 2015-го выкатить 3-ю версию движка для PHP 7.
Читать дальше →
Total votes 23: ↑17 and ↓6+11
Comments12

Information

Rating
Does not participate
Registered
Activity