본문 바로가기

헛공부

President's Code Naming convention

나름대로의 coding시 작명 규칙입니다.

개인적으로 이 편이 좋다 싶어서 써 놓는거지, 이것이 진리라거나 완벽하다는 것은 절대로 아니니

착한 아이는 따라하지 마세요.

 

1) 네임스페이스나 클래스, 구조체

: 단어의 시작을 대문자로 시작.

명사로만 이루어지며, 단어 사이에 공백이나 언더바( :언더스코어 '_' ) 는 쓰지 않음.

 

네임스페이스

namespace NamespaceName

ex) namespace Hutsori

 

클래스

: 헝가리안 표기법처럼 C붙이고 그러진 않는다.

public class ClassName

ex) public class Hutsori

 

구조체

: typedef와 함께 쓸 경우 구조체의 원래 이름에 '_'를 붙여 시작.

typedef struct _StructName
{
}StructName;

ex) typedef struct _Hutsori
    {
    }Hutsori;

 

2) 함수( function ), 방법( method ), 절차( procedure )

: 이름의 시작은 소문자로.

항상 동사로 시작하며, 이후 나오는 단어는 대문자로 시작. 단어 사이에 공백이나 '_'는 사용하지 않음.

 

함수 ( function )

: 반환 값이 있을 경우.

isFunctionName()
doFunctionName()

ex) isHutsori()

 

방법 ( method )

: 클래스 안에서 사용될 때.

getMethodName()
setMethodName()

ex) getHutsori()

 

절차 ( procedure )

: 반환 값이 없는 경우. void function.

procedureName()

ex) printHutsori()

 

3) 변수, 배열, 포인터, 참조, 및 상수.

: 상수일 때를 제외하고 모든 단어는 소문자로 사용함.

명사로 시작하며, 단어 사이에는 '_'를 사용함.

변수의 경우에는 상황에 맞는 접두어를 다음과 같은 형태로 붙여준다.

prifix_variable_name;

변수는 영어와 숫자, _로만 만들어지며, 숫자는 단어 중간에 낄 수 없고, 변수명의 끝에 올 수 있다.

 

변수

variable_name

ex) int hutsori

 

배열

: array_를 앞에 붙여준다.

array_name[]

ex) int array_hutsori[]

 

포인터

*pointer_name

ex) int *hutsori

 

참조

&reference_name

ex) int &hutsori

 

상수

: 모든 글자를 대문자로 쓴다. 단어 사이에는 '_' 를 사용해 구분한다.

CONSTANT_NAME

ex) #define HUTSORI

 

4) 기호

어떤 기호든 앞 뒤로 한칸씩 띄운다.

콤마',' 사이에도 한 칸 씩의 공백을 둔다.

+ , - , * , / , % , < , > , = , ? , :
<= , >= , == , != , && , || , <<

 

예외

함수 뒤의 괄호()의 경우, 함수 이름 뒤에 공백을 두지 않고 붙여 쓴다.

단, 괄호 안에서는 위의 규칙을 적용하며, 함수 이름 뒤에 사용되지 않을 경우에도 위의 규칙을 적용한다.

ex) funcName()
ex) ( a + b )

브레이슬렛{}의 경우, 반드시 새 줄에서부터 시작한다.

ex) funcName()
    {
    }

대괄호[]의 경우, 배열 뒤에 공백을 두지 않고 붙여 쓴다.

단, 괄호 안에서는 위의 규칙을 적용한다.

ex) array[ index ]

'.'나 '->' 연산자, '::' , '~'연산자의 경우, 앞 뒤 공백을 두지 않는다.

ClassHutsori.member_variable
ClassHutsori->member_variable
methodName()::ClassHutsori
~ClassHutsor()

문장의 끝을 나타내는 세미콜론';'은 앞 뒤 공백을 두지 않는다.

문자열이나 문자를 나타내는 " " , ' ' 의 경우, 따옴표 안에서는 공백을 두지 않아도 된다.

 

5) 기타.

비교 연산자의 경우, 앞쪽에 오는 것이 비교 대상, 뒤에 오는 것이 기준이다.

함수 인수에서 source와 destination이 필요한 경우, 가장 처음에 오는 것이 source, 두번째에 오는 것이 destination이다.

ex) funcName( src , dest , ...... )

배열이나 포인터를 인수로 받을 경우, 배열이나 포인터를 먼저 받은 뒤,

나중에 배열의 길이, 연산에 필요한 값 순으로 받는다.

ex) funcName( array_named1 , array_named2 , ...... , array_namedn , int length_named1 , char a , float b , ...... )

영역 내에서 필요한 지역 변수들은 영역 시작 부분에 몰아 둔다.

이와 마찬가지로 함수 선언들도 전체 코드 시작부분에 몰아 둔다.

ex) /* variable declaration */
      int variable;
    /* declaration end */

함수가 포인터나 레퍼런스를 반환할 경우에는 반환 형 뒤에 연산자를 붙이고,

인수로 포인터나 레퍼런스가 들어갈 경우에는 변수 명 앞에 연산자를 붙인다.

ex) int* funcName( int *variable , ...... )

자주 쓰는 변수 prefix

index_     : 배열의 인덱스로 사용되는 변수.
array_     : 배열로 사용되는 변수. 때에 따라 사용하지 않는 경우도 꽤 있음. 복수형 표현.
mumber_of_ : 총 개수로 사용되는 변수. 뒤에 오는 명사는 복수형.
total_     : 합산하는 값으로 사용되는 변수.
count_     : 개수를 세는데 사용되는 변수.
matrix_    : 2차원 배열로 사용되는 변수.

자주 쓰는 함수 prefix

is         : 그것이 기다 아니다. boolean 값을 반환하는 경우.
do         : 그것을 하다. 이름지어진 알고리즘일 경우에 잘 사용됨.
print      : void 함수의 대표적. 뒤에 나오는 내용을 ( 보통 ) 화면에 출력.
initialize : 어떤 값을 초기화 시키는 경우.
delete     : void 함수. 동적 할당된 변수들을 해제시킴.
find       : 조건에 맞는 값들을 찾아냄. 반드시 반환값이 있음.
get/set    : getter , setter 표현.
generate   : 어떤 값을 생성해 내는 경우. 반드시 반환값이 있음.
compair    : 주로 qsort의 함수 포인터에 사용되는 함수. 따로 함수 이름을 붙이지 않는다.

주석은 반드시 한 칸의 여유를 둔다.

여러 줄 주석의 경우에는 앞 뒤 한 줄의 여유를 둔다. 하지만 함수를 설명하는 여러 줄 주석의 경우에는,

주석 시작 이전에만 한 줄을 비워둔다.

 

 

 

여기까지.

에고 힘들다

또 생각나면 또 적을거임.

 

 

정리해보니 꽤많넹...