Linuxoid.pro

Сообщество разработчиков программного обеспечения и IT-специалистов

SQL мертв, да здравствует Flux

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

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

Почему я не инвестировал в криптовалюту, когда она стоила всего один доллар? Я пропустил волну Javascript? Я опоздал на вечеринку? На этот раз этого не произойдет. Посредством этого броского названия я хотел познакомить вас с  Flux легким, невероятно быстрым языком сценариев, который упрощает работу с данными.

I) Особенности

Flux не стремится быть SQL 2.0. Нисколько. Flux — это совершенно новый язык, который воссоединяет современные концепции, такие как  открытый исходный код, модульность, выразительность и совместимость с миром сценариев . Он встроен в  Go для повышения производительности.

Flux создан для:

  • Выразительность и читаемость

Справа вверху приведен пример запроса Flux. Основным преимуществом Flux является то, что запросы говорят сами за себя, они  выразительны . Инструкции объединяются в конвейер с использованием  оператора конвейера , и на каждом шаге к нашим данным применяется очень специфическая функция. Больше никаких вложенных запросов, никакого невыразительного SQL-хаоса. Вы можете точно узнать, откуда взяты данные, с помощью предложения from, диапазона данных, с которыми мы работаем, и всех последующих преобразований, которые мы применяем к нему.

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


Набор ключевых слов Flux

В разработке языков программирования всегда есть что-то среднее между  чистотой  и  удобством использования . Некоторые языки имеют репутацию очень чистых, но они не получили широкого распространения, потому что их нельзя использовать или масштабировать для систем, которые мы хотим построить. Печально известными примерами таких языков программирования являются Lisp и Haskell. Чрезвычайно чистые языки, звучит хорошо, не работает.

С другой стороны, Flux находится где-то посередине между этими двумя концепциями. Вы снова столкнетесь с функциональными аспектами, такими как  анонимные функции и возможность компоновки функций . Тем не менее, у вас остается очень удобный язык программирования, который делает то, о чем говорит.

  • Сделайте каждого программистом данных

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

Flux даже интегрирован с инструментом под названием  Chronograf , инструментом визуализации данных для программистов. Как это круто? Вы вводите свой запрос и получаете  прямое визуальное представление  того, что вы только что набрали. Остерегайтесь SQL.

Наверное, это меня больше всего волнует. Flux — это язык, предназначенный для внесения дополнений. Создавая простые атомарные функции и позволяя разработчикам создавать свои собственные функции,  каждый может делиться функциями с сообществом.

Представьте себе мир, в котором вам не нужно писать одни и те же функции снова и снова, потому что разработчики уже написали это для вас. Они даже протестировали эту функцию для вас.

Разве мы здесь не говорим о производительности разработчиков?


Скоро появится диспетчер пакетов Flux! (с надеждой)

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

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

Мы видели это с помощью React. React создал концепцию многократного использования компонентов и компонентов. Сейчас React — одна из крупнейших экосистем в индустрии пользовательских интерфейсов, в которой ежедневно создаются сотни, если не тысячи компонентов. Хотите видеоплеер? Есть компонент для этого. Хотите необычный выпадающий список с надписью Merry Christmas, когда вы его открываете? Понятно.

Flux мог быть таким же. Хотите функцию, которая вычисляет скользящее среднее по вашим данным? У нас есть для этого функция.

  • Тестируемость

Модульное тестирование в мире сценариев данных — нетривиальная проблема. Модульное тестирование SQL страдает от сильной корреляции со структурой данных, стоящей за ним, чего нельзя сказать о функциональном языке сценариев, таком как Flux. Даже если функции Flux напрямую управляют и трансформируют данные, они не так напрямую связаны со структурой данных, стоящей за ними, что является очень надежным активом.

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

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

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

Теперь, как, по вашему мнению, может повлиять на производительность разработчиков, если вы перейдете к следующему:


Ммм … явно функция скользящего среднего не сказала ни одному разработчику

К этому :


Читаемость и эффективность в лучшем виде.

II) Совместимость

Итак … что такое совместимость и почему она так важна для языка сценариев, такого как Flux?

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


Подробный рабочий процесс Flux

Схема выше описывает рабочий процесс потока. Flux берет свои данные из набора входов (InfluxDB, Kafka ..), преобразует их и затем отправляет на выход, где вы хотите хранить свои данные. Вот почему Flux так хорош:  он не привязан к Influx . Вы можете брать свои данные откуда угодно, и это большое преимущество для мира сценариев данных. Нет необходимости в ESB.


Еще более подробный рабочий процесс Flux

Опять же, разве эта продуктивность разработчика не на высоте?

III) Внесите свой вклад и экспериментируйте

Новый тренд — ничто без нас, разработчиков . Это только ранние стадии, но я верю, что у Flux впереди несколько очень ярких дней. Помните кривую Роджерса? Вот где стоит Flux.

Помимо шуток, я действительно призываю всех любопытных и заинтересованных разработчиков прыгать с поезда. Чтобы протестировать Influx и, возможно, внести свой вклад в его развитие: это  полностью открытый исходный код . InfluxData сделал множество руководств по запуску своего стека TICK, и он доступен для каждой операционной системы.

Flux доступен здесь:

https://github.com/influxdata/flux

https://portal.influxdata.com/downloads

Вы уже тестировали Flux? Если да, то что вы об этом думаете?

Не стесняйтесь комментировать эту статью, хлопать в ладоши, если она вам нравится, и присоединяйтесь ко мне в моих социальных сетях, если хотите оставаться на связи. Развлекайтесь, разработчики!