검색결과 리스트
글
출처 : http://www.dotnetspider.com/tutorials/BestPractices.aspx
1. 명명규칙과 표준
|
참고 : 이 문서에는 파스칼 케이싱(Pascal casing)과 캐멀 케이싱(Camel casing)이란 용어를 사용한다. 파스칼 케이싱 - 단어의 첫번째 글자는 모두 대문자, 나머지는 모두 소문자. 예: BackColor 캐멀 케이싱 - 맨 첫번째 단어를 제외한 단어의 첫번째 글자는 대문자, 나머지는 모두 소문자. 예: backColor |
1. 클래스명 : 파스칼 케이싱
public class HelloWorld
{
...
}
2. 메소드명 : 파스칼 케이싱
void SayHello(string name)
{
...
}
3. 메소드인자, 변수 : 캐멀 케이싱
int totalCount = 0;
void SayHello(string name)
{
string fullMessage = "Hello " + name;
...
}
4. 인터페이스 : 'I' + 파스칼 케이싱 ( 예: IEntity )
5. 변수명에 대해 헝가리안 표기법을 사용하지 말라
좋지 않은 예:
string m_sName;
int nAge;
헝가리안 표기법은 타입이 엄격하게 지켜지지 않는 언어에 대해 유용하였으나, 닷넷의 경우 타입검사가 엄격하고, 개발 툴 자체에서 타입에 대해 쉽게 알아 볼 수 있기 때문에 헝가리안 표기법을 따르지 말 것을 권고한다.
|
일부 프로그래머들은 여전히 m_ 를 통해 멤버변수를 구분하는 네이밍을 선호하는데, 이는 현재 지역변수와 멤버변수를 구분하기에 편하고 마땅한 대한도 없다. |
6. 변수에 의미를 부여하라. 축약하지 말라.
좋은 예:
string address
int salary
좋지 않은 예:
string nam
string addr
int sal
7. i, n, s 와 같은 한 글자로 이루어진 변수를 사용하지 말라.
다만 다음은 예외로 한다:
for ( int i = 0; i < count; i++ )
{
...
}
위와 같은 곳에서 i는 아주 오랫동안 관습처럼 쓰여왔고, 다른 곳에서 사용하지 않는다면 허용한다.
8. 지역변수에 언더스코어( _ ) 문자를 사용하지 말라.
9. 멤버변수는 언더스코어( _ )로 시작하여 지역변수와 구분하라.
11. 변수명을 예약어와 유사하게 사용하지 말라.
12. 불린 값을 리턴 하는 메소드, 프러퍼티, 변수는 'is' 접두어를 붙여라.
Ex: private bool _isFinished
13. 네임스페이스는 아래와 같은 규칙으로 작성하라
<회사명>.<제품명>.<상위모듈>.<하위모듈>
14. UI 를 구성요소에 대해서 알맞은 접두어를 붙여서 다른 변수와 구분하라.
이 문서에서 추천하는 방법은 아래 두 가지다.
a. ( ui_ ) 와 같은 접두어로 통일하여 붙여준다. 이 방법은 인텔리센스에서 UI구성요소만 리스트업하기에 좋다.
b. 각 UI 구성요소에 해당하는 약어를 접두어로 붙인다.
|
Control |
Prefix |
|
Label |
lbl |
|
TextBox |
txt |
|
DataGrid |
dtg |
|
Button |
btn |
|
ImageButton |
imb |
|
Hyperlink |
hlk |
|
DropDownList |
ddl |
|
ListBox |
lst |
|
DataList |
dtl |
|
Repeater |
rep |
|
Checkbox |
chk |
|
CheckBoxList |
cbl |
|
RadioButton |
rdo |
|
RadioButtonList |
rbl |
|
Image |
img |
|
Panel |
pnl |
|
PlaceHolder |
phd |
|
Table |
tbl |
|
Validators |
val |
15. 파일명은 해당 클래스명으로 사용한다.
HelloWorld 클래스는 HelloWorld.cs 파일로 저장한다
16. 파일명은 파스칼 케이싱을 사용한다.
+ 번역버전 문서 다운로드
'IT 이야기 > Programming' 카테고리의 다른 글
| C# 프로젝트에서 관리자 권한으로 프로그램 실행하기 (0) | 2011/06/16 |
|---|---|
| [WPF] Tooltip 시간 조절 하기 (1) | 2010/05/18 |
| C# Coding Standards and Best Programming Practices (0) | 2010/04/22 |
| [MFC] CTreeCtrl의 각 아이템 Height 조절 (0) | 2009/09/22 |
| 포인터에 대해서 어떻게 생각하나요? (2) | 2009/07/09 |
| [MFC] 사각형 객체화 (0) | 2009/05/21 |
CodingStandards(KR).doc