게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
최소한 코딩컨벤션은 한번 읽어봤으면.
게시물ID : programmer_9744짧은주소 복사하기
작성자 : 타입온
추천 : 5
조회수 : 1051회
댓글수 : 6개
등록시간 : 2015/05/05 23:54:36
옵션
  • 베스트금지
  • 본인삭제금지
최근에 자주 들어와서 되도않은 댓글을 좀 달아드리고 있는 사람입니다.
올려놓은 소스를 보다보니 재밌는 내용도 많고 잘 모르는 내용도 있어서
구글에서 검색해 보기도 하고 해서 재밌는데요.

하나 같이 코딩컨벤션이나 style guide를 전혀 본 적이 없이 그냥 코드를 작성하고 있어서
이 참에 좀 도와드리고자 씁니다. 더 자세한 사항은 coding convention, c++ style guide, java style guide 이런 류를 검색해 보시면 더 자세한 내용을 보실 겁니다. 

coding convention은 소스코드를 구성하는 규칙이라고 생각하면 되고,
규칙들이 너무 많아서 전부다 설명해 드릴 수는 없고,
여러 convention 규칙 중에서 그나마 공통적인 부분을 뽑아내서 보니 아래 정도.
대다수 분들이 이 정도면 보기에 편하다고 느끼는 정도라고 생각하면 무난할 듯.

- 한라인은 80자 이내.
- 변수 선언은 한라인에 하나만.
- 연산자 좌우로 space 추가. a + b
- unary 연산자는 붙임. ++a, i++, ~i, !i, &i, *i
- = assign 좌우로 space 추가. a = 10;
- ()는 (a + b) + 3
- 함수 호출은 callProc() 
- 함수 선언도 function callProc() {
- for, if, switch, while 다음에 space. for (), if (), switch () { }
- indent는 tab = 4 정도인데, 구글은 2, linux kernel은 8
- indent에 tab 안쓰고 space char 사용이 추세.
- backspace가 unindent가 안되는 에디터는 tab 키 indent, shift-tab 키 unindent
- []는 변수명에 붙임 a[1][1], a[1], a[i + j + 1]
- 문장이 길어서 여러줄로 될 경우, operator 앞에서 끊고 다음줄로.
- 함수명은 동사로 시작, + 목적어로 주로 구성.
- 변수명은 주로 명사

int a;
int b;
int a, b; // avoid하라는 편이 많음.
int a, b[]; // - avoid
char ch, *ptr, charray[]; // 대표적인 avoid

for (i = 0; i < MAX_LEN; i++) {
for(i=0;i<MAX_LEN;i++){ // avoid
for(i = 0; i < MAX_LEN; i++){ // avoid
for (i = 0, j = 0; i < MAX_LEN && j < MAX_LEN; i++, j++) {

if(a == b){ // avoid
if (a == b) {
switch (a) {

a = (b + c) * d + f++;
a = (b + c)
* d + f++; // 2라인으로 구분시 operator를 앞에 둠.

char* ptr;
char *ptr;
char& ptr;
char &ptr;

char * ptr; // avoid
char & ptr; // avoid

if (cond1 && cond2 
&& cond3 
&& cond4) {
a = b + c;
}

대충 이정도만 지켜도 소스가 한결 보기 편하고 타인들도 이해하기가 쉬울 꺼임.
예전에는 나만의 코딩 스타일이 있어서 고수하려고 노력했는데,
팀으로 개발해야 하는 상황이 되다보니 인수인계나 소스 이해도 측면에서 자기 스타일을 고수하면 안되었음. 
코딩 컨벤션은 절대적인 것이나 옳고 그름의 문제가 아니고 합의와 준수의 문제이므로 
나와 다르다고 우기거나 반대할 이유는 전혀 없음.

제일 웃긴 코딩규칙 중에
for( i = 0; i < MAX_LEN; i++ ) { 
preg_match( $a, $b );
이런 류가 있어서 머 이런 게 다 있나 했더니 php 소스 중에 이런 convention이 있었음.

출처 my pc sublime text 3
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호