Tuesday, April 10, 2018

코딩/네이밍 컨벤션 툴

내 경우 c++은 구글 스타일 가이드, python은 pep8을 따르려고 한다.
다만, 주로 작업하는 언어가 boost python을 이용한 python + c++ 혼합이라 naming convention이 서로 충돌하기 때문에 c++, python 모두 naming convention은 pep8-naming convention으로 통일.

* Python을 쓰기 전에는 함수는 lower camelCase, 클래스는 upper CamelCase를 사용했는데, 생각해보니 opencv naming convention  영향을 많이 받은듯.

아래는 컨벤션 체크에 사용하려고 알아본 프로그램.

# c++
1-1 cpplint
https://github.com/cpplint/cpplint
* 구글 스타일 체크.
* 단점 :  네이밍 컨벤션 체크는 지원안함.

1-2 cncc
https://github.com/mapbox/cncc
* 굉장히 단순한 파이썬 코드+정규식 정의로 c++ 네이밍 컨벤션을 체크해줌.
* 정규식으로 style파일을 만들어 프로젝트에서 약속한 네이밍 컨벤션을 지정할 수 있음.
* cpplint를 보완해서 쓰면 좋음.

# python
2-1 flake8
* http://flake8.pycqa.org/en/latest/index.html#quickstart
* 코딩 컨벤션 / 네이밍 컨벤션 모두 체크해줌.