Сучасна диджитал-освіта для дітей — безоплатне заняття в GoITeens ×
Mazda CX 5
×

Мова типу JSON — компактна реалізація на Perl’і

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

Освоюючи нові технології нещодавно натрапив на JSON — це мова зберігання структур даних (типу XML) в JS-синтаксисі. Цирк же в тому, що декілька років тому мені потрібна була така фіча — і написав відповідний код сам. Синтаксис, звісно, инший — але сенс в точності той же.

Якби я тоді знав про JSON — можливо, і не став би «відкривати америку» — але що зроблено, те вже зроблено. Принаймні, цей код має, скоріш за все, ту перевагу перед перловим JSON-пакетом, що в тому — кілька тисяч рядків, а в пропонованому коді — 150.

Код цей у мене працює давно і надійно — зокрема, практично всі неіндексовані поля в SQL-таблицях я не описую в структурі таблиць — вони на льоту упаковуються-розпаковуються в структуру даних за допомогою обробника, який використовує оцей синтаксис запису структур. Це зручно. В тому ж синтаксисі задаються консольні параметри для скриптів, конфіг-файли і, зрештою, майже всі инші структури даних, які доводиться вносити вручну.

Якщо це кому цікаво — ось коди:

ruthenia.info/txt/pavlo/a_t/arbor.pm — сам модуль
ruthenia.info/txt/pavlo/a_t/i.pl — тестовий скрипт

І сторінка з мануалом:
ruthenia.info/...​_=not&c_=1305871958_pavlo

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Посилання в статті вже не дійсні

Це рекорд археології на доу?)) з 2011 року)

Коментар порушує правила спільноти і видалений модераторами.

На JEEConf узнал, что это называется Domain Specific Language. Довольно интересная тема )

Domain Specific Language — хіба ні... Як пише json.org — це, всього навсього, “data-interchange format”.

Не в последнюю очередь преимуществом JSON является тот факт, что библиотеки для его кодирования/декодирования в нативные структуры данных есть в любом языке с количеством пользователей больше 10. Получается вы написали сериализатор, который работает только для пёрла. Но в чем тогда преимущество перед Storable?

Упс... Цікаво бути неграмотним — весь час вдається дізнатись щось нове :-) Про Storable я також не знав, що характерно.

Зрештою, маю простий і компактний код, який добре виконує необхідну функцію — показую його публіці. Без аґітації з мого боку.

Повертаючись до обговорення кількаденної давности.

Storable, наскільки розумію, зберігає дані в певному невізуальному форматі — вони доступні тільки для машини, не для ручного читання/вводу. JSON же (і пропонована альтернатива) — це можливість писати дані вручну і цю можливість я повноцінно використовую: так пишу консольні параметри виклику для скриптів, так же пишу конфіґ файли, так же пишу дані, які треба пачкою внести в таблицю... Тобто Storable — це інструмент зовсім иншого призначення, не до порівняння в цьому контексті.

Що ж до портації в иншу систему — якщо буде треба, то півтораста рядків коду легко портувати хоч куди. Відтак, запропонований код — це компактна (150 рядків проти кількох тисяч в пакеті Perl::JSON) альтернатива JSON.

Так, так. Це було би ориґінальне заняття — практично, машина часу — дискутувати в Вами власні помилки, зроблені 13 років тому. Але — не буду.

Підписатись на коментарі