Google c++ style guide
Naming
- CamelCase
- 클래스와 함수는 CamelCase를 사용합니다.
- 대소문자로 띄어쓰기를 구분합니다.
- snake_case
- 변수나 클래스의 필드 이름들은 모두 snake_case를 사용합니다.
- 모두 소문자를 사용하고 띄어쓰기를 _로 구분합니다.
- 예외
- enum 필드의 경우 KEBAB_CASE를 사용합니다.
- 모두 대문자를 사용하고 띄어쓰기를 _로 구분합니다.
Namespace
- 모든 코드는 namespace를 사용합니다.
- 헤더 파일에 using namespace를 사용하지 않습니다.
Test
- 모든 코드는 테스트 코드를 작성합니다.
- 테스트 코드는 google test를 사용합니다. (<gtest/gtest.h>)
클래스 관련
- struct
- struct는 간단한 데이터 컨테이너로 사용합니다. (POD: Plain Old Data)
- struct로 표현되는 데이터에는 어떠한 로직도 구현하지 않고, 필요한 경우 무조건 class를 사용합니다.
- 상속(Inheritance) vs 구성(Composition)
- 되도록 상속보다는 구성을 사용합니다.
- 명확한 is-a 관계가 있는 경우에만 상속을 사용합니다.
함수 관련
- out parameter는 되도록 사용하지 않습니다. (포인터를 전달해 결과를 반환하는 방식)
- 결과를 설정하는 함수 보다는 결과를 반환하는 함수를 사용합니다.
clang-format
- 전체적인 코드 스타일은 clang-format » GoogleStyle 옵션을 사용합니다.
reference
This post is licensed under CC BY 4.0 by the author.