LOC는 아마도 가장 악용되는 지표 중 하나 일 수 있으며, 결과적으로 더 쓸모없는 코드 품질 측정 및 더 쓸모없는 프로그래밍 노력 측정 중 하나 일 수 있습니다.
예, 그것은 대담한 진술입니다. 아니요, 저는 당신이 내 요점을 증명하는 연구를하도록 지시 할 수 없습니다. 그러나 나는 당신이 작성한 코드의 양에 대해 걱정하기 시작할 때 잘못된 문제에 대해 걱정하고 있다는 어려운 경험을 가지고 말할 수 있습니다.
먼저 측정하거나 증명하려는 것이 무엇인지, 그리고이 증거가 관심의 대상이 아닌지, 또는보다 광범위한 품질 개선을 지원할 것인지, 그리고이 정보를 사용하여 팀으로부터 구매하기 위해 필요한 위치를 스스로에게 묻어 야합니다. 그것에 대해 뭔가를 할 수 있습니다.
LOC를 사용하는 경향이있는 것 중 하나는 약간의 온전한 점검입니다. 많은 코드를 작성하는 경우 LOC보다는 메소드 당 LOC 또는 클래스 당 LOC에 더 관심이 있습니다. 이러한 측정 은 코드가 얼마나 잘 팩토링되어야하는지에 대해 약간의 OCD를 느끼는 경우 추가 리팩토링해야한다는 지표 일 수 있습니다. 매우 큰 클래스는 수도 작은 몇 개의 클래스로 리팩토링 할 필요가 있고, 긴 여러 줄 방법이 할 수 있는 몇 가지 방법, 다른 클래스로 분류해야하거나 제거 할 수있는 몇 가지 복을 표시도 할 수있다. 나는 거기에 "할 수도있다"라는 단어를 여러 번 사용했습니다.
실제로 LOC는 가능한 표시기 만 제공하며 코드를 변경해야 할 수도 있습니다. 실제 질문은 코드가 필요에 따라 예상대로 동작하는지 여부입니다. 그렇다면 다음 질문은 코드를 쉽게 유지 관리 할 수 있는지 여부와 현재 또는 미래에 유지 보수 오버 헤드를 줄이기 위해 작업 코드를 변경할 시간이 있는지 여부입니다.
종종 많은 코드는 나중에 유지 관리해야 할 것이 많지만 때로는 잘 짜여진 코드조차 수백 줄의 코드로 확장 될 수 있으며, 때로는 하루에 수백 줄의 코드를 작성하는 경우도 있습니다. 그러나 경험에 따르면 매일 수백 줄의 새로운 코드가 출력되면 많은 코드가 부적절하게 잘라 다른 곳에서 붙여 넣어 져 자체적으로 문제가 발생할 위험이 있습니다. 복제와 유지 보수가 보장되는 것은 아니지만, 다시 한 번 보장 할 수는 없습니다. 따라서 현재 진행중인 작업이 어떻게 완료되었는지에 따라 제 경험과 본능이 무엇을 말하는지에 의존하는 경향이 있습니다.
IMHO 질문에 제기 된 딜레마를 피하는 가장 좋은 방법은 LOC를 잊고 항상 리팩터링하는 것입니다. 먼저 코드 테스트를 작성하고, 실패로 구현하고, 리 팩터를 전달한 다음 리팩토링 된 것을보고 코드를 개선하십시오. 당신은 이미 작업을 재확인했다는 것을 알고 작업을 떠날 것이고, 앞으로 자신을 다시 추측하는 것에 대해 걱정하지 않을 것입니다. 사실, 앞에서 설명한대로 테스트 우선 접근 방식을 사용하는 경우 완성 된 코드에서 LOC / 일 측정을 수행하면 측정 된 양의 3-5 배를 작성했으며 실제로는 계속해서 리팩토링에 의해 숨겨져 있습니다. 노력.