2008-12-27 6 views
1

Я создаю CMS, и соглашение об именах для классов обсуждалось между другим разработчиком и мной. Проблема возникает именно с «страницей», так как это открытый класс, доступный в типичной библиотеке.Быстрый вопрос об именовании для C# CMS

Естественным ответом было бы называть его MVCMSPage (где MVCMS является текущим именем cms) или полагаться на ссылку на класс через dll (не могу придумать термин atm ..), но оба Кажется, у них есть намек на коды.

Что бы вы посоветовали?

Благодаря

ответ

4

Я бы с чем-то другим, чем 'Page'. Класс 'Page', встроенный в .NET, является очень универсальным классом, который обычно известен как часть ASP.NET. Вы можете легко запутать других разработчиков (или даже себя, через несколько месяцев после дороги, если вы не смотрите на это некоторое время).

Я обычно хожу с именованием, такие как:

ApplicationName + "Page" 

Я также хотел бы следовать MS .NET именования рекомендаций только заглавной первую букву в аббревиатуре более чем 2 символов. Так как «MVCMS» можно спутать для стиля архитектуры в «MVC», если прочитать неправильно, я бы не использовать «MvcmsPage» или «MVCmsPage», я бы назвал это что-то вроде этого:

MvCmsPage 

Это описательный и довольно легко читать и понимать.

Конечно, это действительно зависит от вас. В основном это вопрос предпочтения. Просто не используйте «Page», так как это заставит некоторых разработчиков рассердиться (например, я).

+0

Я бы назвал «базой», если в системе есть производные типы. В противном случае MvCmsPage кажется мне прекрасным. –

+0

Я удалил суффикс «База» из имени класса. После обратной связи с людьми и размышления об этом, имеет смысл отказаться от нее. –

3

Я думаю, что термин, который вы искали, - namespace.

Я не думаю, что полагался бы на дифференциацию пространства имен для такого фундаментального класса в пространстве System.Web. Если вы пишете консольный механизм уведомления, это может быть хорошо, но, поскольку вы работаете на веб-арене, я бы избегал этого. Мое голосование будет состоять в том, чтобы использовать пространство имен в качестве основного дифференциатора и называть его чем-то простым, например ContentPage, поэтому у вас есть что-то вроде MvcCms.Web.ContentPage как полное имя класса.

Если вы сделаете это так, вы можете импортировать как ваше пространство имен, так и System.Web и все еще иметь возможность различать классы. И у вас есть короткое имя, которое имеет смысл и не громоздко использовать или ссылаться (говоря об этом) ,

1

Для меня, поскольку вы разрабатываете CMS, объектом в корне является Content. Поэтому либо MvCmsContent, CmsContent, либо просто Content будут казаться мне прекрасными. Является ли наименование самой сложной частью проекта?

+0

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

1

У нас была аналогичная проблема, и мы просто пошли с CMSPage. Это немного менее громоздко, чем MVCMSPage, но все же очевидно CMS, и вы можете в дальнейшем расширить этот класс для нескольких систем в будущем.

0

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

  • Узел
  • Просмотр
  • записи страницы
  • CmsPage
  • веб-документ
  • ContentPage

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