Статьи

JSON Ценности и Радость Скалы

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

С другой стороны, JSON — это легкий текстовый формат обмена данными, не зависящий от языка. Он стал настолько популярным благодаря своей простоте . Существует множество библиотек для работы с JSON в экосистеме JVM; однако  ни один из них не использует постоянные структуры данных .

В большинстве случаев эти библиотеки анализируют строку или массив байтов в объекте. Дело в том, зачем это делать? JSON — отличная структура. Это просто, легко агрегировать, легко создавать, легко рассуждать, так  зачем создавать еще одну абстракцию над JSON?

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

json-values  — это функциональная библиотека JSON в Scala, которая использует постоянные структуры данных. В этой первой статье мы сосредоточимся на двух более важных аспектах разработки программного обеспечения, где значения json могут иметь значение: проверка данных и тестирование.

Чтобы проверить значения json, я провел тестирование на основе свойств с помощью  ScalaCheck . Это отличная библиотека, где создавать генераторы и создавать их очень просто. Чтобы сгенерировать значения JSON, я создал  json-values-generators , серию генераторов для работы с ScalaCheck. Я утверждаю, что это самый декларативный и красивый генератор Json в мире!


Вам также может понравиться:
Использование JSON с Play и Scala .

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


Scala