좋은 (읽기 : 유용한) 코딩 표준에는 무엇이 있어야합니까?
- 코드에 필요한 것.
- 코드에 없어야 할 것들.
- 코딩 표준에 언어, 컴파일러 또는 코드 포맷터가 시행하는 것들에 대한 정의가 포함되어야합니까?
- 순환 복잡성, 파일 당 라인 등과 같은 메트릭은 어떻습니까?
답변
모든 요구 사항에 대한 이유. 이런 식으로 표준을 따르는 것은 일종의화물 컬트가되지 않으며 사람들은 그 이유가 더 이상 적용되지 않으면 표준을 변경하거나 그 이유가 명확하게 적용되지 않는 특정 경우에 표준을 위반하는 것이 좋다는 것을 알고 있습니다 .
답변
탭 대 공백! 동료 중 하나가 실수로 저장소로 이동하는 공간에 많은 탭을 커밋하면 미친 업데이트가 발생합니다.
답변
명명 규칙
편집 : 이것은 명명 규칙이 아니라 명명 지침을 의미합니다.
예를 들어, 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
등 -
전 처리기 매크로 및 기타 쉽게 악용 될 수있는 언어 기능에 대한 규칙.