나는 적어도 종이에서 Joel Test에서 11 점을받는 회사에서 일하고 있습니다.
그러나 실제로는 예상 한 것만 큼 효과가 없으며 프로젝트는 반년 동안 DEFCON 1 에있었습니다. 자, 대부분의 동료들은 일요일 오후 6시에 집으로 돌아갈 수 있다면 행복합니다.
작동하지 않는 것으로 충격을받은 명백한 모범 사례 중 하나는 정적 분석 도구를 사용하는 것입니다. 이 프로젝트는 gcc -Wall 경고와 독점적이고 매우 비싼 "C / C ++" 도구를 추적 합니다.
Gcc 경고는 실제 (대부분의 경우 공격적이지 않은) 버그를 가리 키지 않는 것보다 자주 발생합니다.
그러나 독점 도구는 암시 적 캐스트 및 문자열 리터럴의 크기와 같은 항목을 나열합니다. 암시 적 캐스트도 스타일북에 블랙리스트에 올립니다.
표준 관행은 사람들이 모든 단일 경고를 종료하도록 압력을받는 것입니다. 여기에는 주로 오 탐지 경고가 제외되지만 문제는 아닙니다.
결과는 다음과 같습니다.
- 사람들은 프로세스에서 실제로 문제가되는 유형 불일치를 숨기는 모든 rvalue 및 모든 인수에 유형 캐스트를 추가합니다.
- 사람들은 하나의 버그로 소개하거나 다른 문제가있는 언어 기능을 사용합니다 (크기 대신에 strlen, strcpy 대신에 strncpy 등).
- 경고는 소리가 나지 않습니다.
- 버그 리포트가 시작됩니다.
요점은 원래 코드가 작동하고 언어 능력 내에서 안전하게 게임을하는 사람들이 작성하고 수정 한 것이 아니라는 것입니다.
이제이 회사를 구할 수 있다고 생각하지 않습니다. 그러나 "프로" 도구 를 사용하는 것이 더 좋고, 바람직하게 작동하는 방법이 있는지, 또는 내가 미래에 결정을 내리는 경우에 대비하여 완전히 사용하지 않아야 하는지를 알고 싶습니다.
모든 프로그래머가 실수를 할 수없는 천재라고 가정하지 않는 솔루션. 글쎄, 그렇다면 도구를 처음 사용할 필요가 없기 때문입니다.