2008-12-27 4 views
1

CMS를 구축 중이며 클래스에 대한 명명 규칙이 관련된 다른 개발자와 자신 사이에서 논의되었습니다. 이 문제는 일반적인 라이브러리에서 사용할 수있는 공용 클래스이므로 "Page"와 함께 특히 발생합니다.C# CMS의 명명 규칙에 대한 간단한 질문

자연스러운 응답은 MVCMSPage (여기서 MVCMS는 cms의 이름 임)이거나 dll을 통해 클래스를 참조하는 데 의존해야하지만 (atm ..이라는 용어는 생각할 수 없지만) 그 (것)들에게 codesmell의 힌트가있는 것을 보인다.

조언 하시겠습니까?

감사

답변

4

내가 'Page'가 아닌 다른 뭔가를 갈 것입니다. .NET에 내장 된 'Page'클래스는 일반적으로 ASP.NET의 일부로 알려진 매우 일반적인 클래스입니다. 다른 개발자들 (심지어 잠시 보지 않는다면 길 아래 몇 달 간)을 쉽게 혼동 할 수 있습니다. 또한

ApplicationName + "Page" 

만 이상이 개 문자보다 글자의 첫 글자를 대문자의 지침을 명명 MS .NET를 따르 :

나는 보통 같은 명명 규칙과 함께 할 것입니다.

MvCmsPage 

이것은 설명이다, 나는 'MVCmsPage'을 'MvcmsPage'를 사용하거나하지 않을 잘못 읽으면 'MVCMS'이후 'MVC'아키텍처 스타일에 대한 혼동 될 수있다, 나는 이런 식으로 뭔가를 호출 것 읽기 쉽고 이해하기 쉽습니다.

물론 당신에게 달려 있습니다. 주로 선호의 문제입니다. 'Page'을 사용하지 마십시오. 일부 개발자를 화나게 만듭니다 (예 : 나 자신과 같이).

+0

시스템에 파생 형식이있는 경우 "base"만 호출합니다. 그렇지 않으면 MvCmsPage 나에게 잘 보입니다. –

+0

클래스 이름에서 "Base"접미어를 제거했습니다. 사람들의 피드백과 생각이 끝난 후에는 그것을 버려두는 것이 더 합리적입니다. –

3

당신이 찾고 있던 용어가 namespace이라고 생각합니다.

System.Web 공간에서 이러한 기본 클래스에 대한 네임 스페이스 차별화에 의존하지 않을 것이라고 생각합니다. 콘솔 기반 알림 메커니즘을 작성했다면 괜찮을 지 모르지만 웹 분야에서 일하고 있으므로 필자는이를 피할 것입니다. 제 투표는 네임 스페이스를 주요 차별화 요소로 사용하고 ContentPage과 같은 간단한 이름을 지정하므로 클래스의 전체 이름은 MvcCms.Web.ContentPage입니다.

이렇게하면 네임 스페이스와 System.Web을 모두 가져올 수 있으며 클래스를 차별화 할 수 있으며 사용하기 쉽고 참조하기가 쉽지 않은 짧은 이름이 있습니다 (그것에 대해 말할 때) .

1

나에게 CMS를 개발 중이므로 루트의 개체가 콘텐츠입니다. 그래서 MvCmsContent, CmsContent, 또는 그냥 콘텐츠 나에게 잘 보일 것입니다. 항상 프로젝트의 가장 어려운 부분을 지목하지 않습니까?

+0

응답을 감사하지만 프로젝트의 다른 부분에 속하기 때문에 컨텐츠가 작동하지 않습니다. 네, 이름이 놀랍게도 어려웠습니다. – Chance

1

비슷한 문제가있어서 CMSPage로갔습니다. MVCMSPage보다 약간 덜 복잡하지만, 여전히 분명히 CMS이며, 필요하다면 앞으로 여러 시스템에서이 클래스를 확장 할 수 있습니다.

0

"응용 프로그램의 데이터베이스 레코드와 동일한 페이지"라고 생각합니다. 다른 사람들이 이것을 말하는 것처럼 그것은 오히려로드 된 용어입니다.여기에 몇 가지 임의 아이디어입니다 :

  • 노드
  • 보기
  • PageRecord
  • CmsPage
  • WebDocument
  • ContentPage

선택은 개체의 본질을 전달하기 위해 시도해야 유형. 나는 제품 이름을 클래스 이름에 넣는 것을 피할 것이다. 나는 그것을위한 네임 스페이스를 선호한다.