Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

Соглашение по конфигурации ( кодирование по соглашению ) кратко

Лекция



Привет, Вы узнаете о том , что такое соглашение по конфигурации, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое соглашение по конфигурации, кодирование по соглашению, convention over configuration , настоятельно рекомендую прочитать все из категории Проектирование веб сайта или программного обеспечения.

соглашение по конфигурации (также известное как кодирование по соглашению , Convention over configuration ) - это парадигма проектирования программного обеспечения, используемая программными средами, которая пытается уменьшить количество решений, которые разработчик, использующий структуру, должен принимать, не обязательно теряя гибкость. Эта концепция была введена Дэвидом Хайнемайером Ханссоном для описания философии веб-фреймворка Ruby on Rails , но связана с более ранними идеями, такими как концепция «разумных значений по умолчанию » и принцип наименьшего удивления в дизайне пользовательского интерфейса .

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

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

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

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

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

Используя этот подход, разработчикам нужно только настроить специфичные для приложения и нестандартные аспекты приложения. Об этом говорит сайт https://intellect.icu . Другие аспекты, такие как подключение входных элементов через специализированные модели к таблицам базы данных, могут быть обеспечены соглашениями, такими как одинаковое именование классов и таблиц, и их нужно настраивать только в том случае, если соглашения отклоняются. Например, если в соглашении указано, что класс модели должен называться в единственном числе, а соответствующая таблица базы данных - во множественном числе, разработчику не нужно делать какую-либо явную конфигурацию для программы с классом модели, чтобы использовать Saleэту таблицу sales. Но если таблица что-то называется products_sold, он должен это настроить.

Назначение и цели

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

Например, ранние версии Java-средства отображения сохраняемости Hibernate отображали сущности и их поля в базу данных, описывая эти отношения в файлах XML. Большая часть этой информации могла быть раскрыта путем обычного сопоставления имен классов с одноименными таблицами базы данных и полей с их столбцами, соответственно. Более поздние версии отказались от файла конфигурации XML и вместо этого использовали эти самые соглашения, отклонения от которых можно указать с помощью аннотаций Java (см. Спецификацию JavaBeans, ссылку ниже).

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

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

Использование

Соглашение по конфигурации ( кодирование по соглашению )
Maven программного средства автоматически сгенерирована структура каталогов для проекта Java.

Многие современные фреймворки используют подход, основанный на соглашении, а не на конфигурации .

Однако эта концепция старше, восходит к концепции по умолчанию и может быть обнаружена совсем недавно в корнях библиотек Java . Например, спецификация JavaBeans сильно зависит от этого. Процитируем спецификацию JavaBeans 1.01

«Как правило, мы не хотим изобретать огромный класс java.beans.everything, от которого люди должны наследовать. Вместо этого мы хотели бы, чтобы среда выполнения JavaBeans обеспечивала поведение по умолчанию для« нормальных »объектов, но позволяла объектам переопределить заданную часть поведения по умолчанию, унаследовав от определенного интерфейса java.beans.something. "

Соглашение по конфигурации ( кодирование по соглашению )

Рисунок-2 Соглашение о конфигурации в действии

Соглашение по конфигурации ( кодирование по соглашению )
Рис.1 Структура папок проекта Visual Studio MVC

На рисунке 3 показано, как выглядит структура каталогов проекта Laravel:
Соглашение по конфигурации ( кодирование по соглашению )

Вау!! 😲 Ты еще не читал? Это зря!

  • Сравнение веб-фреймворков

  • PSR (PHP Standards Recommendations)

  • Java specification requests‎

  • JSCS: JavaScript Code Style, Google JavaScript Style Guide

  • Python Enhancement Proposal

  • паттерны программирования

  • принципы программирования

  • парадигмы программирования

  • антипатерны программирования

  • SQL Style Guide Database standards

Исследование, описанное в статье про соглашение по конфигурации, подчеркивает ее значимость в современном мире. Надеюсь, что теперь ты понял что такое соглашение по конфигурации, кодирование по соглашению, convention over configuration и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Проектирование веб сайта или программного обеспечения

Из статьи мы узнали кратко, но содержательно про соглашение по конфигурации
создано: 2021-09-03
обновлено: 2021-09-03
132265



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей



Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Проектирование веб сайта или программного обеспечения

Термины: Проектирование веб сайта или программного обеспечения