코딩시 이름규칙을 어떻게들 하시나요?
글쓴이: innu / 작성시간: 금, 2005/08/12 - 1:04오후
매번 이름규칙이 바뀌어 나만의 것을 가지고 있지않아 내가 짠 코드를 볼때도 이게 뭔가하고 헷갈릴때가 많습니다.
상수는 무조건 대문자로 하는건 같은데 클래스명,함수명,변수명 규칙은 매번 바뀌어 어떻게 줘야 할지 난감하네요..
헝가리안표기도 써 봤는데 너무 길고 나중엔 더 헷갈리더군요.
이것도 훈련이 되어야 겠더군요.
여러분들은 어떤방식으로 정의해 놓고 쓰시는지, 그리고 이런 문제들에 대한 내용의 서적이나 url 좀 부탁드립니다.
Forums:


저는 짜가 코더-_-라서 이름 규칙이 그렇게 고른 편은 아닙니다. 하지만
저는 짜가 코더-_-라서 이름 규칙이 그렇게 고른 편은 아닙니다. 하지만 대충 정리하자면...
상수 어느 경우라도 underscore로 분리하고 모조리 대문자로 쓴다.
클래스 항상 낙타 케이스-_-_-_-로 쓴다.
함수/메소드 파이썬이나 루비의 경우 소문자로 모조리 붙여 쓰고 (ex: getvalue) C나 C++의 경우 underscore로 분리하고 모두 소문자로 쓴다. (ex: get_value)
변수명 함수/메소드 명과 비슷하지만 C나 C++의 경우 underscore를 안 쓰는 경우도 있다.
멤버 변수 변수명과 비슷하지만 C++의 경우 앞에 m_을 붙인다.
당연한 소리지만 underscore는 밑줄(_)입니다.
- 토끼군
상수 : 죄다 대문자로쓰고, 단어들은 _ 로 구분합니다클래스 이름 :
상수 : 죄다 대문자로쓰고, 단어들은 _ 로 구분합니다
클래스 이름 : kh(개인적으로 쓰는 뭐 그런;)뒤에 클래스명을 붙입니다
함수 : Get, Set, Is 등의 접두어를 붙이거나, 앞의 세가지 경우에 해당하지 않을때는 붙이지 않습니다
단어의 첫글자마다 대문자로 해줍니다
변수명 : n이나 i, f등은 붙여주지 않습니다. 자연어쓰듯이 씁니다.
멤버변수 : _ 를 붙여줍니다.
───────────────────────
yaourt -S gothick elegant
khris'log
생각해 보니 prefix를 까먹었네요.[b]클래스[/b] pref
생각해 보니 prefix를 까먹었네요.
클래스 prefix 같은 건 제끼고 namespace로 올인-_- 파이썬 등등에서는 아예 파일 단위로 구별하니까 역시 안 씁니다.
상수/함수/변수명 C의 경우 LIBRARY_ 혹은 library_ 형식의 prefix를 사용합니다. 물론 내부 변수는 그 앞에 _를 붙인다던지 하고요.
메소드 get(_), set(_), is(_) 정도 말고는 딱히 쓰는 prefix가 없습니다.
생각해 보니까 옛날에 VB 프로그래밍 할 때는 컨트롤들 이름 앞에 prefix를 별의별 이상한 걸로 줬던 기억이 나네요. Command면 cmdBlah, TextBox면 txtBlah... :S
- 토끼군
[quote="tokigun"]생각해 보니까 옛날에 VB 프로그래밍 할
책에서 헝가리안 운운하면서 가르쳤죠.
대부분의 VB책이 잘못된길로 VB유저들을 이끌었기에 VB가 무시당하고 있는것이 아닌가 생각이 듭니다...
프로젝트 만들면 메인 모듈도 아닌 폼 딸랑 만들어주고...
폼에다 죄다 하드코딩. :shock:
───────────────────────
yaourt -S gothick elegant
khris'log
:oops: 갓 C 문법을 뗀 초짜에게 MFC를 가르치는 괴상한 책에서
:oops: 갓 C 문법을 뗀 초짜에게 MFC를 가르치는 괴상한 책에서 배운 헝가리안 표기법을 씁니다. 이제는 익숙해져서 쓰지 않는 게 더 불편하더군요.
생각해보니 VB망친게 우리나라 웹망친거랑 똑같은 루트군요.책이 제
생각해보니 VB망친게 우리나라 웹망친거랑 똑같은 루트군요.
책이 제대로된게... 에잇. :twisted:
───────────────────────
yaourt -S gothick elegant
khris'log
boost convention을 따릅니다.
boost convention을 따릅니다.
Life rushes on, we are distracted
예전에 제 코딩 스타일을 만들 때 참고한 문서들입니다.SUN Ja
예전에 제 코딩 스타일을 만들 때 참고한 문서들입니다.
SUN Java Code Conventions
http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html
Linux kernel coding style
http://src.soohrt.org/CodingStyle
GNU coding standards
http://www.gnu.org/prep/standards/
기타
http://www.chris-lott.org/resources/cstyle/CppCodingStandard.html
http://www.jetcafe.org/~jim/c-style.html
아마 위 문서들 모두가 Naming Conventions이나 이에 해당하는 항목을 갖고 있을 겁니다.
그리고 코딩 스타일과 관련해 제가 범한 우를 다른 분이 범하지 않으시도록 말씀드리고 싶은 게 있습니다.
첫째로 완벽한 코딩 스타일은 존재하지 않는다는 것입니다. 프로그래밍 언어도 논리적 한계가 있기 때문에, 어떤 원칙을 가지고 모든 경우에 적용시키는 건 사실상 불가능합니다. 그리고 기존 관습을 완전히 무시하여 만들어진 것도, 프로그래밍은 혼자만 하는 것이 아니기에 지켜질 수 없습니다.
둘째로 한 코딩 스타일에 너무 집착하는 건 시간낭비일 뿐이며 바르지도 않다는 것입니다. 좋은 프로그래머라면 수행하고 있는 작업에 따라 필요할 때에 자신의 코딩 스타일을 포기할 줄 아는 유연성과 용기를 가지고 있어야 합니다. 그렇게 하지 않으면 목적이 수단에 의해 지배당하게 되는 것입니다.
(...네, 지금까지 제 자신에게 하는 조언이었습니다. OTL)
아무렇게나 지어요.gcc어셈보면 레벨명도 1 2 3 등등으로 짓잖아요
아무렇게나 지어요.
gcc어셈보면 레벨명도 1 2 3 등등으로 짓잖아요.
스트레스...-.-
글로벌한 변수가 아니면 그냥 변수가 의미하는 단어의 첫글자만 따서 쓰고
글로벌한 변수가 아니면 그냥 변수가 의미하는 단어의 첫글자만 따서 쓰고 선언부에 주석답니다. 나중에 보기엔 이게 훨씬 편하더군요 -_-
헝가리안도 좀 쓰다가 이것도 귀찮아서 요즘은 특별한 이유가 있지 않으면 안씁니다. 함수명과 클래스명은 좀 신경써서 짓습니다.
베이직은 언어 자체가 구리지 않은가요? :-)오리지날 베이직을 빌
베이직은 언어 자체가 구리지 않은가요? :-)
오리지날 베이직을 빌 게이츠가 망쳤다는 루머도 있던데 오리지날 베이직은 어떤지 모르겠습니다. (구해보려 했더니 상용이더군요.)
- 죠커's blog / HanIRC:#CN
최대한 이름을 길게 짓는거 말고는 별로 신경 안씁니다. this_
최대한 이름을 길게 짓는거 말고는 별로 신경 안씁니다.
this_flag_should_be_watched_through_this_loop 뭐 이런 이름의 변수까지 있습니다. ^^
그리고, 헝가리안 노테이션은 VB에서는 그리 큰 쓸모가 없지 않나요? C로 윈도우 프로그래밍 하던 때에 쓰려고 만든거라. 그때 당시의 개발환경은 auto completion과 같은 기능들을 기대하기 힘들때라 헝가리안 노테이션 같은게 필요했었죠.
=-=-=-=-=-=-=-=-=
http://youlsa.com
[quote="CN"]베이직은 언어 자체가 구리지 않은가요? :-)
언어 자체가 구리다는것과는 -사실 솔직히 구립니다, 적어도 VB6까지는- 별개의 문제로, 대부분의 VB서적이 WIN32API활용이나 간단한 메시지 후킹, OCX(ActiveX컨트롤)사용등의 트릭들에만 치중하고 있습니다. 클래스가 언어 자체에서 제대로 지원하지 않기도 하지만(상속은 되는데 인터페이스 상속만 됩니다...) 그 반쪽짜리 클래스마저도 제대로 설명하고 있는 서적이 잘 없습니다. 반쪽짜리 OOP라고는 하지만 실상은 제대로 이루어지지 않은 학습과 교육에 있다고 봅니다. 단순히 VB를 다른 언어로 건너가기 위한 중간단계라고만 보는것도 한몫합니다. 그러나 정말로 중간 단계라면 OOP라던지, 좀 더 깊은 프로그래밍에 대해 배워야 하는것 아닐까요? :)
───────────────────────
yaourt -S gothick elegant
khris'log
[quote="youlsa"]최대한 이름을 길게 짓는거 말고는 별로 신경
저는 VB로 그나마 제대로 프로그래밍 공부를 시작했고, 그래서 헝가리안 표기법은 컨트롤 이름을 세글자로 축약시키는건줄 알았습니다... 대부분의 책에서도 그리 설명하고요.
Ex) 커맨드버튼 -> cmd~
레이블 -> lbl~
───────────────────────
yaourt -S gothick elegant
khris'log
[quote="khris"][quote="CN"]베이직은 언어 자체가 구
옛날에 VB6/.net을 쓰는 친구랑 얘기 하다가 VB.com 같은 걸 오픈 소스로 만들어 보면 어떨까라는 얘기가 나온 적이 있습니다. VB6에서 (VB.net은 너무 많이 바뀌어서...) 미흡한 OOP 지원을 좀 강화하고 쓸데 없는 문법들 정리하고 해서 만들면 좋겠다고 생각했는데 내공 부족으로 저는 좀 무리입니다 -_-;;
- 토끼군
[quote="tokigun"][quote="khris"][quote="
Gambas나 RealBasic쪽은 어떨까요?
VB.net은 이름대로 .net 프레임워크에 종속적이기때문에 떼어내거나 하는게 어렵습니다.
(.net Framework가 없으면 제대로된 프로그램 짜기도 힘듭니다. VisualBasic 네임스페이스에 남아있는 VB6 함수들도 .net Framework 함수들을 단순히 포장하는것으로 추정되는데다 빈약합니다)
───────────────────────
yaourt -S gothick elegant
khris'log
[quote="khris"][quote="tokigun"][quote="
Realbasic은 이미 알고 있습니다. (이것 때문에 따로 만들 이유가 크지 않다고 생각했기도 하고요) Gambas는 처음 봤군요.
- 토끼군
여담이지만 KBasic 이나 HBasic도 있습니다.의외로 베이직
여담이지만 KBasic 이나 HBasic도 있습니다.
의외로 베이직에 애착을 가진사람들이 많더군요...
───────────────────────
yaourt -S gothick elegant
khris'log
저같은 경우의 코딩 스타일
전 대부분 이전에 프로젝트에서 사용하던 형태를 사용합니다.
약간 맘에 들지 않는 것들도 있지만 다른 모든 사람들이 사용하는 것이 좋다는 생각에..
사실 코딩 스타일은 어느 정도 다른 사람과 맞추는 의미에서 일정해야한다 는 의미를 가지는 것이 아닌가 싶습니다.
새로 시작하는 프로젝트를 사용한다면 어떻게 만들지는 좀 고민해봐야겠군요.
아마 클래스 이름은 단어별 첫자 대문자에 나머지 것들은 밑줄 난무가 되지 않을까 생각됩니다.