[ROS2]023: ROS 프로그래밍 규칙(코드 스타일)

maroo·2022년 7월 23일
0

ROS2

목록 보기
13/39
post-custom-banner

https://cafe.naver.com/openrt/24436

1. 코드 스타일 가이드

오픈소스 커뮤니티들에서 가장 많이 사용되고 있는 인기 있는 스타일을 바탕으로 한 자체 가이드라인이 존재한다. 협업을 위해 따르자.

2. 기본 이름 규칙

(1)파일 이름: 모두 소문자로 snake_case 규칙대로
(2)ROS 인터페이스 류 파일: CamelCased 규칙대로
(3)특정 목적에 의해 만들어지는 파일

  • package.xml
  • CMakeLists.txt
  • README.md
  • LICENSE
  • CHANGELOG.rst
  • .gitignore
  • .travis.yml
  • *.repos

3. C++ style

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)문자 사용 금지)
-Classpublic:, 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> >처럼 사용하지 않는다.)

4. Python Style

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)기타
-모든 문자는 큰 따옴표(")가 아닌 작은 따옴표(')를 사용

profile
할수이따 ~
post-custom-banner

0개의 댓글