
Pavel
15.10.2017
15:26:21
Консольный редактор это вы сами написали?

Oleg
15.10.2017
15:27:02

Ievgenii
15.10.2017
15:27:08
Ты описываешь правила для конфигов (сам разработчик), а уже наш агент, имея набор правил даёт админу установить возможные значения

Google

Pavel
15.10.2017
15:27:53
> Ты описываешь правила для конфигов
Ну вот как-то конфиг подразумевает в себе ручное редактирование. Иначе это уже не конфиг, а структура данных для программы.

Ievgenii
15.10.2017
15:27:54
Ручное редактирование - потенциальное место для ошибок!
Мы от этого ушли

Pavel
15.10.2017
15:28:36
Конфиг это что-то, что ты лезешь подправить ручками перед запуском программы, чтобы показать ей как правильно запускаться.

Ievgenii
15.10.2017
15:28:58
Так и есть, но мы не даём редачить его руками

Pavel
15.10.2017
15:29:05

Ievgenii
15.10.2017
15:29:44
Ты запускаешь или консольную утилиту и говоришь что именно ты хочешь редачить, а он тебе говорит, какие ты туда можешь подставить значения
Или UI, а в нем тоже самое, только в браузере

Pavel
15.10.2017
15:30:05
Чем-то похоже на xml
Там же тоже есть XSD схема, которая определяет формат конфига, а по ней уже можно с автоподстановкой писать реальный xml конфиг

Ievgenii
15.10.2017
15:30:43

Andrey
15.10.2017
15:30:56
конфиг андронного коллайдера?

Google

Pavel
15.10.2017
15:31:19
https://habrahabr.ru/post/90696/

Ievgenii
15.10.2017
15:33:10
А в нашем случае, прежде чем поменять и сохранить значение - оно валидируется
И это решение себя оправдало
Ошибок конфига просто нет
Подменить его тоже не выйдет
Работает на ура
Хранит в json, чтобы можно было зайти и посмотреть, если сильно хочется. Но вот редачить не выйдет. Отредачишь - он будет не валидный
Можно реализовать и другой драйвер, тогда будет хранить в чем угодно
Мы храним же всегда в json в файле или в консуле...

Pavel
15.10.2017
15:38:50
При такой энтерпрайзной системе вам вообще нет разницы в чем хранить) хоть в binary json, хоть в своем кастомном формате.
Тогда вообще не совсем корректно говорить что вы храните в json, т.к. это только маленькая деталь имплементации вашего механизма конфигов.

Oleg
15.10.2017
15:41:49
Работает на ура
Правильно ли я понимаю, что это просто конфиг? Это не настройка программы, которая выполняется пользователем?
Тоесть это пользуют именно разработчики
И есть сомнение в их внимательности или квалификации

Ievgenii
15.10.2017
15:43:12
Доступ к БД
Логер

Google

Ievgenii
15.10.2017
15:44:20
Активность модулей

Pavel
15.10.2017
15:44:27
У простых смертных утилит все эти проблемы с конфигами стоят. И с читаемостью и с корректностью, и с ручным редактированием, и с комментированием.
И с понятностью и с переносимостью.

Oleg
15.10.2017
15:44:45

Andrey
15.10.2017
15:45:01
подобные конфиги - база, логгер и тд, есть у каждого первого, и жалоб на ошибки в конфигах как то не переполняют интернет)

Oleg
15.10.2017
15:45:01
Так что дело именно в формате данных

Ievgenii
15.10.2017
15:47:41

Pavel
15.10.2017
15:49:03
А где тогда хранятся комментарии?
В редакторе в базе?

Oleg
15.10.2017
15:49:19
=)

Pavel
15.10.2017
15:50:02
А визуальный редактор для редактирования конфигов редактора для редактипрования конфигов вы писали?

Ievgenii
15.10.2017
15:50:29
Все перечеслять - достаточно тяжело

