|
|
|
Посоветуйте DSLS для конфигов
|
|||
|---|---|---|---|
|
#18+
Привет. Есть коробочный продукт, который работает с разными серверами от разных вендоров, но решающих примерно одну задачу. Реализация в коде довольно хаотичная и есть задача вынести всё что относится к конкретному вендору в файлы конфигурации. Файлы конфигурации будут писаться, скорее всего, вручную. Изначально предлагался XML. Идеальное решение во всём кроме того что он абсолютно не предназначен для чтения и писания вручную. Подумал на счет JSON, но уперся в то что он не поддерживает комментариев. Да, и вездесущие кавычки раздражают. Groovy, вроде бы, не плохой вариант. Но надо на нем же писать обработку DSLS, да ещё и рантайм +5-10Мб к продукту. С другой стороны скрипты могут пригодиться. Для некоторых вендоров реализован Java код. Можно было бы унести его в конфиг. JavaScript? Хорош тем что уже встроен в JRE. Но опыта нет чтобы предвидеть подводные камни. Может YAML? Посоветуйте что выбрать. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2016, 14:44 |
|
||
|
Посоветуйте DSLS для конфигов
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, А простые файлы properties не подойдут? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2016, 14:48 |
|
||
|
Посоветуйте DSLS для конфигов
|
|||
|---|---|---|---|
|
#18+
mad_nazgulА простые файлы properties не подойдут? Подойдут при должном усердии, но ничем не лучше XML будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2016, 14:49 |
|
||
|
Посоветуйте DSLS для конфигов
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Предлагаю смесь: в xml внедряем json. Я так делаю в springe, пример: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2016, 15:28 |
|
||
|
Посоветуйте DSLS для конфигов
|
|||
|---|---|---|---|
|
#18+
am_sasa, Ну, а польза тут от XML какая? Комментарии писать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2016, 15:38 |
|
||
|
Посоветуйте DSLS для конфигов
|
|||
|---|---|---|---|
|
#18+
Я за XML. За YAML только как исследовательскую работу в рамках задачи). BlazkowiczИзначально предлагался XML. Идеальное решение во всём кроме того что он абсолютно не предназначен для чтения и писания вручную. Возможно его делали не на атрибутах, а на нодах. Т.е. если больше использовать атрибуты, то вполне читабельно. Код: xml 1. 2. 3. 4. 5. https://ru.wikipedia.org/wiki/YAML ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2016, 15:54 |
|
||
|
Посоветуйте DSLS для конфигов
|
|||
|---|---|---|---|
|
#18+
Совершенно не понимаю, чем JSON лучше XML'а. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2016, 16:08 |
|
||
|
Посоветуйте DSLS для конфигов
|
|||
|---|---|---|---|
|
#18+
Petro123, Leonid Kudryavtsev, спасибо. Дам XML второй шанс с более интенсивным использованием атрибутов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2016, 16:26 |
|
||
|
Посоветуйте DSLS для конфигов
|
|||
|---|---|---|---|
|
#18+
BlazkowiczИзначально предлагался XML. Идеальное решение во всём кроме того что он абсолютно не предназначен для чтения и писания вручную. Это да но если писать не в блокноте а в мальмальском редакторе то вполне ничего. в том же notepad++ есть к нему плагины. все что поддерживает автоформат как мимумум проверит базовый синтаксис. Я обычно сразу прикручиваю схему к XML и тогда Idea сразу подсвечивает ошибки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2016, 17:25 |
|
||
|
Посоветуйте DSLS для конфигов
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, посмотри на HOCON . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2016, 17:49 |
|
||
|
Посоветуйте DSLS для конфигов
|
|||
|---|---|---|---|
|
#18+
Подумайте все-таки о том, чтобы конфигурировать кодом, на основе билдеров. Принцип разбиения на файлы идентичен обычному конфигу - вместо файлов конфигурации пишутся классы, выдающие объекты, которые выдавал бы парсер конфига. Из плюсов - самодокументируемость, гибкость, поддержка автокомплита в IDE, валидация на этапе компиляции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2016, 18:26 |
|
||
|
Посоветуйте DSLS для конфигов
|
|||
|---|---|---|---|
|
#18+
scfПодумайте все-таки о том, чтобы конфигурировать кодом, на основе билдеров. Принцип разбиения на файлы идентичен обычному конфигу - вместо файлов конфигурации пишутся классы, выдающие объекты, которые выдавал бы парсер конфига. Из плюсов - самодокументируемость, гибкость, поддержка автокомплита в IDE, валидация на этапе компиляции. только поменять чтобы, надо переписать и перекомпилить. в этом вся и фишка как избежать этого. например с помощью груви но тут нужен будет его рантайм. xml самое то, можно в принципе описать структуру на Java и затем ее через xstream сериализовать в xml и по нему xsd шаблон прикрутить. как вариант можно разбить xml на две части первую дефолтовую с полным описанием конфигов и вторую которая переопределяет дефолтовую. тогда можно просто копирование и правкой дефолтовой ограничиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2016, 21:07 |
|
||
|
Посоветуйте DSLS для конфигов
|
|||
|---|---|---|---|
|
#18+
lleming, изменение "тяжелого" конфига без редеплоя приложения встречается очень редко. В самых продвинутых компаниях либо полностью автоматизируют деплоймент, либо релизят приложение и его конфиг как два независимых артефакта с независимым деплойментом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2016, 22:11 |
|
||
|
Посоветуйте DSLS для конфигов
|
|||
|---|---|---|---|
|
#18+
BlazkowiczGroovy, вроде бы, не плохой вариант. Но надо на нем же писать обработку DSLS, да ещё и рантайм +5-10Мб к продукту. С другой стороны скрипты могут пригодиться. Для некоторых вендоров реализован Java код. Можно было бы унести его в конфиг. Мы практически выбрали это, но у нас не коробочный продукт, а SaaS - нам проще. Тем более gradle постепенно завоёвывает мир. Но на мой взгляд лучше писать всё на scala/kotlin и использовать тамошний DSL. Правда у нас попытка использовать kotlin сломалась о плохую интеграцию с jacoco (он не хочет видеть unit-test'ы на kotlin), а времени разбираться нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2016, 22:30 |
|
||
|
Посоветуйте DSLS для конфигов
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Как-то выносил часть реализации во внешние скрипты, чтобы не писать сложный конфиг. В коде тупо интерфейсы и дефолтная реализация + при старте подхватывает файлы с BeanShell с альтернативной реализацией. Однако в данном случае нужет язык с хорошей интероперабельностью с Java, достаточной для реализации интерфейсов. Позже видел такое же решение в Bifit Ibank2. Однако у такого подхода есть обратная медаль, когда часть бизнес-логики бесконтрольно перетекает в скрипты и поддерживать/отлаживать все это вместе становится сложновато. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2016, 01:42 |
|
||
|
Посоветуйте DSLS для конфигов
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Мы используем json. Только он редактируется программой а не вручную. Сущностей настолько много, что комментарии не помогли бы разобраться в структуре данных. С уважением, Валентин ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2016, 09:36 |
|
||
|
Посоветуйте DSLS для конфигов
|
|||
|---|---|---|---|
|
#18+
Valentin Kolesnikov, Если над файлом программа, тогда пофиг формат файла. Хоть бинарник. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2016, 09:50 |
|
||
|
Посоветуйте DSLS для конфигов
|
|||
|---|---|---|---|
|
#18+
Petro123Valentin Kolesnikov, Если над файлом программа, тогда пофиг формат файла. Хоть бинарник. + И чем непонятнее, тем лучше - никто не полезет руками ломать править. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2016, 10:58 |
|
||
|
Посоветуйте DSLS для конфигов
|
|||
|---|---|---|---|
|
#18+
Garrick, согласен. Только админы думают наоборот. Работа у них такая - конфиги текстовые поюдавай). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2016, 12:34 |
|
||
|
Посоветуйте DSLS для конфигов
|
|||
|---|---|---|---|
|
#18+
GarrickPetro123Valentin Kolesnikov, Если над файлом программа, тогда пофиг формат файла. Хоть бинарник. + И чем непонятнее, тем лучше - никто не полезет руками ломать править. BlazkowiczФайлы конфигурации будут писаться, скорее всего, вручную. цель сделать так чтобы самому себе было труднее сконфигурить систему? если сделать формат непонятным то провидение обеспечит верную конфигурацию случайным юзером через UI ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2016, 12:44 |
|
||
|
Посоветуйте DSLS для конфигов
|
|||
|---|---|---|---|
|
#18+
ini files ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2016, 13:31 |
|
||
|
Посоветуйте DSLS для конфигов
|
|||
|---|---|---|---|
|
#18+
breathini files нет вложенных свойств как в XML ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2016, 13:42 |
|
||
|
Посоветуйте DSLS для конфигов
|
|||
|---|---|---|---|
|
#18+
есть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2016, 13:49 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39288412&tid=2123679]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
81ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
77ms |
get tp. blocked users: |
2ms |
| others: | 242ms |
| total: | 446ms |

| 0 / 0 |
