Если вы собираетесь начать новый проект с некоторыми сторонними библиотеками (логирование, orm, di, что угодно), вы бы предпочли настроить все эти библиотеки с помощью программирования с плавными интерфейсами или с файлами XML?
Вы бы использовали библиотеку, которая поддерживает только один из этих вариантов (Fluent или XML)? Или вы предпочитаете библиотеки, которые дают вам возможность выбирать между различными стратегиями конфигурации.
Для тех, кто любит код, возьмите это как гипотетический пример (написанный на C#).
Это свободная конфигурация:
LogConfiguration.ConfigureStorage()
.ForDatabase("CommonDB")
.AsMsSqlDatabase()
.WithConnectionString("server=(local); database=Northwind; Integrated Security=true;")
.AsDefault();
Это конфигурация XML:
<logging>
<database name="CommonDB" provider="MSSQL" connString="server=(local); database=Northwind; Integrated Security=true;" default="true" />
</logging>
Наконец, каковы плюсы и минусы конфигурации Fluent и XML?
До сих пор мы пришли к этому:
Свободная конфигурация в коде
Плюсы
- Строго типизированный, оцениваемый компилятором
- Условная конфигурация
Минусы
- Невозможно перенастроить после сборки
Конфигурация XML
Плюсы
- Возможность легкого изменения после развертывания
Минусы
- XML многословен
- Более уязвим к опечаткам