TOML или JSON для описания Web-форм?

Что важнее: скорость или человекочитаемость

Настройки отображения темы Показывать по сообщений с сортировкой .
Выводить , отправленные .
Одна страница
Распечатать
4X_Pro
Создатель сайта
Всего сообщений: 4467
Зарегистрирован: 9 дек. 2015 г., 19:20
Рейтинг пользователя: 2412

1
#1

Пишу свой framework MLFW, где одной из ключевых идей является разработка через конфигурацию. Поэтому предполагается для описания форм ввода данных использовать какой-нибудь язык сериализации данных для того, чтобы описывать быстро и просто. Когда-то что-то подобное пытался сделать на YAML, но у того обнаружилось слишком много недостатков: и читаемость не очень, и стандарт содержит слишком много неожиданных решений, и в плане эффективности по времени он показывает самые худшие результаты.
Поэтому сейчас выбираю между TOML и JSON. Плюсы JSON — встроенная поддержка в PHP (не нужно ставить сторонние классы) и более высокая скорость работы (к сожалению, данных по PHP не нашёл, но тесты на C++ и Go показывают существенное преимущество), а также единство стиля с другими частями frameworkа (в частности, правила роутинга у меня описываются на JSON). А у TOML, по сути, есть всего один плюс, но весьма существенный: гораздо более простой и удобный синтаксис, на котором описание формы можно сделать существенно быстрее. И вот никак не могу определиться.


Ребята, давайте жить спокойно!


4X_Pro
Создатель сайта
Всего сообщений: 4467
Зарегистрирован: 9 дек. 2015 г., 19:20
Рейтинг пользователя: 2412

0
#2

Наткнулся на ещё один подходящий для этих целей файловый формат: NEON (Nette object notation, так как создан авторами шаблонизатора Nette). Внешне похож на YAML, но при этом совместим с JSON (точнее, JSON можно рассматривать как его подмножество). Из недостатков — нет встроенной поддержки в PHP, нужно добавлять в зависимости пакет nette/neon. И, что самое плохое, он требует PHP 8 и выше, в то время, как я хочу оставить обратную совместимость хотя бы с 7.1. Работать с форматом предельно просто:

Neon::encode($value); // Returns $value converted to NEON Neon::encode($value, true); // Returns $value converted to multiline NEON


Ребята, давайте жить спокойно!


Одна страница
Распечатать

У вас нет прав для отправки сообщений в эту тему.