Oleg
15.10.2017
16:01:16
И, кстати, имхо проверку конфига должна выполнять программа, иначе получается 2 места, которые содержат информацию о формате и валидации в той или иной мере (ограничения и правила конфига и сам код программы)

Google

Pavel
15.10.2017
16:02:32
Если проект большой и сложный, на составление конфига может быть хоть отдельный сервис и команда разработки быть выделенным =)

Ievgenii
15.10.2017
16:07:19
Она проверяет валидность конфига, по его хэшу
Т.к. система отдачи конфига в системе вообще не знает, что именно а нем хранится
И не должна, т.к. система постоянно развивается и конфиг расширяется

Pavel
15.10.2017
16:09:05
Вот всякие nginx, postgres, php, postfix, redis, и куча других утилит используют свои велосипеды, кто как справляется.

Ievgenii
15.10.2017
16:09:09
А сам модуль, отвечающий за конфиг, у нас уже давно (года 2) не меняется.

Pavel
15.10.2017
16:10:05
Близко все )
Только пхп в ini файлах старается хранить

Admin
ERROR: S client not available

Pavel
15.10.2017
16:10:31
Да и то fpm имеет свой формат какой-то, поверх стандартных конфигов

Dmitry
15.10.2017
16:11:40
Так, а как правильнее API спроектировать. Мне надо чтобы по запросу на урл были следующие методы:
- добавить, удалить, проверить, получить список
речь про получение списка email'ов
{"add": "vasia@mail.ru"} ? И так для всех остальных?
или это криво?

Pavel
15.10.2017
16:13:25
Это ты описал REST по сути

Dmitry
15.10.2017
16:13:49
Только методов болше надо...

Pavel
15.10.2017
16:14:06
Так добавь сколько тебе нужно
GET /entity/42/check

Ievgenii
15.10.2017
16:14:25
Мы от места ушли... Надоел

Dmitry
15.10.2017
16:15:15
Так, а если просто как я написал сделать в виде json и POST запроса?

Google

Ievgenii
15.10.2017
16:15:39
Можно для каждой сущности ввести отдельный URI, типа /device/, /user/
А можно все на входном пакете разрулить

Pavel
15.10.2017
16:16:11
А так, можно с телом json, не принципиально

Ievgenii
15.10.2017
16:16:25

Pavel
15.10.2017
16:16:57
А проверку сущности можно делать через какой-нибудь HEAD

Ievgenii
15.10.2017
16:17:11

Pavel
15.10.2017
16:17:20
Субъективное мнение
Почему ты все время все оспариваешь и выискиваешь какие-то крайние случаи? =)

Ievgenii
15.10.2017
16:17:45
Зачем смешивать протокол http и свой прикладной? Вы ещё предложите ошибки http кодами отдавайть

Pavel
15.10.2017
16:19:00
Он уходит потому что есть потребность в этом. Которой у Дмитрия нету.
И Дмитрий не размером с фейсбук, и потребности и масштабы у него другие.
Субъективное мнение
По поводу этого обосную - POST запросы не кешируются на промежуточных серверах, а GET могут кешироваться, что экономит трафик. GET идемпотентный, POST нет.

Ievgenii
15.10.2017
16:23:26

Pavel
15.10.2017
16:23:26
https://stackoverflow.com/questions/39386001/can-i-use-post-method-to-get-data-and-get-method-to-post-data в RFC все описано, где тут субъективное мнение?

Ievgenii
15.10.2017
16:23:50
Т.к. кешировать ответы API сторонними серверами - имхо мувитон
И сразу вижу те места, через которые лично проходил
Вот и все

Pavel
15.10.2017
16:25:51

Oleg
15.10.2017
16:26:38

Ievgenii
15.10.2017
16:26:39
То же рест накрывается тазом, как только приложение выростает и переходишь на постоянные соединения, ну или добавляется второй агент, который работает через xmpp, или вебсокеты