Programming/MFC-C++

[코드 네이밍] Coding Naming Rules

빠릿베짱이 2012. 12. 6. 13:18
반응형

Team Coding Naming Rules


 

  • 목적
    • 팀이 사용하는 코드 명명 규칙을 정의함
      • 명명 규칙을 사용하여 일관된 코드를 작성하고 이를 통한 향 후 유지 보수에 기여
      • 명확한 의미 부여로 산출물 사이의 연관성 및 가독성을 높임
      • 팀원들 간의 코드 리뷰 시 원활한 의사 소통 가능
      • 명명 규칙 준수를 통한 코드의 완전성 확보 및 이를 통한 개발 생산성 증대


 

  • 명명 규칙
    • 함수
      • 가급적 함수가 수행하는 의미를 포괄적으로 담을 수 있도록, 약어의 사용은 자제
        • 예: void GetStdDev(); (X)


 

void GetStandardDeviationValues(); (O)

      • 특정 알고리즘을 수행하는 성격을 가지는 함수들의 경우 {동사/목적어} 형태로 작성
        • 예 : Do, Set/Get, Run, Create/Destroy


 

      • 대문자로 시작하며, 단어의 의미가 바뀔 때 마다 대문자를 사용
        • 예: void GetStandardDeviationValues();


 

      • under bar 문자(_) 사용 금지
        • 예 : void Get_Standard_Deviation_Values(); (X)


 

void GetStandardDeviationValues(); (O)

    • 변수
      • 가급적 변수가 포함하는 의미를 충분히 담을 수 있도록 약어 사용을 자제
        • 예: ZINT32 imgW; (X)


 

ZINT32 imageWidth; (O)

      • 자료형을 나타내는 인이셜라이저는 사용 금지
        • 예: ZINT32 mnMeanValues; (X)


ZINT32 mMeanValues; (O)

      • 지역 변수
        • 소문자로 시작하며, 단어의 의미가 바뀔 때 마다 대문자를 사용
        • 예: ZINT32 meanValues;


 

      • 전역 변수
        • 전역을 나타내는 표식자 g를 표시하고, 대문자로 시작하며, 단어의 의미가 바뀔 때 마다 대문자를 사용
        • 예: ZINT32 gMeanValues;


 

      • 클래스 멤버 변수
        • 멤버를 나타내는 표식자 m을 표시하고, 대문자로 시작 하며, 단어의 의미가 바뀔 때 마다 대문자를 사용
        • 예: ZINT32 mMeanValues;


 

      • 클래스 멤버 인스턴스
        • 지역 변수의 작성 규칙을 그대로 적용


 

      • 구조체 변수
        • 지역 변수의 작성 규칙을 그대로 적용


 

    • 함수 파라미터
      • 함수 파라미터는 지역변수의 작성 규칙을 그대로 적용
        • 예: CornerFast( const ZINT32 &level,

const ZINT32 &threshold,

std::vector<ZFEATURE>* features);

    • 클래스
      • 클래스 명은 접두어 C를 사용하지 않고, 대문자로 시작하며, 단어의 의미가 바뀔 때 마다 대문자를 사용
        • 예: class COutlierRemover (X)


 

class OutlierRemover (O)

    • 파일작성 규칙
      • 클래스 명과 동일하게 작성하며, under bar 문자(_)는 사용 금지
        • 예: Outlier_Remover.h (X)


 

OutlierRemover.h (O)

      • 헤더파일 작성 시 #pragma once 대신 include guard를 이용, _FILENAME_H_ 형식을 사용
        • 예: #ifndef _OUTLIERREMOVER_H_

#define _OUTLIERREMOVER_H_

#endif

      • 구현파일 작성 시 미리 컴파일된 헤더 stdafx.h 파일 사용 금지


 

      • 엔진 내부 코드 작성 시 Windows.h 파일 사용 금지(Windows 프로그래밍 종속성 제거)
        • 필요한 내용을 담고 있는 헤더파일은 직접 include 시켜 사용
        • 예: #include <cmath>, #include <cstring>


 

    • 매크로 및 상수
      • 매크로
        • #define 매크로 사용 시 모두 대문자로 작성하며, 단어의 의미가 바뀔때 마다 under bar 문자(_)를 적용
        • 예: #define FEATURE_DIMENSION


 

      • 상수
        • 지역 변수의 작성 규칙을 그대로 적용
        • 예: const ZINT32 meanValues


 

  • Doxygen 규칙
    • 파일 설명


 

// Copyright (c) Company Name. All rights reserved.

/**

@file

@author

@version

@date

@brief

*/

    • 함수설명


 

/**

@fn

@brief

@param

@return

@warning

*/

    • 변수 설명

///<

반응형

'Programming > MFC-C++' 카테고리의 다른 글

Google Calender API & Task API  (0) 2012.12.18
JSON C++  (0) 2012.12.17
[코드 최적화] C와 C++의 속도와 성능 비교  (0) 2012.12.06
SURF 중요 코드  (0) 2012.11.12
SURF(Speed up Robust Features) Code  (0) 2012.11.12