해당 포스팅에 네이밍은 닷넷 스파이더 팀에서 만든 [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..
}
예 ) IEntity, IRunnable
이전에는 많은 프로그래머들이 변수명에 데이타 타입에 해당하는 접두사를 첨가하겨 맴버변수에는 m_을 접두사로 사용하는 헝가리안 표기법을 사용했다.
string m_sName;
int nAge;
그러나 닷넷 코딩 표준에서 헝가리안 표기법은 추천하지 않는다. 데이타 타입을 사용하는 것과 멤버 변수를 표현하기 위한 m_ 은 사용해서는 안된다. 모든 변수는 카멜 표기법을 사용해야 한다. 몇몇 프로그래머들은 아직 m_를 붙이거나 데이타 타입을 표시하는 것을 더 좋아하겠지만, 이제 이것들은 멤버 변수를 확인하기위한 쉬운 방법이 아니다.
// 좋은 예시:
string address;
int salary;
int bitcoin;
// 나쁜 예시:
string addr;
int sal;
int bct;
// 한가지 예외가 있다면 루프에서 반복을 의미하는 변수를 하용하는 경우이다.
for(int i=0; i< count; i++) {
// Gazya~~
}
/*
* 만일 변수가 단지 반복을 위한 카운터로만 사용되고
* 그것이 루프안에 있는 다른 어떤 곳에서도 사용되지 않는다면
* 많은 사람들은 아직까지 다른 적합한 단어는 만들어서 사용하는 것보다 i를 사용하는 것을 선호한다.
*/
해당 룰은 일반적으로 전역변수를 _globalVariable 와 같이 _(언더바)는 전역변수에 주로 사용 됩니다. 해당 케이스는 각 팀마다 룰을 조정해야 합니다.
해당 룰 또한 맴버변수 표기하는 방법이 m_variable, _mVariable 과 같이 각 팀마다 룰을 조정해야 합니다.
//프레임워크 내부에서 지원되는 키워드를 비슷하게 사용하면 혼란이 올 수 있다.
예) sizeof, new, malloc, interface, friend
예) private boold isGazya = true;
변수의 이름은 누구나 봐도 바로 이해할 수 있는 것이 좋다.
비트코인을 하는 사람들은 Gazya 에 의미를 알기 때문에 네이밍을 매우 잘한 것이다.
혼자 하는 프로젝트가 아닌 이상 사소한 변수, 속성, 함수명은 누구나 봐도 알수 있도록 네이밍 하는 것이 좋다.
예) <회사명>.<제품명>.<최상위모듈>.<하위모듈>
예) donamoo.upbi.krw.bitcoin
두나무라는 회사가 upbit 라는 제품을 개발 하였고 krw 마켓에서 bitcoin 을 판매 한다는 의미입니다.
※ 위 예는 업비트 광고와 아무런 상관이 없으며 이해를 돕기 위해 네이밍 한것입니다.
해당 룰 또한 팀, 혹은 프로젝트를 진행하는 팀원과 조정해야 합니다.
아래는 예시입니다.
예)
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
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 |
댓글 영역