문제

얼마나 당신은 유지 오래된 코드 주석 코드에서는 기본?계약자는 계속 유지하는 기존의 코드에 코드를 기반으로 전환하여 comments.이것은 정말 실망하고 나는 그들이 단지 제거 된 코드 대신에 대한 주석니다.

가 유효한 이유 유지하는 기존의 코드에 코드를 기준으로 주석?나는 버전을 사용하여 제어 Visual Sourcesafe

도움이 되었습니까?

해결책

SVN 또는 CVS와 같은 것을 사용하는 경우 no. 나는 그들을 시야에 지울 것입니다. 그들은 코드를 읽기 쉽게 만듭니다.

코드를 읽고있는 프로그래머가 코드를 설명하고, 자세한 내용을 설명하는 등의 의견을 돕기 위해 의견이 있어야합니다.

다른 팁

내가 생각할 수있는 유효한 이유는이 (허구) 예입니다.

# removed the following test because this should work now that bug #12345 is fixed.
#assert a != 0
b = number / a

기본적으로 다른 개발자가 이유 때문에 제거 된 코드를 다시 표시하지 못하게합니다.

계약자 에게이 작업을 중단하라고 지시하십시오. 이것은 끔찍한 연습입니다.

코드 기반에 오래된 코드를 유지해야 할 이유는 없습니다. 그것은 방해가됩니다. 버전 제어 시스템은 각 파일의 기록을 보여줍니다.

오래된 코드를 유지하는 유일한 이유는 아마도 역사적 참조를위한 것일 수 있습니다 (아마도 이전 코드가 특히 이상한 일을 한 경우 현재 상황과 관련이있을 수 있습니다).

때때로 나는 일시적인 변화를 겪고 있다는 사실을 알고 코드를 언급 할 것입니다 (일시적으로 며칠 이내에 며칠 이내에) 다시 돌아갈 계획입니다.

편집 : 또 다른 관련 관행은 파일에 이름과 변경 날짜를 넣는 것입니다.

// 06/20/2009 - joe changed this #1245

이것도하지 마십시오. 당시 누가 변화를 한 사람을 보는 것이 가치있는 것처럼 보일지 모르지만 시간이 지남에 따라 실제로 가치가없고 코드를 막습니다.

소스 컨트롤을 사용하는 경우 사본이 소스 컨트롤에 준비되어 있으므로 이전 코드를 제거하고 다시 추가 해야하는 경우 기다리고 있습니다. 이전 코드가 있으면 위에서 언급 한대로 코드를 읽고 혼란을 겪는 기능이 줄어 듭니다. 또한 계약자를 사용하여 코드를 작성하는 경우 임금을 지불 할 때 코드를 작성하는 방법을 알려줍니다. 코딩 표준을 정의하고 방법, 속성 등의 이름을 개선하고 주석의 필요성을 모두 줄여야하는 의도에 의해 코드로 연결됩니다.

"얼마나 오래?"묻습니다. 사람들이 여전히 일하고있는 핫스팟이라면 한두 곳에 오래된 코드를 사용하여 기분이 상하지 않습니다.

어쩌면 그들은 아직 새 코드에 대해 확신하지 못할 수도 있습니다. 새 코드가 "완료 되었습니까?" 그것이해야 할대로 작성 되었습니까? 테스트를 통과합니까? 댓글을 달고 사양에 문서화되어 있습니까? 성능이 있어야합니까? (기존 코드와 새로운 코드를 가지고 있다고 생각할 수있는 가장 좋은 이유는 특정 사례 세트를 타이밍하거나 프로파일 링 할 때입니다.)

새 코드보다 바람직한 이전 코드에 대해 무엇이 있습니까?

계약자는 서두르고 있다고 느끼나요? 아니면 배전 전 제어 일의 오래된 습관일까요?

계약자에게 상기시켜 주면 소스 아페가 역사가 왜 그들이하고 있는지 물어볼 수 있으므로 코드를 댓글을 달라야합니다.

그들이 어떤 이유로 그것을 믿지 않을 수도 있습니다. 그 이유를 얻을 수 있다면 그들은주의를 기울일 수 있습니다. 우리가 몇 년 전에 VSS에서 이사했을 때 그것은 신뢰성과 확장 성 문제로 인해 노출되었을 수도 있다는 것을 알고 있습니다. VSS가 귀하의 요구에 적합하다는 것을 입증하거나 다른 소스 제어 솔루션을 조사 할 것이라고 말함으로써 (물론 예산이있는 경우) 이길 수 있습니다.

설득은 강요보다 낫습니다.

네, 눈에 띄게 핵무기. 개발자가 그것을 제거하는 것에 대해 확신하지 못한다는 것을 보여주는 것은 다른 가치를 부여하지 않습니다. 또는 소스 제어 소프트웨어를 사용하는 방법을 모릅니다.

