2010-03-12 4 views
31

C++에는 MFC, 부스트, Google 등 여러 유형의 스타일이 있습니다.이 스타일을 조사하고 어느 것이 내 프로젝트에 가장 적합한 지 결정하고 싶습니다. 공식 스타일 가이드 북을 읽고 싶습니다. . 누구나 그들이 일반적으로 사용하는 공식 가이드가 있습니까?공식 스타일 가이드에 대한 링크

여기 두 가지가 있습니다. 좀 더있다 내기 :

참고 : 이것은 가장 적합한 스타일에 관한 토론이 아니다 ... 공식 스타일 만 전화는 사람들이 현재 사용하도록 안내합니다. 당신이 싫어하는 다른 스타일 가이드를 강타하는 것을 삼가하십시오.

사이드 질문 : 소스 코드를 검사하고 주어진 스타일 가이드와 일치하는지 확인할 수있는 유용한 도구가 있습니까?

+7

커뮤니티 위키? – Francesco

+1

나는 stackoverflow가 어떻게 모순되는지 잘 알고있다. 이 주제는 "오프 토픽"으로 끝나고 C++ 책 스레드는 수천 개의 upvotes를 가지고 있습니다 : https://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list – JohnJohn

답변

16

아니 가이드 라인 자체 코딩,하지만이 거대한 유용 :

1

사이드 질문 : 저는 사용중인 스타일을 분석하는 도구를 개인적으로 알지 못하지만 제공된 스타일 가이드로 소스를 다시 포맷하는 도구가 있습니다. 마음에 떠오르는 것은 Artistic Style입니다.

9

"공식적인"스타일 가이드는 없습니다. C++ 표준은 완전히 스타일에 대해 침묵합니다. 두 명의 고도로 숙련 된 C++ 녀석에 의한 주제에 관한 한 책은 C++ Coding Standards (Sutter & Alexandrescu)입니다.

4

C++에는 공식 스타일이 필요 없으며 필요하지 않습니다. 많은 조직에서 일종의 기업의 모양과 느낌을 유지하려고 노력하는 데 기여한 사람에게 스타일 가이드를 적용합니다. 이 중 일부는 훌륭한 조언을 담고 있지만, 많은 사람들은 1980 년대 완전히 다른 언어를 쓰는 누군가에게 좋은 생각처럼 보이는 이상한 장식을 추가하도록 강요합니다. 당신은 와플 사이에 찾을 수 있습니다

유일한 정말 유용한 조언은 다음과 같습니다

  • 당신 때문에 (예 : 접근 및 공장 등) 종류, 개체 및 기능의 일부 종류를 구별 할 수있는 일관된 방법을 정의합니다 ' 이름을 보지 않고 (예를 들어) Thing thing = GetThing();을 써야합니다.
  • 이름을 밑줄로 시작하지 마십시오. 이것은 어떤 경우에는 금지되어 있으며, 할 수있을 때 정확하게 걱정하는 것보다 더 간단하고 읽기 쉽습니다.
  • 몇 년 안에 코드를 읽고 유지해야하는 가난한 사람 (아마도 너)에 대해 생각해보십시오.
  • 간단하게 유지하십시오.
  • 뇌를 사용하십시오.
4

는 또한 C++로 좋은 코딩을위한 몇 가지 팁을 작성했습니다 :

표준 코드의 비즈니스 가치를 증가시킬 수 있습니다 코딩의 목표 : http://www.ivanism.com/Articles/CodingStandards.html

게시물이 시작됩니다. 가장 확실한 (그리고 실제로 가장 중요한) 방법은 코드를 강력하고 결함이 적은 것으로 만드는 것입니다. 똑같이 중요하지만보다 미세한 목표는 코더 마찰과 유지 보수성을 줄이는 것입니다. 따라서, 표준은 최소한으로 유지되어야합니다 - 실제로 따라갈 수있을만큼 단순하고 기억하기에 충분히 중요합니다.

새 표준 소스 파일을 작성할 때이 표준을 사용해야합니다. 기존 파일을 변경해야 할 때 표준으로 가져올 적절한시기입니다. 그러나 파일을 편집하여 표준에 맞추는 것은 결코 좋은시기가 아닙니다. 파산이 아니라면 "고칠 것"을하지 말고 항상 "일하게하십시오". 당신은 내가 고전적인 "종교"지점에 접촉하지 않는 것을 알 수 있습니다

: 파일 내에서

tabs vs. spaces 
indentation style 
curly brace style 
etc... 

일관성이 중요하고 가독성을 향상시킨다. 그러나 코더가 스스로 표현할 수있게하는 것도 중요합니다. 따라서 파일을 편집하는 경우 해당 파일의 종교를 따르거나 전체 파일을 새롭고 일관된 형식으로 변환하십시오. 전체 파일을 변환하는 경우 효과적으로 소유권을 얻고 있으므로 이동중인 사람이 될 준비를하거나 그대로 두십시오.

0

부차적 인 질문에 대해서는 정적 분석 도구이 필요합니다. 비싸고 거대한 도구는 Klocwork입니다. 몇 군데 상점에서 사용했고 스타일 문제에 대한 경고를 내도록 설정할 수 있습니다. 단일 사용자에게 권장하지 않습니다. 그것은 기업 환경을위한 것입니다. 그들은 개인을 위해 버전을 제거했을 지 모르지만.

Google에 정적 분석 도구를 기억하십시오.

3

다른 답변은 그 당시에는 공식적인 스타일 가이드가 없음을 나타냅니다.

그러나 2015 년, 비얀 스트로브 스트 룹 announced the C++ Core Guidelines, 표준 C++ 재단 스트로브 스트 룹 자신이 주도하고 출판 권위있는 현대 C에 대한 가이드 라인 ++ 코드를 구축 할 수있는 오픈 소스 프로젝트 : 이것에

관련성에 http://github.com/isocpp/CppCoreGuidelines

을 질문, 핵심 지침은 또한 link to other guidelines, 덧글이 추가되었습니다. 자주 추천되는 Google C++ 스타일 가이드에 관해서는 다음과 같이 말합니다.

C++ 03 및 이전 코드 기반에 맞게 조정되었습니다. Google 전문가는 현재이 가이드 라인을 개선하기 위해 적극적으로 협력하고 있으며 이러한 가이드 라인을 현대적으로 권장 할 수 있도록 노력을 병합하기를 희망합니다.