Подтвердить что ты не робот

Что такое "кодирование по соглашению"?

Я смотрел на Groovy на Grails и заметил строку внизу, которая гласит:

Grails стремится привести парадигму "кодирование по соглашению" к Groovy.

Что такое кодирование по соглашению?

4b9b3361

Ответ 1

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

Фраза по существу означает, что разработчику необходимо указывать нетрадиционные аспекты приложения. Например, если в модели продается класс Sale, соответствующая таблица в базе данных называется продажами по умолчанию. Только если кто-то отклоняется от этого соглашения, например, вызывая таблицу "products_sold", нужно написать код, касающийся этих имен.

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

Из "Конвенция о конфигурации" статьи в Википедии.

Ответ 2

В контексте Grails "кодирование по соглашению" означает, что много (утомительный и повторяющийся) явный код и/или конфигурация заменяются простыми соглашениями об именах и каталогах. Например:

  • Любой класс, чье имя заканчивается контроллером в каталоге grails-app/controller, автоматически является контроллером Spring, а ограничения, определенные в нем, будут привязаны к URL-адресам - вам не нужно настраивать это в XML файле, так как вы при использовании чистого Spring.
  • То же самое касается taglibs (grails-app/taglib directory) - не более утомительных файлов TLD!
  • Классы доменов в grails-app/domain, вероятно, имеют наибольшую "условную магию", автоматически сопоставляются с автоматически сгенерированной схемой БД - с таблицей DB и именами столбцов, по аналогии с именами свойств домена.

Ответ 3

Кодирование по соглашению против кодирования по конфигурации: Идея, что у вас есть определенные соглашения о размещении или присваивании имен для вещей, поэтому вам не нужно явно указывать программу, где есть материал или что она называется.
Например, в ASP.Net MVC существует соглашение о том, где хранятся представления и что они вызывают. Это означает, что, когда ваш код дает команду серверу вернуть представление, среда выполнения будет искать представление с определенной структурой именования в определенных папках. См. Стр. 20 в этот pdf для большей ясности.

Другим примером могут быть соглашения об именах для методов. Например, на языке, управляемом событиями, у вас может быть выбор, чтобы явно объявить, какой метод обрабатывает какие события или вы можете полагаться на соглашение об именах - например... OnOpen или... OnClick, а затем полагаться на время выполнения, чтобы выяснить правильный метод вызова для данного события.

Ответ 4

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

Ответ 5

Здесь много условностей:

  • Как назвать HTML-элементы, чтобы они были легко доступны в качестве параметров из HTTP-запроса;
  • Как связать атрибуты объектов с именами таблиц и столбцов в базе данных;
  • Как организовать проект в каталогах/пакетах;

Это то, что вы делаете, когда обнаруживаете, что решаете общую проблему в определенном стиле. Вы замечаете сходство и кодифицируете их в какую-то схему автоматизации.

Ответ 6

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

Было бы неплохо найти преимущества и недостатки кодирования по соглашению.