Преимущества парадигмы "Соглашение над конфигурацией"
Каковы преимущества парадигмы "Соглашение над конфигурацией" в веб-разработке? И есть ли случаи, когда придерживаться этого не имеет смысла?
Спасибо
6 ответов
Конвенция гласит, что в 90% случаев это будет определенным образом. Когда вы отклоняетесь от этого соглашения, вы можете вносить изменения... вместо того, чтобы заставлять каждого пользователя понимать каждый параметр конфигурации. Идея состоит в том, что если вам нужно, чтобы он отличался, вы будете искать его в тот момент времени, а не пытаться обернуть голову вокруг всех параметров конфигурации, когда это часто не имеет реального значения.
ИМХО это всегда имеет смысл. Согласование приоритетов над явной конфигурацией является идеальным. Снова, если у кого-то есть беспокойство, они заставят себя исследовать потребность.
Преимущество соглашения по сравнению с парадигмой конфигурации в веб-разработке - производительность, поскольку вам не нужно будет настраивать все правила, и программисту придется принимать меньше решений. Это очевидно при использовании.NET Framework.
Я думаю, что выгода проста: настройка не требуется. Вам не нужно определять местоположения для того или иного типа ресурса, например, чтобы приложение / инфраструктура находили их самостоятельно.
Что касается случаев, когда это не имеет смысла: любая ситуация, когда будет достаточно частой необходимость альтернативных конфигураций, или когда имеет смысл, что разработчик / администратор должен явно "подписаться" на какое-либо поведение (например,, чтобы предотвратить непреднамеренные и неожиданные побочные эффекты, которые могут иметь последствия для безопасности).
Наиболее очевидным преимуществом является то, что вам придется писать меньше кода. Давайте рассмотрим случай Java Persistence API. Когда вы определяете POJO с атрибутами и соответствующими установщиками / получателями, это простой класс. Но в тот момент, когда вы аннотируете его с помощью @javax.persistence.Entity, он становится объектом сущности (таблицей), который может сохраняться в БД. Теперь это было достигнуто с помощью простой аннотации, без другого файла конфигурации.
Еще один плюс: вся ваша логика в одном месте и на одном языке (т.е. вы избавляетесь от отдельных XML).
мило и коротко!
Это означает, что программисту не нужно тратить много времени на настройку файлов для выполнения установки.
Я думаю, эта статья в Википедии очень хорошо это объяснила:
Соглашение по конфигурации (также известное как кодирование по соглашению) - это парадигма проектирования программного обеспечения, используемая программными средами, которая пытается уменьшить количество решений, которые разработчик, использующий среду, должен принимать, не обязательно теряя гибкость. Эта концепция была введена Дэвидом Хайнемайером Ханссоном для описания философии веб-фреймворка Ruby on Rails, но связана с более ранними идеями, такими как концепция "разумных значений по умолчанию" и принцип наименьшего удивления в дизайне пользовательского интерфейса.
По сути, эта фраза означает, что разработчику нужно только указать нетрадиционные аспекты приложения. Например, если в модели есть класс "Продажи", соответствующая таблица в базе данных по умолчанию называется "продажи". Только если кто-то отклоняется от этого соглашения, такого как таблица "продажи продукта", нужно писать код для этих имен.
Когда соглашение, реализованное инструментом, соответствует желаемому поведению, оно ведет себя так, как ожидалось, без необходимости записывать файлы конфигурации. Только когда желаемое поведение отличается от реализованного соглашения, требуется явная конфигурация.