2009-12-10 2 views
0

Перед тем, как начать, подобные вопросы, но не точно:
Working with Common/Utility Libraries,
What to include in a Utility Library.Общие и утилиты Библиотека Консолидация

Я недавно начал работать с внутренними библиотеками C# нашей компании, которые включают Common.dll и Utilities.dll; довольно стандартный материал.

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

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

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

Заранее спасибо!

ответ

4

Вы говорите так, как будто «Common» и «Utility» имеют хорошо понятые значения. Я не признаю, что должно быть такое разделение, или если какая-то организация многоразового кода должна быть двух таких категорий.

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

Затем, чтобы сосредоточиться на производственных приложениях, я бы ожидал, что там будет общий код бизнес-домена (например, код для обмена иностранной валютой или ставок на прокачку автомобилей или любого другого вашего бизнеса). И другие утилиты общего назначения таких как ведение журнала, форматирование строк или некоторая умная математика). Я думаю, вы найдете фрагменты кода, которые каким-то образом «принадлежат друг другу», а некоторые вы хотите сохранить отдельно. Некоторые возможные критерии:

  • Темп изменения: когда изменения, которые, вероятно, тоже меняется, так что нам нужно, чтобы освободить их вместе
  • Overhead - это кусок большой, только приложения, что необходимо должны платить цену, включая или развертывания.
  • Scope - это код пользовательского интерфейса, то есть код базы данных, хранить их отдельно
  • Dependency - если вы используете это, то вы также можете использовать это, так держать theOther отдельный, он не нуждается в том, что
  • Избегайте циклического зависимостей, разлагать и реорганизовывать, чтобы их избежать
+0

Я понимаю, что неудобно предположить, что все видели это различие между ними, но это довольно распространено, когда я просматриваю этот и другие веб-сайты. –

+1

Я предполагаю, что на неформальном уровне вы можете быть правы, хотя ясно, что ваш вопрос указывает на отсутствие четкого определения разделительной линии. Я предпочитаю рассматривать проблему как одну из гранулярности всего многоразового кода. Я не думаю, что мы просто перерезали этот код на два, я думаю, что это обычно больше. Вопрос не в том, является ли это Общим или это Утилита, это «У нас есть правильные штуки», – djna

Смежные вопросы