상세 컨텐츠

본문 제목

C# - 네이밍 룰

컴퓨터 언어/C#

by cepiloth 2018. 9. 4. 21:40

본문

728x90
반응형

 

 해당 포스팅에 네이밍은 닷넷 스파이더 팀에서 만든 [C# Coding Standards and Best Programming Practices]를 바탕으로 만들 었습니다. 혼자 작업하는 개인 프로젝트에서는 상관 없지만, 모듈 단위 기반 및 팀 단위 개발을 진행을 할때 가장 기초적이고 중요한 요소가 네이밍 룰 입니다. 

 

네이밍 관례와 표준

표준은 아니며 각 회사 혹은 팀마다 다른 방식으로 사용할 수 있습니다.

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

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

 

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

/*
* @brief : 클래스 명에는 파스칼 표기법을 사용한다.
*/
public class BitCoin {
    public BitCoin() {
    }
}

 

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

void ToTheMoon(int money) {
    // Todo..
}

 

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

int totalCount = 1000000000;

void ToTheMoon(int money)
{
    int coin = totalCount * money;
    // Todo..
}

 

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

예 ) IEntity, IRunnable

 

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

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

string m_sName;
int nAge;

 그러나 닷넷 코딩 표준에서 헝가리안 표기법은 추천하지 않는다. 데이타 타입을 사용하는 것과 멤버 변수를 표현하기 위한 m_ 은 사용해서는 안된다. 모든 변수는 카멜 표기법을 사용해야 한다. 몇몇 프로그래머들은 아직 m_를 붙이거나 데이타 타입을 표시하는 것을 더 좋아하겠지만, 이제 이것들은 멤버 변수를 확인하기위한 쉬운 방법이 아니다.

 

변수에 모든 의미를 충분히 담아라. 약어를 사용하지 않는다.

// 좋은 예시: 
string address;
int salary;
int bitcoin;

// 나쁜 예시: 
string addr;
int sal;
int bct;

 

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

// 한가지 예외가 있다면 루프에서 반복을 의미하는 변수를 하용하는 경우이다.
for(int i=0; i< count; i++) {
  // Gazya~~
}
/*
* 만일 변수가 단지 반복을 위한 카운터로만 사용되고
* 그것이 루프안에 있는 다른 어떤 곳에서도 사용되지 않는다면
* 많은 사람들은 아직까지 다른 적합한 단어는 만들어서 사용하는 것보다 i를 사용하는 것을 선호한다.
*/

 

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

해당 룰은 일반적으로 전역변수를 _globalVariable 와 같이 _(언더바)는 전역변수에 주로 사용 됩니다. 해당 케이스는 각 팀마다 룰을 조정해야 합니다.

 

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

해당 룰 또한 맴버변수 표기하는 방법이 m_variable, _mVariable 과 같이 각 팀마다 룰을 조정해야 합니다.

 

키워드와 비슷한 이름을 사용하지 않는다.

//프레임워크 내부에서 지원되는 키워드를 비슷하게 사용하면 혼란이 올 수 있다.
예) sizeof, new, malloc, interface, friend

 

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

예) private boold isGazya = true;

변수의 이름은 누구나 봐도 바로 이해할 수 있는 것이 좋다.
비트코인을 하는 사람들은 Gazya 에 의미를 알기 때문에 네이밍을 매우 잘한 것이다.
혼자 하는 프로젝트가 아닌 이상 사소한 변수, 속성, 함수명은 누구나 봐도 알수 있도록 네이밍 하는 것이 좋다.

 

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

예) <회사명>.<제품명>.<최상위모듈>.<하위모듈>
예) donamoo.upbi.krw.bitcoin
두나무라는 회사가 upbit 라는 제품을 개발 하였고 krw 마켓에서 bitcoin 을 판매 한다는 의미입니다.

※ 위 예는 업비트 광고와 아무런 상관이 없으며 이해를 돕기 위해 네이밍 한것입니다.

 

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

해당 룰 또한 팀, 혹은 프로젝트를 진행하는 팀원과 조정해야 합니다. 
아래는 예시입니다.
예) 

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

 

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

예) 클래스 명이 "BitCoin" 라면 파일명은 "BitCoin.cs" 이어야 한다.

 

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

좋지 않은 예)
bitCoin.cs

좋은 예)
BitCoin.cs

 

 

728x90
반응형

'컴퓨터 언어 > C#' 카테고리의 다른 글

ASP.NET - GET, POST 방식 차이  (0) 2018.09.04
ASP.NET - ServerVariable 컬렉션  (0) 2018.09.04
ASP.NET - 웹 켄버스(Silver Light)  (0) 2018.01.02
ASP.NET - ADO.NET + ASP.NET DB 연동 간단한 예제  (0) 2018.01.02
C# - 들여쓰기  (0) 2017.12.31

관련글 더보기

댓글 영역