Я создаю CMS, и соглашение об именах классов обсуждалось между мной и другим участвующим разработчиком. Проблема возникает именно с «Page», поскольку это общедоступный класс, доступный в типичной библиотеке.
Естественным ответом было бы назвать его MVCMSPage (где MVCMS - это имя будущего cms) или полагаться на ссылку на класс через dll (не могу вспомнить термин atm ..), но оба, похоже, имеют намек на кодовый запах им.
Что бы вы посоветовали?
Спасибо





Я бы выбрал что-нибудь другое, кроме «Page». Класс «Page», встроенный в .NET, является очень общим классом, широко известным как часть ASP.NET. Вы можете легко запутать других разработчиков (или даже себя через несколько месяцев, если не будете смотреть на это какое-то время).
Я обычно придерживаюсь такого соглашения об именах, как:
ApplicationName + "Page"
Мне также нравится следовать правилам именования MS .NET, согласно которым первая буква аббревиатуры длиннее двух символов должна быть заглавной. Поскольку MVCMS при неправильном чтении можно спутать со стилем архитектуры MVC, я бы не стал использовать MvcmsPage или MVCmsPage, я бы назвал это примерно так:
MvCmsPage
Это описательный текст, который довольно легко читать и понимать.
Конечно, это действительно зависит от вас. В основном это вопрос предпочтений. Только не используйте «Page», так как это рассердит некоторых разработчиков (например, меня).
Я удалил суффикс «Base» из имени класса. После отзывов людей и их обдумывания имеет смысл оставить это в стороне.
Я думаю, что вы искали термин namespace.
Я не думаю, что буду полагаться на различие пространств имен для такого фундаментального класса в пространстве System.Web. Если бы вы писали консольный механизм уведомлений, это могло бы быть нормально, но, поскольку вы работаете в сети, я бы этого избегал. Я бы предпочел использовать пространство имен в качестве основного отличия и назвать его чем-нибудь простым, например ContentPage, чтобы у вас было что-то вроде MvcCms.Web.ContentPage в качестве полного имени класса.
Если вы сделаете это таким образом, вы можете импортировать как свое пространство имен, так и System.Web, но при этом иметь возможность различать классы И у вас есть короткое имя, которое имеет смысл и не является громоздким в использовании или ссылках (если говорить об этом).
Для меня, поскольку вы разрабатываете CMS, корневым объектом является Content. Так что либо MvCmsContent, CmsContent, либо просто Content мне кажутся подходящими. Разве название не всегда самая сложная часть проекта?
Я ценю ответ, но контент не будет работать, потому что он принадлежит другой части проекта. Да, назвать было на удивление сложно.
У нас была аналогичная проблема, и мы просто использовали CMSPage. Это немного менее громоздко, чем MVCMSPage, но все же очевидно, что CMS, и вы можете расширить этот класс для нескольких систем в будущем, если это будет необходимо.
Я думаю, что «страница», которую вы называете приложением, является эквивалентом записи базы данных. Как говорят другие, это довольно загруженный термин. Вот несколько случайных идей:
Ваш выбор должен попытаться передать суть типа объекта. Я бы не стал помещать название продукта в название класса. Для этого я предпочитаю пространства имен.
Я бы назвал это "базовым" только в том случае, если в системе есть производные типы. В противном случае мне кажется, что MvCmsPage подходит.