나는 최근에 그들이 실제 코드를 작성하기 위해 한 시간을 보인 면접을 가졌습니다. 아마도 100 줄 미만의 큰 금액은 아니 었습니다. 약 45 분 후, 나는 그것을 컴파일하고 실행하여 작동시켰다. 컴파일 오류와 몇 가지 사소한 버그를 해결하는 데 5-10 분이 걸렸을 수도 있지만 전반적으로 매우 매끄 럽습니다. (실수로 나는 그들로부터 제안을 받았다.)
그러나 완성 된 코드를 넘겨 준 후 인터뷰 담당자는 내가 잘못한 것은 "내가 따라갈 때 컴파일하지 않는 것"이라고 말했다. 나는 그 차이가 무엇인지 물었고, 그는 "코드를 완성하고 제 시간에 컴파일하지 않았다면 무엇을 했을까?"라고 말했다.
주어진 길이의 코드에 대해 "컴파일하기 위해 코드를 얻는 중"은 일반적으로 일정한 수의 컴파일 오류를 수정하고 상당히 일정한 시간이 걸리기 때문에 잘못된 인수입니다. 코드 작성을 마치거나 코딩 시간과 함께 인터리브하는 경우. 누락 된 세미콜론을 검색하기 위해 코딩을 중단하면 효율성이 떨어질 수 있습니다. 파생 클래스의 가상 함수 등과 같은 엣지 케이스 주변의 모호한 점을 실험하는 극단적 인 상황을 제외하고 숙련 된 개발자가 작성한 코드가 컴파일되지 않고 가끔 타이핑 오류가 발생하지 않을 것으로 예상하는 것이 합리적입니다. 그렇지 않으면
또 다른 유사한 사건에서, 인터뷰에서 불완전한 코드베이스가 주어졌으며 완료하기 위해 코드베이스를 완성하고 필요한 수정을 요청했습니다. 기존 코드를 살펴보면서 시작한 다음 몇 분 (코드를보기 전에도) 후에 면접관은 충분하다고 말했습니다. 내가 그에게 무엇을했는지 물었을 때 (즉, "내가 잘못한 일") 즉시 컴파일 할 코드를 얻어서 시작했을 것이라고 말했다.
그게 왜 관련이 있습니까? 내 의견과 내 경험에 따르면, 코드 컴파일 조각은 기본적으로 임의적이며 세미콜론이 없는지 여부와 같은 것을 포함하며 기본 프로그램의 정확성과 거의 관련이 없습니다. (컴파일에 집중하는 것은 문법을 확인하기 위해 교정하지 않고 맞춤법 검사를 통해 기사를 실행하는 것과 같습니다.)
불완전한 코드 조각을 주면 가장 먼저 읽을 것입니다. 코드가 무엇을하고 알고리즘이 올바른지 알 때까지 컴파일하려고 시도조차하지 않습니다.
어쨌든, 이들은 최근에 발생한 사건 일 뿐이지 만 일반적으로 많은 개발자가 코드를 컴파일 할 때 코드를 컴파일하는 것에 대해 이야기하는 것을 들었습니다. 코드 를 테스트 할 때 얻을 수있는 이점을 이해 하지만 컴파일하는 이유는 무엇입니까?
그래서 내 질문은 이것입니다 : 내가 놓친 것이 있습니까? 실제로 컴파일 할 때 이점이 있습니까? 아니면 소프트웨어 커뮤니티에서 코드를 자주 컴파일해야한다는 신화가 있습니까?