카테고리 없음

이름규칙

시코. 2024. 2. 21. 09:32
728x90

Jeremy's Blog | Google C++ Style Guide - Naming (sungjk.github.io)

 

Google C++ Style Guide - Naming

구글 C++ 네이밍 가이드 번역입니다.

sungjk.github.io

여기서 보지 말고 저기 가서 보세용 

 

구글 스타일 C++ 이름 규칙

 

전체 이름 규칙

일관적으로 이름을 지어야 한다. ******

이름들은 약어쓰지말기

보자마자 알 수 있는 이름쓰기

길이에 신경쓰기 보다는 이해를 돕고 혼동을 막아야함

 

int price_count_reader;//축약 없음

int num_errors; //누구나 이해 가능

int num_dns_connections; // dns도 누구나 이해 가능

int n; //의미가 없음

int nerr // 모호한 축약

int n_comp_conns; //모호한 축약

int wgc_connections; //팀 내부사람들만 아는 약어

int pc_reader; //pc는 다양한 의미가 있다

int cstmr_id; //중간단어를 지웠다

 

파일이름

파일이름은 모두 소문자여야하고 _나-를 (언더스코어나 대쉬)를 사용한다.

my-file.cc

all_my_fellas.cc

myusefulclass_test.cc // \_unittest와 \_regtest는 deprecate되었다 //////무슨뜻일까??? //구글 테스트 코드 파일을 말하는것 같다... GoogleTest User’s Guide | GoogleTest  C++ GoogleTest 사용하여 유닛테스트 작성하기 (UnitTest) · ranlog (doll6777.github.io)

 

C++파일은 cc로 끝이나고 헤더는 h 로 끝난다.

 

db.h와 같이 /user/include중복되는 이름 쓰지 않기

 

이름 자세히 적기

예 , logs.h -> http_server_logs.h

 

인라인 함수

인라인 함수는 보통  .h 에 있어야 함.

하지만 길다면 -inl.h 로 따로 파일 생성

그러면 파일 3개됨. .h .cc -inl.h

 

타입

타입이름은 대문자로 시작하고 언더스코어 없이 단어마다 첫 글자로 대문자를 사용한다. 예를  들면 , MyExcitingClass, MyExcitingEnum.

 

클래스, 구조체, typedef, 열거형 같은 타입의 이름에는 같은 규칙이 적용된다. 다음 예시처럼 단어가 대문자로 시작되며 언더스코어를 사용하지 않는다.

 

// classes, structs
class UrlTable { ...
class UrlTableTest { ...
struct UrlTableProperties { ...

// typedefs
typedef hash_map<UrlTableProperties, string> PropertiesMap   
///\*는 뭘까 정규식에 ID 이스케이프 아래 주소 달아놓음

// aliases
using PropertiesMap = hash_map<UrlTableProperties, string>;

// enums
enum UrlTableErrors { ...

 

 

변수 이름

소문자로 작성

공백은 언더스코어로하던가 없던가

 

string table_name; // 좋음 언더스코어

string tablename // 좋음 모두 소문자

 

string tableName // 나쁨 대문자 사용

클래스 데이터 멤버

데이터 멤버(인스턴스 변수 또는 멤버변수)

클래스 멤버변수는 이름 끝에 언더스코어를 추가해야함

string table_name_;

string tablename_;

 

구조체 변수

구조체 안에 있는 변수는 특별히 멤버이지만 언더스코어가 없음

 

전역 변수

전역변수는 제발 제한적으로 사용해야함

규칙은 없지만 g_처럼 접두어를 두어 구별이 쉽게하는게 좋음

 

상수 이름

k로 시작하는 대소문자가 섞인 이름을 사용

지역변수나 전역변수 상관없이 상수이면 이 규칙 사용

const int kDaysInAWeek = 7;

 

함수 이름

일반적인 함수들은 대소문자 사용

중간에 크래시 가능성이 있다고 예측되면 OrDie붙임

upper camelcase 와 Pascal case로 표현하는것같음

DeleteUrl()

AddTableEntry()

OpenFileOfDie()

 

접근자와 변경자는 해당 변수의 이름과 같은것을 사용

MyExcitingFunction()

MyExcitingMethod()

my_exciting_member_variable()

set_my_exciting_member_variable().

 

 

 

728x90