Какой должен быть конфиг?

May 17, 2011 19:25

lionet считает тут и тут, что конфиг должен задаваться на декларативном, не тьюринг-полном зяыке ( Read more... )

Leave a comment

Comments 16

(The comment has been removed)

_slw August 5 2011, 03:25:00 UTC
ты это говоришь так, как будто это что-то плохое.
и вообще-то немутабельность была одной из целей

Reply

(The comment has been removed)

_slw August 5 2011, 08:08:17 UTC
по-твоему это плохо?
или что?

Reply


pustota1 August 7 2012, 14:31:50 UTC
В примере нету ничего тьюрингово-полного. Тьюрингово полный язык это язык который поддерживает конструкцию while или C-подобный for (;;)

Reply

_slw August 7 2012, 14:43:28 UTC
тьюринг-полнота так же может браться от рекурсии, как например в функциональных языках.

Reply

pustota1 August 7 2012, 14:51:35 UTC
Это не так же ( в смысле "так же" как некая особленная конструкция, не сводимая к другой) , это равнозначно, в том смысле, что рекурсия и while равномощные/взиамозаменяемые конструкции.

Как нам в научно-популярной форме подсказывают ссылочки 11 и 12 вот тут:
http://en.wikipedia.org/wiki/Recursion_%28computer_science%29

Reply


ospf_ripe December 5 2014, 10:43:29 UTC
Мне нравится подход Сысоева - конфиг должен быть максимально декларативным, потому что это упрощает поддержку сложных конфигураций. А там где декларативности не хватает есть встроенный perl, но это уже не конфиг а расширение функциональности софта.

Для радиуса я бы тоже сделал декларативный конфиг плюс подключение функций на lua для сложных случаев.

Reply

_slw December 5 2014, 11:10:18 UTC
ну вот хочется вообще всё только декларативное.
без всяких исключений и lua.

Reply


amarao_san September 9 2017, 09:05:27 UTC
Тьюринг-полные конфиги, если используются как тьюринг-полные конфиги (а не магические руны артефактного вида), плохо совместимы с системами управления конфигурациями.

В целом, деплой чего-то, способного к decision making должен проходить не через систему управления конфигурациями, а как софт. С юнит и интеграционными тестами, сборкой пакетов на CI, версионированием и т.д.

Если конфиг тьюринг-полный, но такого оверкилла не требует, то он не должен быть тьюринг-полным.

Потому что когда на продакшен выкатывается что-то тьюринг-полное без due process, то это шапкозакидательство в стиле "в этот раз точно мы напишем софт без тестирования и багов".

Reply


nivanych May 25 2020, 07:33:00 UTC
Замечание только одно --
>> конфиг должен задаваться на декларативном, не тьюринг-полном зяыке.
> Как мне кажется, это слишком сильное ограничение для реальных задач.

Видимо, в посте имелось что-то типа, что функциональный тьюринг-худой язык декларативным не считается?

P.S. Обратил внимание на дату поста ;-)

Reply

_slw May 25 2020, 11:08:30 UTC
нет, идея в том, что проблема останова для конфига в принципе не должна стоять.

иначе это ж вообще жопа выходит -- программу запускаешь, а она виснет и почему -- не понятно

Reply

nivanych May 25 2020, 11:15:22 UTC
Это значит, что чем-то конфиг должен генерироваться.
И человеки сгенерированное читать не должны.

Reply

_slw May 25 2020, 11:26:44 UTC
бинарный конфиг + редактор конфигов?
по опыту это не удобно и от этого постарались уйти.

Reply


Leave a comment

Up