태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

Underscore 와 field 네이밍 컨벤션

개발표준가이드라인 2008/10/13 16:36
멤버 Field의 네이밍 가이드 라인에서 언더스코어(_, underscore)의 사용에 대한 의견이 분분하다.

언더스코어를 사용하는 개발자는 대/소문자로 구별하는 field/property가 익숙하지 못하다.
언더스코어를 싫어하는 개발자는 _가 사족 같다라는 느낌을 지울 수 없다.

가령
1.언더스코어 사용 규칙

class Person{
private int _age;
public int Age
{
get{return _age;}
set{_age=value;}
}
}


2.마이크로 소프트 프레임워크 규칙

class Person{
private int age;
public int Age
{
get{return this.age;}
set{this.age=value;}
}
}

1번과 2번의 규칙 어떤것이 좋냐에 대한 의견이다.

1번은 C, C++ 또는 MFC에서 헝가리안 표기법의 멤버를 나타내는 m_ 에서 m을 제거하고 표기하는 규칙으로,  옹호론자들은 명백하게 노출하지 않을 멤버 필드임을 코딩시에 알 수 있다 이다.

2번의 옹호란자들은 Visual Studio IDE를 사용할때 , 직관적으로 나열되므로 코딩에 편하다. 이다.

1번의 단점은 코딩시에 의미 없는 언더스코어의 나열을 봐야 하는 것이다. 2번의 단점을 멤버임을 대소문자로 구분하기가 약간 힘들다는데 있다. 또한 C#코드에서 대소문자를 구별하지 않는 VB등으로 변환시에 문제가 발생할 수 있다는 점이다.

1번 2번 모두 장단점에 대해 분명하게 말하기는 힘들지만,  2번 스타일을 권하고 싶다.

Field의 이용시에는 명확하게 this 키워드를 이용하며, 인텔리센스의 도움을 더 잘 받기 때문이다.

이올린에 북마크하기(0) 이올린에 추천하기(0)

현재글 : Underscore 와 field 네이밍 컨벤션 posted By - 반더빌트 2008/10/13 16:36
Trackback 0 : Comment 1

Trackback Address :: http://smack.kr/trackback/225 관련글 쓰기

  1. beren 2010/01/21 17:16 Modify/Delete Reply

    저도 2번을 지지합니다. 다만 가끔 조심해야 할 것이 get, set 블럭 작성 시에 필드값은 소문자로 시작하도록 주의깊게 사용해야 하는데 아~주 가끔씩 대문자로 타이핑 하는 실수(인텔리센스를 사용하다보면 가끔 그런일이 있더라구요^^)를 저질러서 스택 오버플로우가 발생하는거죠. 저만 그런가요? ㅋㅋ


[생각을 적어 주세요~ 댓글은 작은 인연의 씨앗입니다.]