Общее предложение именования пространства имен

2

У меня есть многоуровневое приложение с пространствами имен:

  • App.Core - службы логики бизнес-уровня
  • App.Data - классы хранения уровня доступа к данным и объекты доступа к данным
  • App.Web - уровень пользовательского интерфейса

У меня также есть бизнес-объекты/DTO. Они находятся в пространстве имен App.Objects, но мне не нравится это соглашение об именах. Зачем? Поскольку это пространство имен также будет содержать суффиксы поднесущих объектов, таких как App.Objects.KeywordObjects. Эти подпространства не могут быть без суффикса Objects, потому что некоторые из них также будут содержать классы с тем же именем (App.Objects.KeywordObjects будет содержать классы Keyword и Keywords).

Я думал изменить App.Objects на что-то другое. Поэтому у меня нет дублирующего слова "Объекты". Но я не могу найти ничего полезного. И я не хочу использовать аббревиатуры типа DTO или BO.

Как вы обычно называете свои пространства имен и что вы предлагаете мне использовать в этом случае.

Теги:
namespaces
naming-conventions

6 ответов

4
Лучший ответ

Глубина пространства имен должна соотноситься с частотой использования. Почему бы не поместить их в App? Если ваше приложение вращается вокруг бизнес-объектов, имеет смысл держать их в корне или рядом с ним.

Для практического сравнения для многих бизнес-приложений бизнес-объекты аналогичны хранению общих типов в системе. Они всепроникающие.

  • 0
    Благодарю. Это действительно имеет смысл, потому что все другие слои полагаются на этот. Так что это супер-позиционируется над ними.
4

Я поклонник руководящих принципов в "Руководстве по разработке рамок" Брэда Абрамса и Аль, который даст вам:

YourCompany.BusinessArea для ваших бизнес-объектов и YourCompany.BusinessArea.Web для вашего веб-уровня. Я, похоже, помню, что также было указано, что объект не должен полагаться на вложенное пространство имен (но вы можете положиться на родительское пространство имен)

0

Вот несколько советов:

  • App.Contracts
  • App.Entities

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

"Когда я использую слово, - сказал Шалтай-Болтай довольно презрительным тоном, - это означает, что я хочу, чтобы это означало - ни больше, ни меньше". - Льюис Кароль

0

Я бы сделал следующее изменение

App.Core => App.Services

App.Objects => App.Core

или

App.Objects => App.Model
0

Я обычно использую общие аббревиатуры свободно (поэтому я не против использовать App.BO, лично), но если у вас всегда есть суффикс Objects в подзоне, я думаю, что App.Business читается красиво, например App.Business.KeywordObjects с что "бизнес-фраза. (Если у вас не всегда есть суффикс Objects для пространств имен, то это предложение не будет работать так же, как это было бы странно).

-1

App.Business?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню