Разумные значения по умолчанию для конфигурации - PullRequest
1 голос
/ 24 апреля 2009

Я недавно начал играть с Ruby on Rails, который предпочитает соглашения по конфигурации и использует разумные настройки по умолчанию для объединения различных аспектов приложения.

Я подумал, что было бы полезно, если бы эта концепция разумной конфигурации по умолчанию использовалась в общей конфигурации для различных сред, тогда это могло бы сэкономить некоторую головную боль при разработке.

Например, в приложении .net я обычно хочу регистрировать исключение в журнале событий Windows, используя блок обработки исключений в корпоративной библиотеке, но если я не укажу объяснение того поведения, которое мне нужно в файле конфигурации, то EL пожалуется. Я думаю, что вместо этого, если он не может найти пользовательскую конфигурацию, он должен вернуться к разумной конфигурации по умолчанию, например, записать мое исключение в журнал событий.

Будет ли это хорошей или плохой концепцией для фреймворков для их конфигурации?

1 Ответ

1 голос
/ 07 июня 2009

Я много работаю со структурой, которая делает именно эту вещь. Моя проблема с этим способом работы заключается в том, что:

  • инфраструктура выросла до наличия чрезмерного количества ключей конфигурации, которые фактически никогда не используются / не устанавливаются в файле конфигурации.
  • поведение программного обеспечения иногда становится неявным, я хочу явно настроить систему так, чтобы она велась определенным образом, вместо того, чтобы использовать ее как запасной вариант на другом пути кода из-за «по умолчанию».
  • пропущенная опечатка в конфигурационном ключе может привести к очень долгому диагностическому сеансу, прежде чем выяснить, что происходит.

Когда я забываю установить значение конфигурации, я, скорее всего, говорю мне об этом, а не предполагаю какую-то форму поведения, за которой я вообще не следую.

Я бы предпочел файл конфигурации «шаблона», в котором я изменяю то, что хочу, и неизменные настройки служат по умолчанию.

Определение того, какое соглашение выбрано программным обеспечением при отладке, также может быть потрачено много времени.

...