코딩 표준에 무엇이 있어야합니까? [닫은] 코딩 표준에는 무엇이 있어야합니까? 코드에 필요한 것. 코드에 없어야

좋은 (읽기 : 유용한) 코딩 표준에는 무엇이 있어야합니까?

  • 코드에 필요한 것.
  • 코드에 없어야 할 것들.
  • 코딩 표준에 언어, 컴파일러 또는 코드 포맷터가 시행하는 것들에 대한 정의가 포함되어야합니까?
  • 순환 복잡성, 파일 당 라인 등과 같은 메트릭은 어떻습니까?


답변

모든 요구 사항에 대한 이유. 이런 식으로 표준을 따르는 것은 일종의화물 컬트가되지 않으며 사람들은 그 이유가 더 이상 적용되지 않으면 표준을 변경하거나 그 이유가 명확하게 적용되지 않는 특정 경우에 표준을 위반하는 것이 좋다는 것을 알고 있습니다 .


답변

탭 대 공백! 동료 중 하나가 실수로 저장소로 이동하는 공간에 많은 탭을 커밋하면 미친 업데이트가 발생합니다.


답변

명명 규칙

편집 : 이것은 명명 규칙이 아니라 명명 지침을 의미합니다.

예를 들어, Guideline은입니다 All boolean values should begin with Is/Can/Has/etc when possible. 규칙은All boolean values must start with Is


답변

그룹의 코딩 표준에는 반드시 해결해야하는 경고 및 오류에 대한 컴파일러 옵션 이 포함 되어야합니다.

프로그래머는 자신의 코드에 대해 경고를 자유롭게 늘릴 수 있지만 다른 사람의 코드를 읽고 작업해도 컴파일러에서 얻은 출력이 어지럽히 지 않도록 기준이 있어야합니다.

그러한 표준은 또한 다른 규정을 따르지 않는 예외적 인 코드가있는 경우 프로그래머가 사례별로 이러한 경고를 비활성화 할 수있는 방법을 다루어야합니다.


답변

내가 좋아하는 일부 표준 (많은 표준이 있다는 것을 알고 있지만 그것이 내가 선호하는 표준입니다) :

  • 80 % 단위 테스트 범위
  • 코드의 전체 소유권 (컴파일러가 아닌 팀 동료가 읽을 코드 작성)
  • 의견 쓰기 새로 온 사람에게 할 말을 쓰십시오.
  • 단순하게 유지

답변

표준을 사용하면 코드를 처음 작성하는 약간의 도움을 코딩, 그들은 도움이 많은 당신, 또는 교체, 2 년 후 코드를 업데이트해야합니다.

이상적인 표준은 코드의 임의의 페이지로 이동할 수있는 코드로 연결되며 첫 번째 판독에서 수행중인 작업을 정확하게 이해합니다.

  • 이름은 조작중인 데이터를 명확하게 설명합니다.
  • 괄호는 제어 흐름을 명확하게하고
  • 주석은 명백하지 않은 알고리즘 등을 설명합니다.

반면에 임의의 표준이 너무 많으면 코드 작성 흐름이 중단 될 수 있습니다. 따라서 제안 된 코딩 규칙의 모든 항목은 다음 두 가지 기준에 따라 평가되어야한다고 생각합니다.

  • 이 규칙은 코드가 올바른지 확인하는 데 도움이됩니까 ?
  • 이 규칙은 코드를 명확하게 하는 데 도움이됩니까 ?

둘 다 참이 아닌 경우 항목은 임의적이며 아마도 불필요합니다


내가 쓰는 표준에 다음 사항을 포함시킬 것입니다.

선명도 :

  • 파일 구성 : 파일에서 항목의 고정 순서를 지정하면 팀이 다른 파일을 쉽게 탐색 할 수 있습니다. #defines 또는 구조 정의를 찾기 위해 사냥 할 필요는 없습니다.

  • 명명 규칙 : 일관된 명명은 가독성을 향상시킵니다. 그러나 너무 많은 규칙을 과도하게 지정하면 쓰기 가능성이 떨어집니다.

  • 코드 구조. 중괄호 배치, 들여 쓰기 수준, 공백과 탭 등. 예, 이것은 개인적인 취향을 강력하게 할 수 있지만 목표는 명확한 코드입니다. 팀에 가장 적합한 옵션을 찾아서 고수하십시오.

정확성을 위해 :

  • 문제 유형별 모범 사례 : 메모리 할당, 동시성 또는 이식성에 대한 규칙.

  • “정확한 정확성”, static및의 적절한 사용 volatile

  • 전 처리기 매크로 및 기타 쉽게 악용 될 수있는 언어 기능에 대한 규칙.


답변

사람들의 생각을 멈추게하는 부정적인 제한보다는 사람들을 생각하게하는 영감을주는 실용적인 아이디어.

그렇지 않으면 바나나를 따라가는 것을 두려워하는 코드 원숭이가 생깁니다 .