문제

어떤 특별한 기술을 사용할 수정할 때는 기존의 코드?

예를 들어:말 당신이 비즈니스 규칙을 수정 내부의 방법입니다.당신은 당신을 표시된 섹션은 특별한 의견?

어떤 코딩/코멘트 기준을 사용할 수정할 때입니까?

도움이 되었습니까?

해결책

당신은 다음과 같은 것을 의미합니다.

foo();  // changed by SecretWiz, 20090131

나는 이것을 추천하지 않을 것이다. 코드 파일을 방출하고 버전 제어 시스템이이를 처리해야합니다. 누가 무엇을 바꾸 었는지 추적합니다. 사용

svn blame

다른 팁

내가 뭔가를 결정하는 상대적으로 애매한 버그는 기본적으로 아무것도 없는 매우 분명한 이유를 썼는 코드는 방법은 내가 한 나는 일반적으로 코멘트를 추가 그것을 설명하도록,(또는 다른 사람을 경우,다른 사람이 적을 수정 나의 코드;-)지 않을 것 실수로 제거됩니다.

내가 항상 시도하는 한 가지는 코드 확인 주석에서 버그 추적 시스템에 버그 ID (또는 기능 요청 ID)를 넣는 것입니다. "자세한 내용은 Bugzilla 에서이 버그/기능에 대한 주석을 참조하십시오"와 같은 것을 추가합니다. 그곳에서 나는 그 코드 변경에 대한 이론적 근거를 설명 할 수 있습니다. 이는 기능 요청/버그 ID를 통해 모든 변경 또는 적절한 모든 중요한 변경 사항을 추적해야 함을 의미합니다. 나는 비즈니스 이유를 자세히 설명하기 위해 버그를 여러 번 만들었습니다.

아니요, 정말 나쁜 생각입니다. 소스 컨트롤은 모든 편집의 기록을 유지합니다. 다른 것을 원한다면 버그 추적 도구에 입력하십시오. 코드의 오래된 섹션을 언급하거나 다음과 같은 것들로 쓰레기를 쓰지 않아도됩니다.

// modified by A.B. on 11/23/99 to fix issue #123456

나는 코드베이스에서 이와 같은 의견을 보았고 몇 년 동안은 말이되지 않습니다. 도대체 AB는 누구이며 문제 #123456은 무엇입니까? 코드가 아직 여기에 있다면 누군가가 앞으로 이러한 변경 사항을 다시 출시 할 계획이라는 의미입니까?

이 의견은 가치가 없으며 코드를 혼란스럽게하는 역할을합니다.

수정중인 코드에서 메소드를 작성하고 호출하는 것이 좋습니다.
또한 메소드의 목적/의도를 제안하는 방법의 이름을 지정하십시오.

예를 들어 GiveRebateIfValidCoupon();

"코드를 수정할 때 사용하는 코딩/댓글 표준이 있습니까?"

예. 새로운 서브 클래스를 만드십시오. 드문 경우를 제외하고는 제대로 테스트하지 않았고 실제로 잘못된 경우를 제외하고 오래된 코드를 내버려 두십시오.

요구 사항 변경은 새로운 비즈니스 규칙을 처리하기 위해 서브 클래스 및 새로운 테스트를 추가하는 것을 의미합니다.

특별한 주석을 추가하는 유일한 시간은 수정이 일시적이어야하는 경우입니다. 이 상황에서 나는 나중에 찾을 수 있도록 표준 키워드 (예 : tempfix)로 표시합니다. 물론, 당신은 코드를 제거하거나 영구적으로 변경하는 것을 기억해야하지만 일부 프로젝트에서는 코드가 컴파일을 중지 한 후 만료 날짜를 지정할 수있는 매크로를 사용하여 시행했습니다.

그 외에는 소스 제어에 의존합니다.

코드는 귀하가 가진 코딩 표준이나 조직이 가지고있는 모든 것을 준수해야합니다.

따라서 코드가 수정되었다는 특별한 의견이 없어야합니다. 모두 또는 최소한 대부분의 코드는 조만간 수정됩니다.

주석 표준에 해당하지 않는 상속 된 코드가있는 경우, 항상 귀하로 주석을 추가하십시오. 리팩터 코드. 코드가 실제로 오래되고 문서화되지 않은 경우 자연스럽게 문서를 추가하는 것을 의미합니다.

코드를 수정하기 전에 코드를 이해하는 것이 좋습니다.

일반적으로 코드를 변경하고 소스 제어 체크인에서 내 의견을 작성합니다. 선택한 작업 추적 도구에서 작업이 구현 된 개정판을 참조 할 수 있습니다.

때로는 특정 기능이 사용자 요구 사항이 토론되는 방식에 따라 앞뒤로 변화, 이동, 이름 변경 등을 알고 있습니다. 이 특별한 경우에는 이전 버전을 유지하고 그냥 댓글을 달 것입니다. 그런 다음 기존 버전을 찾는 소스 컨트롤을 통해 슬로깅하는 대신 나중에 타협하는 것이 사소합니다. 이렇게하면 사용자가 다시 마음을 변경할 때 요구 사항이 이미 코드에 있어야하므로 코드가 다시 마음에 들기 때문에 다른 사람의 엉덩이를 절약 할 수 있습니다.

나는 여기에 많은 다른 사람들과 동의해야합니다. "코드에 무언가가 필요하지 않으면 제거하십시오." 특히 생산 코드에서 마지막으로 원하는 것은 많은 혼란입니다. 누군가가 유지 보수 의견을 읽고 혼란스러워하는 것보다 변화가 어떻게 작동하는지 알아내는 것이 훨씬 쉬울 수 있습니다.

나는 프로젝트에서 오래된 더 이상 사용되지 않은 코드를 유지했지만 시간이 지남에 따라 수천 노선 만 있었던 프로젝트는 결국 10,000 명 이상이어야했고 관리하기 어려웠습니다.

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