Пространства имен - насколько глубоко это слишком глубоко - PullRequest
5 голосов
/ 08 октября 2010

В настоящее время мы реорганизуем некоторые из наших сервисных проектов, чтобы их наименование было более логичным.У нас есть следующая структура:

Djp.Services. Тип . ServiceName

Кажется логичным, что логическая группировка имеет смысл, однако я хочу знать, допустимо ли иметь дополнительные уровни под этим, основываясь на папках в проекте,Например, один проект называется

Djp.Services.Management.Data

Под этим проектом у нас есть папка "POCO" и папка "Repositories", что означаетВ принципе, объекты в этих папках будут иметь пространство имен глубиной 5 уровней.

Эту глубину пространства имен следует избегать или она совершенно разумна?

Ответы [ 4 ]

8 голосов
/ 08 октября 2010

Любое пространство имен, которое следует логике структуры вашего приложения, прекрасно - независимо от длины.

4 голосов
/ 08 ноября 2011

У нас есть пространство имен глубиной семь слоев, с восьмым символом в конце для класса.Раскрывающийся список в верхнем левом углу Visual Studio 2010, позволяющий выбрать класс в этом файле, не соответствует нашему полностью определенному имени класса, и при наведении на него курсора подсказка отсутствует, поэтому единственный способ найти классname - отсоединить исходный вид и растянуть его на два монитора.

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

3 голосов
/ 08 октября 2010

Может быть удобно, чтобы ваша структура папок соответствовала структуре вашего пространства имен, но не имеет смысла приводить структуру пространства имен в соответствие со структурой папки.

Типы и члены пространства имен являютсявещи, которые вы делаете.Это результат вашего ремесла и то, о чем вы должны беспокоиться.Файлы в папке - это способ помочь вам в этом.Возможно, вы уже структурировали папки так, чтобы они соответствовали разумному пространству имен (по сути, вы «написали» структуру пространства имен, когда вы это сделали), и в этом случае все хорошо, но вы, возможно, тоже этого не сделали.Пространства имен будут иметь значение как для создателей сборок, так и для пользователей, структура папок - только для создателей.

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

2 голосов
/ 08 октября 2010

Это что-то пахнет слишком долго, отступите назад и проанализируйте это.Если он прошел проверку, то я полностью согласен с @Bozho.

Разработка программного обеспечения чрезвычайно объективна и полна исключений из жестких правил.(не удержался)

...