반응형
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 |