출처 : http://likeplex.com/Blog/Archives/39


==========================================================================================




름을 만들때도 신중하게 만들듯이프로젝트를 진행하면서 변수, 클래스 생성등 작성을 할때 네이밍 또한 중요로 하다.

혼자서 보는게 아니라 팀단위 또는 다른 사람이 내 소스를 보고 이해를 했는가?

또는 완료된 프로젝트에 대해서 유지 보수시 소스코드를 볼때 이해하기 쉽게 하기 위해서이다.

다음은 닷넷 스파이더 팀에서 만든 [C# Coding Standards and Best Programming Practices]를 바탕으로 작성된 글을 스크랩해온 것입니다.

이 문서 전반에 걸쳐 파스칼표기법과 카멜 표기법이 사용된다.

파스칼 표기법 - 모든 단어에서 첫번째 문자가 대문자이며 나머지는 소문자이다.

예: BackColor

카멜 표기법 - 최초에 사용된 단어를 제외한 첫번째 문자가 대문자이며 나머지는 소문자이다.

예: backColor 

1. 클래스 명에는 파스칼 표기법을 사용한다.

public class HelloWorld

{

...

}

2. 함수(Method) 명에는 파스칼 표기법을 사용한다.

void SayHello(string name)

{

...

}

3. 변수와 함수 파라미터에는 카멜표기법을 사용한다.

int totalCount = 0;

void SayHello(string name)

{

string fullMessage = "Hello " +name;

...

}

4. 인터페이스에는 접두사 "I"가 포함된 파스칼표기법에따른다. ( Example: IEntity )

5. 변수명에 헝가리안 표기법을 사용하지 않는다.

이전에는 많은 프로그래머들이 변수명에 데이타 타입에해당하는 접두사를 첨가하겨 맴버변수에는 m_을 접두사로 사용하는 헝가리안표기법을 사용했다예를 들어

string m_sName;

int nAge;

그러나 닷넷 코딩 표준에서 헝가리안 표기법은 추천하지않는다데이타 타입을 사용하는 것과 멤버 변수를표현하기 위한 m_ 은 사용해서는 안된다모든변수는 카멜 표기법을 사용해야 한다.

몇몇 프로그래머들은아직 m_를 붙이거나 데이타 타입을 표시하는 것을 더 좋아하겠지만이제이것들은 멤버 변수를 확인하기위한 쉬운 방법이 아니다.

6. 변수에 모든 의미를 충분히 담아라약어를 사용하지 말것.

좋은 예:

string address

int salary

나쁜 예:

string nam

string addr

int sal

7. i, n, s 같이 한글자로 된 이름을 사용하지 말것. index, temp 같은이름을 사용할 것.

한가지 예외가 있다면 루프에서 반복을 의미하는 변수를 하용하는 경우이다.

for ( int i = 0; i < count; i++ )

{

...

}

만일 변수가단지 반복을 위한 카운터로만 사용된다면 그리고 그것이 루프안에 있는 다른 어떤 곳에서도 사용되지 않는다면많은사람들은 아직까지 다른 적합한 단어는 만들어서 사용하는 것보다 i를 사용하는 것을 선호한다.

8. 지역변수에는 밑줄(_)을 사용하지 않느다.

9. 모든 멤버 변수들은 앞에 밑줄(_)을 사용해야 한다그래야 다른 지역변수들과 구분할 수 있다.

10. 키워드와 비슷한 이름을 하용하지 말것.

11. boolean 이 들어가는 변수속성함수(method)등은 "is"또는 유사한 접두사를 사용한다.

: private bool _isFinished

12. 네임스페이스 명은 표준 패턴을 따라야 한다.

<회사명>.<제품명>.<최상위모듈>.<하위모듈>

13. UI 구성요소를 위하여 적당한 접두사를 사용해야 한다그래서 다른변수들과 구분할 수 있어야 한다.

여기 추천하는 서로 다른 두가지 방식이 있다.

a. 모든 UI 구성요소를 위하여 공통적인접두사(ui_)를 사용하는 것이다이것은 모든 UI 구성요소를 묶는데 도움을 줄 것이고 쉽게 이해하고 접근하게 할 것이다.

b. 각각의 UI 구성요소마다 접두사를 적용하는 방법간단한 목록이 아래에 있다닷넷은 다양한 컨트롤들이 제공되므로더 많은 컨트롤(써드파티 컨트롤을 포함한)에 대한 표준을정의해야 한다.

Control

prifix

Control

prifix

Label

lbl

Checkbox

chk

TextBox

txt

CheckBoxList

cbl

DataGrid

dtg

RadioButton

rdo

Button

btn

RadioButtonList

rbl

ImageButton

imb

Image

img

Hyperlink

hlk

Panel

pnl

DropDownList

ddl

PlaceHolder

phd

ListBox

lst

Table

tbl

DataList

dtl

Validators

val

Repeater

rep

14. 파일명은 클래스 명과 같아야 한다.

예를 들어클래스 명이"HelloWorld" 라면 파일명은"HelloWorld.cs" 이어야 한다.

15. 파일명은 파스칼 표기법을 사용한다.

출처 및 참고 자료

1. http://coolose.springnote.com/pages/2459490

2. http://msdn.microsoft.com/ko-kr/library/ms229002.aspx


Posted by 요지
,