2010-04-04 2 views
7

C/C++ 코드에서 코딩/명명 규칙을 확인하고 적용하도록 사용자 정의 할 수있는 스크립트/도구를 찾고 있습니다.C/C++ 코드의 코딩 및 명명 규칙 테스트

그것은 예를 들어 확인해야합니다 :

  • 코드 라인은 어떤 길이에 싸여있다.
  • 개인 변수 앞에 접두사가 붙습니다. _
  • 코드가 들여 쓰여집니다.
  • 모든 기능이 문서화되어 있습니다.

많은 내부 프로젝트 및 이름 지정 규칙이있는 경향이있는 고객이 외주 제작을하고 있습니다.

+4

당신은 확실히 어떤 변수가 _', 이름에 _' '사용에 대한 규칙이 복잡하다'로 시작하지 않으 : http://www.scitools.com/ 내 관리되는 래퍼 왜냐하면 컴파일러 작성자 등을 위해 좋은 숫자가 예약되어 있기 때문입니다 ... –

+3

@Matthieu : 밑줄 두 개 또는 밑줄과 대문자로 시작하는 이름 만 예약됩니다. 그의 개인 변수가 모두 밑줄과 소문자 (또는 밑줄과 숫자)로 시작하는 한 괜찮습니다. –

+2

@Matthieu :'_'을 사용하여 멤버 변수를 접두사로 붙이는 것은 꽤 일반적이며 문제가없는 규칙입니다. '_ '로 시작하는 식별자는 전역 이름 공간에서만 예약됩니다. 예 : http://publib.boulder.ibm.com/infocenter/lnxpcomp/v8v101/index.jsp?topic=/com.ibm.xlcpp8l.doc/language/ref/ident.htm –

답변

2

GNU indent 도구는 사용자가 원하는 것을 할 수 있습니다. 설명서를 확인할 수 있는지 여부는 알 수 있지만 나머지는 수행 할 수 있는지 확인하십시오.

+0

나는 GNU 들여 쓰기를 좋아하지만 코딩과 명명 규칙을 테스트하지 않는다. –

3

실제로 시간이 가치가 있는지 모르겠지만 실제로 원한다면 style guide을 확인하는 google's cpplint과 유사한 것을 시도해 볼 수 있습니다. .

개인적으로 철저한 리뷰와 특정 규칙을 따르는 사람들의 의지가 코드가 "들여 쓰기가 올바름"하고 변수 이름이 일관되게 유지되도록하는 것이 훨씬 더 좋습니다. 어쩌면 Google과 같은 문서를 작성하고 수용 가능한 스타일의 세부 사항을 설명하고 회사의 사람들이 받아 들여 그것을 사용하도록 할 수 있습니다.

왜 인간이 스크립트보다 나은가요? 답은 간단합니다. 사람들은 나중에 코드를 처리해야합니다. 그들은 쓰는 물건에 대해을 처리해야합니다. i과 같은 변수 이름은 스크립트에서는 괜찮지 만 내 눈에서 미끄러지지 않으려면 clientCount 인 경우 이름을 적절히 지정해야합니다. 스크립트를 사용하면 세상을 오히려 처리 할 수 ​​있습니다. :)

+0

공유해 주셔서 감사합니다. –

+0

cpplint는 변수 및 클래스 이름 지정 규칙을 확인하지 않는 것 같습니다. – cxwangyi

3

Universal Indent 멋진 GUI에서 들여 쓰기 도구를 많이 포함하고 있습니다. 만약 당신에게 맞는 것이 있다면 그것은 아마도 포함될 것입니다. (Here는 기능 목록입니다.) 모든 주요 OS가 지원됩니다. 보안 및 기타 다른 것들에 대한

보풀 : 다른 것들에 대한 검사 다른 도구도 있습니다

있습니다.

(나는 어떤 구체적인 생각을 모른다). KDE 소스 트리 (품질 보증 하위 디렉토리 ... 어딘가)의 깊이에 숨겨져 있기 때문에 찾아서 다운로드하고 번거롭게하는 번거 로움입니다. 하지만 한 번 작업하면 정말 멋집니다. 그것은 모든 종류의 귀여운 것들을 확인합니다. 사용되지 않는 Qt 헤더와 같습니다. 문자열 사용률이 잘못되었습니다. 사용자가 볼 수있는 문자열, 괴괴 망측 한 반복 구문, dot dot dot에 대한 tr() 상태가 누락되었습니다.

언급 한 모든 도구는 사용자 정의 할 수 있습니다.

1

기본적으로 다른 사람들이 말한 바 있습니다. 하지만 그 점을 지적 해주십시오.

  • 모든 기능이 문서화되어 있습니다.

도구로는 실제로 확인할 수 없습니다. 인간의 눈과 이해가 필요합니다. 나는 우리가 다음과 같은 것을 본 것으로 의심합니다 :

//------------------------------------------------------------- 
// Name: foo 
// Purpose: 
// Returns: integer 
//------------------------------------------------------------- 

즉, 아무 것도 알려주지 않는 보일러 판 "문서"입니다. 이런 종류의 일은 코드 리뷰에 의해서만 근절 될 수 있습니다.

0

많은 돈이있는 경우 Klocwork을 확인해야합니다. 그것은 스타일 가이드 라인에 따라 소스 코드를 검사 할 수있는 능력이 있습니다. 나는 다른 상점에서 그것을 사용했다. A 로트 설정하고 유지하는 작업이지만, 매우 강력합니다.

0

내가 이해할 수있는 4 C++ scitools 제작. Perl과 C API가 함께 제공됩니다. 그러나 나는 그것에 대한 관리 API를 작성했습니다. 이 도구를 사용하면 원시 코드를 리플렉션하는 것처럼 소스 코드를 스캔하고 분석 할 수 있습니다. 그것은 정말 당신이 변수, 클래스 등의 이름을 얻을 수 있도록 훌륭하게 작동합니다 ... 나는 개인적 으로이 API를 사용하여 직장에서 수십 개의 정적 분석 도구를 작성했습니다. 이 도구를 사용하여 모든 종류의 코딩 표준을 적용하는 것은 쉬운 일입니다. 특히은 변수 이름 표준입니다.

제품에 대한 링크 : http://understandapi.codeplex.com/