내가 알 수있는 한, 당신을 혼란스럽게 한 진술은 가이드 라인을 가능한 한 많은 사람들에게 제공하기 위해 만들어진 실질적인 타협입니다. 특정 상황에 따라 (아래에 자세히 설명되어 있음) 상황을 조정하고 지침을보다 효율적으로 사용할 수있는 옵션이있을 수 있습니다.
알다시피, 지침은 위반을 정당화하기위한 수단으로 "강력한 개인 이의 제기"를 참조합니다. 이러한 이의 제기는 특히 숙련 된 개발자가 제공하는 경우 가볍게 무시할 것이 아닙니다.
이러한 반대 의견 은 틀릴 수도 있습니다. 그러나 여러분은 생각하지만 (매우 큰 것입니다) 일반적으로 또는 특정 프로젝트의 맥락에서 특정 규칙이 잘못되었음을 나타낼 수도 있습니다 (규칙 불일치의 한 예는 성능이 중요한 코드에 대한 자세한 로깅).
현명한 스타일 가이드는 위의 내용을 고려해야하고 스스로 조정할 필요를 수용해야한다고 생각합니다. 이제 여러분을 혼란스럽게했던 가이드가 효율적이고 매끄러운 프로세스와 환경을 갖춘 성숙한 팀 만을 대상으로한다면 다음과 같이 명확 하게 설명 할 수 있습니다.
챌린지가 제기 될 때까지 규칙을 엄격히 준수해야합니다.이 경우 챌린지 된 규칙은 챌린지를 거부하거나 수락하고 규칙에 맞게 조정하여 해결 될 때까지 무시해야합니다.
당신은 위의 내용을 더 좋아할 수도 있고, 모든 사람에게 그런 식으로되기를 원할 수도 있지만, "도전이 제기 / 지속적으로 무시 / 조정"되는 부분을 자세히 살펴보고 구현 방법을 스스로에게 물어보십시오. 프로젝트와 팀에 따라 시간이 얼마나 걸릴 수 있는지 자문 해보십시오 . 한 시간이 걸리면 괜찮습니까? 하루, 일주일 또는 한 달이 걸리면 어떻게 되나요?
도전과 무시까지 해결 된 접근법은 프로젝트의 지침으로 제시 될 경우 남용의 폭이 넓어 질 수 있습니다. "그렇습니다. 우리는 여러분의 의견을 듣고, 가이드가 말한대로하겠습니다. 먼저,이 챌린지 양식을 작성하고 CEO / CFO / CTO 승인을 받으십시오. 1 ~ 2 주 정도 걸릴 것으로 예상됩니다. 그 후 코드 검사가 업데이트 될 때까지 기다리십시오. "일주일 또는 2 주가 소요될 수 있습니다. 한편, 성능 결정 코드는 모든 레지스터 이동에 대해 올바른 형식의 로깅 명령문을 구토해야합니다."
가이드 작성자의 마음을 읽을 수는 없지만 위에서 설명한 것처럼 혼란을 정당화하기 위해 가이드를 사용하지 않으려한다고 가정하는 것이 합리적입니다. 이러한 관점에서 본 가이드가 어떠한 시행도하지 않는다고 명확하게 진술하는 것이 더 안전합니다. 그러나이 방법은 서툴지 만, 여전히 광범위한 팀과 프로젝트에 사용할 수 있습니다. 이러한 넓은 허용 범위는 더 성숙하고 효율적인 팀이 개발자의 생산성을 손상시키지 않고 합리적으로 범위를 좁힐 수있는 기회를 제공 할 것으로 예상됩니다.
특정 사례에 적용하여 팀의 코딩 스타일 문서를 작성하고 스타일이 일치하지 않으면 코드 검토에 실패합니다. 개발자가 특정 규칙에 이의를 제기하고 무시하는 데 걸리는 시간을 계산해야한다고 생각합니다. 해결하고 해상도에 따라 변경하거나 복구하십시오.
개발 워크 플로우에 많은 장애를 유발하지 않고이 프로세스를 작동시킬 수있는 방법을 알아 내면, 혼란스럽고 "충분히 울면 위반"대신 공식화되고 추적하기 쉬운 도전 / 해결 방법을 고려해 볼 가치가 있습니다.
부수적으로, 나는 당신이 다른 의견 에서 "코딩 스타일이 이상적이라고 가정하고 그렇지 않은 경우"라고 쓴 것을 언급하고 싶다 .
이것은 실제로 위험한 가정입니다. 나는 광대 한 경험을 가지고 그것에 대해 모든 것을 알고 있다고 생각하는 곳에서 두 번의 프로젝트로 내 코를 부러 뜨 렸습니다. 나는 그것을 떨어 뜨릴 것을 강력히 권장합니다. 스타일 가이드에 실수가있을 수 있다고 가정하고 그러한 실수가 발견 될 경우 어떻게해야할지 생각하는 것이 더 안전합니다.