2009-04-04 3 views
9

나는 C#에서 개인 메서드 및 개인 정적 메서드의 이름을 짓는 가장 영리한 방법을 알아 내려고하고 있습니다.C#에서 개인 및 정적 개인 메서드의 이름을 지정하는 가장 좋은 방법은 무엇입니까?

배경 : 개인 회원을위한 모범 사례는 밑줄 접두사 + 낙타 사례입니다. 당신은 나와 함께 주장 할 수는 있지만이 컨벤션을 따르는 하드 코어 전문가들의 코드를 충분히 보았습니다. 숙련 된 업계 표준입니다.

파스칼 케이스는 공용 메소드의 업계 표준입니다. 하지만 개인 및 개인 정적 메서드에 대한 테스트 스타일 명명 (즉, method_must_return_false_occometimes)과 파스칼 케이스, camelcase 및 밑줄 접두어 + camelcase의 조합을 보았습니다.

그러나 C#에서 개인 및 개인 정적 메서드 명명을위한 최상의 연습 스타일은 무엇입니까?

일부 개인적인 방법에서 사용되는 스타일이 있고 다른 스타일에서 사용되지 않는 스타일이 있다면 이해할 수 있습니다.

읽어 주셔서 감사합니다.

답변

16

체크 아웃 마이크로 소프트의 Naming Guidelines 브래드 아브람의 Style Guide

그들은 모든 방법을

public void DoWork() {} 
private void StillDoWork() {} 
private static void ContinueToDoWork() {} 
+8

맞지 만 Microsoft가 알고있는 바로는 극도로 지능형 또는 극도로 뼈대가있는. 민간인을위한 다른 컨벤션이있는 것처럼 사적 방법을위한 다른 컨벤션을 갖는 것이 더 합리적이라고 생각됩니다. 또한 분명히 fxcops 규칙 중 일부는 어리 석다. –

+0

FxCop의 규칙 중 일부는 어리석은 것으로 동의하지만 전 커뮤니티를 표준에 가깝게 움직이는 데 강한 신념을 갖고 있습니다. 나는 MS가이 분야에서 가장 큰 목소리를 가지고 있다고 느낍니다. 항목 범위를 결정하는 데 필요한 다양한 도구 (intellisense 등) 및 컴파일러 메시지가 있으므로 다른 이름은 필요하지 않습니다. – bendewey

+0

나는 쉽게 사용할 수있는 다양한 도구가 있다는 것에 동의하지만, 인텔리 센스와 결합 할 때 다른 이름 지정을 사용하면 강력한 도구가 될 수 있다고 정중하게 반대합니다. 예를 들어 밑줄 문자로 개인 회원에 빠르게 액세스 할 수 있습니다. –

3

내가 업계 표준에 대해 알고 있지만, 심지어 개인 방법과 I에 대한 파스칼 케이스를 사용하지 않는 PascalCase해야한다는 말 정적 메소드를 구별하지 마십시오.

6

.NET 클래스 라이브러리 개발을위한 naming guidelines은 공용 및 개인 용도를 구별하지 않으며 정적 방법의 경우 Pascal 사례를 권장합니다.

EDIT : 개인적인 방법으로는 메서드 및 속성에 파스칼 케이스를 사용하고, 필드, 매개 변수 및 로컬 변수에 대해 낙타 케이싱을 사용합니다. 클래스 내에서 인스턴스 멤버를 참조 할 때 필요하면 클래스 멤버 및 매개 변수와 구별하기 위해 this.을 사용합니다. 나는 "하드 코어 프로"자격이되는지 모르지만 돈을 받는다. :-)

편집 2 : 원래이 글을 쓰면서부터 저는 일자리를 바꿨습니다. 우리가 따르는 코딩 표준은 내 개인적인 감정과 다르며 개인 필드에 밑줄을 붙입니다. 또한 ReSharper를 사용하기 시작했으며 표준 (일반적으로)은 기본 규칙을 따릅니다. 나는 밑줄로 쉽게 살 수 있다는 것을 알았다. 나는 우리 코드 표준에 맞지 않기 때문에 절대적으로 필요한 경우에만 this을 사용합니다. 일관성이 개인적 취향보다 우선합니다.

+1

~ 35K 담당자가있는 사람은 내 책에서 하드 코어 전문가입니다. – bendewey

+1

나는 감정을 고맙게 여긴다. 그러나 나는 아직도 배울 것이 많다. – tvanfosson

+0

'이걸 사용하는 유일한 사람이 아님을 아는 것이 좋다.' - 여러 번 코드 냄새라고 들었습니다. – Sherlock

1

style cop과 같은 일관성을 유지하는 도구를 사용하는 것이 좋습니다 (을 사용하는 경우 codeplex에 스타일 관리자 용 플러그인이 있음). 대부분의 도구는 Microsoft 플랫폼의 코드 승인을위한 몇 가지 테스트를 통해 Microsoft 가이드 라인을 시행 (권장)합니다.

1

내가 일한 곳마다 항상 다르게 작업했습니다.

저는 전문 개발자로서 전문가의 일부가 새로운 코딩 규칙을 가지고있는 새 팀에 적합하다는 것을 알고 있습니다.

스타일을 전환하고 처음 몇 주 동안 생성되는인지 부조화에 대처할 수 있다는 것이 직업의 일부입니다.

다양한 오픈 소스 프로젝트 등을 살펴보기 시작하면 다양한 구성표가 보일 것입니다.

나는 또한 camelCase와 Pascal의 밑줄이 communites와 때때로 팀을 나누는 것을 보았습니다. 이것은 코딩 계획의 요점이라고 생각합니다.

프로젝트가 개발자가 아닌 경우 자유로운 경우 - 팀의 나머지 부분에서 무엇을 사용하고 싶은지 알아보고 팀이 이해하기 쉽게 만드는 방법을 찾아보십시오.

다른 요소는 간단한 프로젝트 또는 복잡한 패턴이있는 복잡한 OO 디자인 또는 일부 IOC를 사용하여 다른 유형의 "스파이크"를 실행하는 경우 OO 용어로 코드가 복잡하다는 것입니다 코딩 표준을 따르고 코드를 실제로 사용하는 경우 코드가 어떻게 보이는지 살펴보십시오. 여러분과 팀에게 좋게 보이거나 추악 해 보일 수 있습니다.

2

weird_underscore_naming 약식은 입니다. 일반적으로은 테스트가 제한되어 있기 때문에 더 읽기 쉽도록되어 있으며 BDD에 의해 크게 권장됩니다. 방법은 짧은 방법으로 설명하는 반면 (DepositMoney) 테스트는 그들이 수행하는 작업을 설명해야합니다. 예를 들어 Negative_deposits_must_be_caught