출처 : 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. 파일명은 파스칼 표기법을 사용한다.
출처 및 참고 자료
'프로그래밍습관' 카테고리의 다른 글
[프로그래밍습관] C++ - 코딩/프로그래밍 규칙 - 헝가리안 표기법 (0) | 2015.03.26 |
---|---|
[프로그래밍습관] 코딩 스탠다드, 정말 이리 빡셀 필요 있나? (0) | 2015.03.26 |
[프로그래밍습관] 효과적인 이름짓기 (0) | 2015.03.26 |
[프로그래밍습관] 네이밍 규칙 C# (0) | 2015.03.25 |
[프로그래밍습관] 알아보기 쉬운 코드가 최고! 이름이 생명이다 (이름짓기, 작명) (0) | 2015.03.25 |