Должен ли я беспокоиться о правлении в пространстве имен номер / длина / область? - PullRequest
1 голос
/ 02 апреля 2010

Я недавно реорганизовал текущее решение с 24 проектов до 4.

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

В результате, конечно, я получаю пространства имен, такие как AppName.DataAccess.NHibernate.Fluent.Mappings.

Есть ли какая-либо убедительная причина, по которой я должен заботиться о выравнивании иерархии пространства имен, когда мой проект имеет несколько глубоко вложенную структуру папок?

(Меня не волнует вопрос о разрешении или управлении директивами using ; я позволю ReSharper выполнить всю тяжелую работу здесь.)

Ответы [ 2 ]

4 голосов
/ 02 апреля 2010

Я бы сгладил только там, где для этого есть явное преимущество в обслуживании.

Пространства имен больше предназначены для организационных целей, а также помогают уменьшить конфликты имен. Я склонен поддерживать свои пространства имен в соответствии с .NET Framework и другими основными пространствами имен библиотек. Это помогает другим легче находить занятия. (Как вы говорите, обнаруживаемое расположение.) Например, мои утилиты пути находятся в Missico.IO.Path, моя библиотека доступа к данным в Missico.Data, доступ к данным моего приложения в AppName.DataManager (который использует Missico.Data и все другие данные). Пространства имен).

Я всегда использую свою фамилию или название компании в корневом пространстве имен. (Подойдет любое существительное.) Это позволяет пользователю (программисту) легко разрешать конфликты имен с помощью простого изменения имени в исходном коде или использования псевдонима для ссылок на библиотеки.

using Company = Missico;
String x = Company.IO.Path.CommonPath("", "");

Я пытаюсь сохранить папку для каждого пространства имен. Вложенность папок, если вложены пространства имен. Это помогает мне и другим быстрее находить исходный код, потому что они знакомы со структурой пространства имен. Зачем заставлять их изучать две структуры. Каждая папка содержит все исходные файлы для этого пространства имен, за исключением сложных классов. Они получают там свою собственную подпапку (без изменения пространства имен.) В итоге я могу получить папку пространства имен, которая содержит четыре или пять подпапок для сложных классов и поддерживающих классов.

Обратите внимание, что поскольку определение пространства имен System вызовет всевозможные проблемы, я использую Core в качестве своего "системного / глобального" пространства имен.

0 голосов
/ 02 апреля 2010

Я всегда думал о том, чтобы сохранить небольшие классы многократного использования в значимых именах пространства имен. Поэтому мой ответ будет НЕТ, не пытайтесь сократить иерархию вашего пространства имен.

...