Представляем CUE: язык проверки данных с открытым исходным кодом

CUE — это язык Google General Configuration Language или GCL, созданный группой разработчиков. Это язык проверки данных с открытым исходным кодом. Он предназначен для упрощения операций, связанных с определением и использованием данных. Приложения включают проверку данных, конфигурацию данных, генерацию кода, составление запросов и даже создание сценариев.

Главное, что отличает CUE от языков-конкурентов, — это то, что он объединяет типы и значения в одно определение. CUE выстраивает типы и значения в единую иерархию, которая в большинстве языков воспринимается по-разному. Это чрезвычайно мощная идея, которая позволяет CUE делать много классных вещей.       

Она также упрощает работу. Например, дженерики и перечисления не требуются; типы sum и null coalescing — это не разные вещи.

Некоторые основные особенности CUE

Вот некоторые из основных возможностей CUE:

Валидация данных:

CUE упрощает использование инструмента командной строки для описания и проверки схемы. Для проверки документно-ориентированных баз данных, таких как MongoDB, можно использовать ограничения CUE.

Улучшенная читабельность:

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

Ступенчатое развитие компетенций типизации:

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

Позволяет нормализовать определения данных:

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

В CUE его механизм логических выводов справляется с этой проблемой путем обычного снижения ограничений. Его API дополнительно позволяет пользователям выбирать между уникальными нормальными формами для оптимизированного представления.

Легко проверить обратную совместимость:

Используя CUE, вы можете легко проверить, что новая версия схемы обратно совместима со старой версией. API является обратно совместимым, если более старая версия является подмножеством старой или если старая версия является экземпляром новой.

Позволяет комбинировать ограничения из различных источников:

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

Генерация и извлечение кода:

На данный момент CUE может извлекать определения кода только из Protobuf и Go. Это позволяет аннотировать выражения CUE из существующих источников. Это помогает использовать существующие источники или ускорить переход. 

Запрос данных:

Можно использовать ограничения CUE для поиска закономерностей в данных. Вы можете выполнять дополнительные сложные запросы с помощью подкоманды ‘find’ или ‘query’. Вы также можете запросить данные программно с помощью CUE API.

Язык проверки данных CUE

Некоторые разработчики сравнили CUE с Jsonnet, который является языком шаблонов данных. CUE похож на решение e2e, поэтому это не просто альтернатива Jsonnet. Он также устраняет необходимость в JSON Schema, OpenAPI и т.д., но поскольку это проект 5-месячной давности, у него еще слишком много времени для развития и роста.

В Jsonnet, CUE развивается в основном в двух направлениях, улучшая композицию и внедряя схемы. И CUE, и Jsonnet появились внутри Google в GCL. По сути, Jsonnet — это GCL, а CUE — совершенно новая вещь. 

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

CUE полезен в любом масштабе

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

Малый масштаб:

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

Средние масштабы:

Вскоре после того, как возникает желание сократить количество шаблонов, инструмент может помочь в автоматическом переписывании конфигураций.

Крупный масштаб:

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

Заключение

Язык валидации данных CUE вызвал неоднозначную реакцию на различных порталах. С одной стороны, пользователи очень рады появлению нового языка проверки данных. С другой стороны, они не уверены, как будет работать этот новый боеприпас.

Надеюсь, вам понравилась статья и вы нашли ее полезной. Если у вас есть вопросы и вы хотите узнать что-либо, связанное с CUE Data Validation Language, пожалуйста, оставьте свой комментарий, мы здесь, чтобы помочь вам.

Оцените статью
cdelat.ru
Добавить комментарий