Соглашение по конфигурации - это правильный сценарий? - PullRequest
3 голосов
/ 18 мая 2011

У меня есть несколько классов Result, которые представляют плоские результаты объектно-ориентированным способом. Плоский результат поступает в виде текстового потока, и средство форматирования форматирует плоские результаты в свойствах Результата.

Я предполагаю, что мое соглашение будет постоянно <ResultName> Formatter. Это хороший случай для Соглашения по Конфигурации, и если так, то как это будет выглядеть в Призме (если Призма имеет значение для этого вопроса).

Спасибо.

Ответы [ 2 ]

2 голосов
/ 31 мая 2011

Я не уверен, где Prism вписывается в это, если пара Result-Formatter не является чем-то специфичным для Prism.

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

Однако, как создатель этого соглашения и API, вы обязаны выполнять и поддерживать соглашение. Предполагая, что вы будете размышлять о средствах форматирования, способных обрабатывать результаты, будет ли это сделано при первом запросе или запуске приложения? Как вы будете кэшировать сопоставления?

Большая часть соглашения о конфигурации требует от конечного разработчика принятия решений в пользу разумных значений по умолчанию и стандарта, которого они могут придерживаться, но это означает, что решения зависят от вас и уровня необходимо определить гранулярность переопределения, которую вы предоставляете. Например, может ли потребитель этого API иметь форматеры, определенные в более чем одной сборке (это может быть важным для Prism)? Если да, то как эти сборки указаны? Может ли потребитель отклониться от соглашения и отобразить средства форматирования с разными именами на типы результатов?

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

1 голос
/ 31 мая 2011

Нет, это больше похоже на последовательное именование для меня. Это также важно иметь «открываемый API», где вы можете легко находить вещи.

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

Соглашение о конфигурации помогает сохранить простой и быстрый сценарий 80%.

...