기본적으로 2 가지 옵션 만 있습니다.

  1. 제거 - 일부 코드 저장소를 사용할 때. 저장소는 어떤 변경이 이루어 졌는지 정확하게 알려줄 것이므로 작업 코드에 오래된 댓글을 유지할 필요가 없으므로 쉬운 언어로 설명하지 않습니다.
  2. 반면에, 여러 가지 이유로 해당 코드를 유지하려면, 예를 들어, 플랫폼에서 작동하지 않았기 때문에 응용 프로그램에 부동 소수점 계산 코드를 주석으로 유지했습니다. 그러나 애플리케이션이 해당 플랫폼으로 제한되어 있기를 원하지 않기 때문에 코드를 유지 했으므로 응용 프로그램을 플로팅 포인트 계산을 지원하는 플랫폼으로 포트 할 때 노력을 절약 할 수 있습니다. 이것은 오래된 코드를 유지 해야하는 이유 중 하나 일 뿐이며 같은 배경을 가진 사람들에게 적용 할 수 있습니다.

그렇지 않으면 위에서 언급 한 것은 유일한 두 가지 선택입니다. 당신의 전화 !!

이전 코드를 유지하면 코드 전체를 읽는 것이 더 어려워집니다. 프로젝트를 위해 어떤 형태의 버전 제어가있는 한, 주석은 코드를 삭제해야합니다. 개정 제어가없고 설정할 수없는 경우 코드베이스의 일부가 아닌 파일에 이전 코드를 배치하는 것이 좋습니다.

나는 당신이 여기저기서 홀수 선뿐만 아니라 그들 자체의 좋은 알고리즘 인 것으로 보이는 중요한 코드 블록을 언급한다고 가정합니다.

이 경우, 코드를 유지하는 자연스러운 경향이 있습니다. 주석이 코드 검토의 형태로 작용할 때 오래된 변경을 한 경우 코드를 유지하는 경향이 있습니다. 최신 버전을 얻는 사람은 누구나 큰 변화를 보일 수 있으며 문제가 있으면 거기에 무엇이 있는지 훨씬 쉽게 볼 수 있습니다. 문제가 새 코드와 관련이 있다면 즉시 확인하는 매우 간단한 방법이 있습니다.

따라서, 첫 번째 개정에 대한 이전 코드를 주석 한 다음 코드가 다시 변경 될 때만 삭제하는 경향이 있습니다. 버그.

이 의견은 문서의 한 형태이며, '깨끗한'코딩의 순수한 이상을 위해이를 제거 할 필요가 없습니다. 더 이상 필요하지 않을 때 제거하고 가치가있는 동안 유지하십시오.

첫째,내가 말한 그것을 제거합니다.

그러나 나는 하나하지 않을 이유:는 동안 그것은 아직 거기에서 당신의 버전 관리는 의미하지 않는 사람은 그것을 볼 수 있습니다.당신이해야 할 수도 있습을 다시 볼,당신은 처음 있는 것을 알고 그것은 한 번 존재했다.때로는 당신이 만드는 수정이 미래 개발자를 볼 필요가 모두 새로운 방법을 제거하는 경우 기존의 방법,어떻게요 그것을 알고 있었는가?대부분의 사람들이지 않는 문서 버전에서 변경된 사항을 제어를 위해 충분히 잘 이런 종류의 문제입니다.

오래된 코드를 남겨 두어야 할 많은 이유가 있습니다. 기본적으로 - 일단 삭제되면 누군가가 실제로 그곳에 있다는 것을 기억하지 않는 한 효과적으로 사라졌습니다.

사악한 계약자로서 절차를 실질적으로 다시 작성하지 않는 한 코드를 삭제하지 않습니다.

내가 현재 소개하고있는 프로젝트는 또 다른 접근법을 사용합니다 - 어떤 종류의 타협 ... 당신이 결정할 때, 코드의 일부 부분을 더 이상 사용하지 않기로 결정하고, 단순히 댓글을 달고, 댓글을 달아주는 날짜를 작성하십시오. (예를 들어, NetBeans 또는 VisualStudio에서 가능하다면) #region Old_impl에 이전 코드를 삽입합니다. 효과? - 만일 예전 코드는 여전히 오래된 코드가 있습니다 - 사용하지 않은 코드 블록은 정확히 1 줄 (#region Old_impl)을 가져옵니다. 삭제하십시오.

중요한 상황의 경우 항상 SVN을 사용합니다.)

버전 제어 도구가 발생할 수있는 문제를 해결할 수 있기 때문에 주석 코드를 제거하겠다고 말하는 사람들은 바보입니다.

일단 쓸모없는 코드를 제거해야합니다.

"전적으로 나쁘지는 않았지만 아쉽게도 완전히 좋지 않았기 때문에 수정을 수정해야 했습니까? 여전히 프로덕션 소스를 꺼내서 이전 버전의 코드가 여전히 존재한다는 것을 알고 있다면, 어떤 텍스트 형태로, 복잡하고 어려운 일에 의지 할 필요가 없기 때문에 많은 시간을 절약 할 수 있습니다. -버전 제어 도구가 제공 할 수있는 "부분 소스 병합"및 "부분 소스 통합"을 사용하는 대조 및 오류 투기 프로세스.

이 현실을 좋아하지 않는 사람들은 반드시 "완전히 나쁘지는 않지만 완전히 좋지는 않지만 완전히 좋지는 않은 코드 만 제작하는 데 전적으로 경력을 쌓아 왔을 것입니다. 즉, 완전히 나쁘거나 완전히 완벽한 코드 만 생성합니다. . 그리고 우리는 모두 후자를 달성 할 확률이 얼마나 큰지 알고 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top