Быстрый вопрос о соглашении об именах для C# CMS

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

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

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

Спасибо

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
394
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Ответ принят как подходящий

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

Я обычно придерживаюсь такого соглашения об именах, как:

ApplicationName + "Page"

Мне также нравится следовать правилам именования MS .NET, согласно которым первая буква аббревиатуры длиннее двух символов должна быть заглавной. Поскольку MVCMS при неправильном чтении можно спутать со стилем архитектуры MVC, я бы не стал использовать MvcmsPage или MVCmsPage, я бы назвал это примерно так:

MvCmsPage

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

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

Я бы назвал это "базовым" только в том случае, если в системе есть производные типы. В противном случае мне кажется, что MvCmsPage подходит.

Robert C. Barth 28.12.2008 03:01

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

Dan Herbert 28.12.2008 19:57

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

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

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

Для меня, поскольку вы разрабатываете CMS, корневым объектом является Content. Так что либо MvCmsContent, CmsContent, либо просто Content мне кажутся подходящими. Разве название не всегда самая сложная часть проекта?

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

Chance 28.12.2008 06:50

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

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

  • Узел
  • Вид
  • PageRecord
  • CmsPage
  • WebDocument
  • ContentPage

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

Другие вопросы по теме