https://cafe.naver.com/openrt/24436
오픈소스 커뮤니티들에서 가장 많이 사용되고 있는 인기 있는 스타일을 바탕으로 한 자체 가이드라인이 존재한다. 협업을 위해 따르자.
(1)파일 이름: 모두 소문자로 snake_case
규칙대로
(2)ROS
인터페이스 류 파일: CamelCased
규칙대로
(3)특정 목적에 의해 만들어지는 파일
Google C++ Style Guide + ROS에 맞게 약간의 수정
(1)기본 규칙
-C++14 Standard
(2)라인 길이
-최대 100 문자
(3)이름 규칙 (Naming)
-CamelCased
, snake_case
, ALL_CAPITALS
만 사용
-CamelCased: 타입, 클래스, 구조체, 열거형
-snakecase: 파일, 패키지, 인터페이스, 네임스페이스, 변수, 함수, 메소드
-ALL_CAPITALS: 상수, 매크로
-소스 파일: .cpp
확장자
-헤더 파일은 .hpp
확장자
-전역변수(global variable): 되도록 사용X, 사용할 경우`g 접두어 붙이기 -클래스 멤버 변수(class member variable): 마지막에 밑줄(
_`) 붙이기
(4)공백 문자(Spaces) vs. 탭(Tabs)
-기본 들여쓰기(indent): 공백 문자(space)2개
(탭(tab)문자 사용 금지)
-Class
의 public:
, protected:
, private:
: 들여쓰기를 사용X
(5)괄호(Brace)
-모든 if, else, do, while, for 구문: 괄호({}) 사용
(6)주석(Comments)
-문서 주석: /* */
-구현 주석: //
(7)린터(Linters)
-C++ 코드 스타일의 자동 오류 검출: ament_cpplint, ament_uncrustify
-정적 코드 분석: ament_cppcheck
(8)기타
-Boost 라이브러리의 사용은 가능한 피하자
-포인트 구문: char * c;
처럼 사용하자 (char* c;
이나 char *c;
처럼 사용하지 않는다.)
-중첩 템플릿: set<list<string>>
처럼 사용하자 (set<list<string> >
또는 set< list<string> >
처럼 사용하지 않는다.)
Python Enhancement Proposals (PEPs)의 PEP 8을 준수
(1)기본 규칙
-Python 3(Python 3.5 이상)대로
(2)라인 길이
-최대 100 문자
(3)이름 규칙 (Naming)
-CamelCased
, snake_case
, ALL_CAPITALS
만 사용
-CamelCased: 타입, 클래스
-snake_case: 파일, 패키지, 인터페이스, 모듈, 변수, 함수, 메소드
-ALL_CAPITALS: 상수
(4)공백 문자(Spaces) vs. 탭(Tabs)
-기본 들여쓰기(indent): 공백 문자(space) 4개
사용(탭(tab)문자 사용 금지)
(5)괄호(Brace)
-자료형에 따라 적절한 괄호(대괄호[ ]
,중괄호{ }
,소괄호( )
) 사용
-list=[]
-dictionary={'age': 30, 'name': '홍길동'}
-tupple=()
(6)주석(Comments)
-문서 주석:"""
-구현 주석: #
(7)린터(Linters)
-ament_flake8
(8)기타
-모든 문자는 큰 따옴표("
)가 아닌 작은 따옴표('
)를 사용