문제

의견에 대한 모범 사례는 무엇입니까? 언제 사용해야하고 무엇을 포함해야합니까? 아니면 의견이 필요합니까?

도움이 되었습니까?

해결책

의견은 유지 관리에 필수적입니다. 기억해야 할 가장 중요한 점은 설명하는 것입니다 당신은 무언가를하고 있습니다 무엇 당신은 일을.

다른 팁

학교에서 규칙은 모든 것을 댓글을 달아서 의견이 코드보다 중요합니다. 나는 그것이 바보라고 생각합니다.

나는 코드 자체가 "어떻게"를 설명하는 "방법"이 아니라 코드 뒤에 "왜"를 문서화하는 데 주석을 사용해야한다고 생각합니다. 왜 그런지 명확하지 않은 조작이 있다면, 그것은 의견에 좋은 장소입니다.

Todo 's와 Fixme's는 때때로 주석에 빠지지 만 이상적으로는 소스 코드 관리 및 버그 추적 도구로 이동해야합니다.

내가 쓸모없는 댓글에 대한 댓글이 마음에 들지 않는 한 가지 예외는 문서 생성기에 대한 것이며,이 경우 모든 공개 클래스와 API 인터페이스는 문서를 얻을 수있을 정도로 최소한 주석을 달아야합니다. 생성.

이상적으로 귀하의 프로그램은 의견이 아닌 코드에서 독자와 의사 소통 할 수 있습니다. 다른 프로그래머가 이해할 수있는 소프트웨어를 작성하는 능력은 내 의견으로는 최고의 프로그래머를 평균과 분리합니다. 일반적으로 귀하 또는 귀하의 동료가 의견없이 코드 섹션을 이해할 수없는 경우, 이는 "코드 냄새"이며 리팩토링은 순서대로되어야합니다. 그러나 평균 개발자를 안내하기위한 몇 가지 의견이 반드시 나쁘지는 않다는 일부 고풍 도서관 또는 기타 통합이있을 것입니다.

대답은 종종 : 그것은 달라집니다. 의견을 쓴 이유는 의견이 좋든 나쁘 든 결정에 매우 중요하다고 생각합니다. 의견에는 몇 가지 가능한 이유가 있습니다.

  • 구조를 더 명확하게하기 위해 (즉, 어느 루프가 여기서 끝났는지)

나쁜: 이것은 가능한 코드 냄새처럼 보입니다. 코드가 왜 그렇게 복잡하여이를 해결하기 위해 의견이 필요합니까?

  • 설명하기 위해 코드가하는 일

아주 나쁜: 이것은 내 생각에 위험합니다. 나중에 코드를 변경하고 주석을 잊어 버린 경우가 종종 있습니다. 이제 댓글이 잘못되었습니다. 이것은 매우 나쁩니다.

  • 해결 방법/버그 문제를 나타냅니다

좋은: 때로는 문제에 대한 해결책이 명확 해 보이지만 간단한 접근 방식에는 문제가 있습니다. 문제를 해결하면이 접근법이 선택된 이유를 추가하는 것이 도움이 될 수 있습니다. 그렇지 않으면 다른 프로그래머는 나중에 코드를 '최적화'하고 버그를 다시 소개한다고 생각할 수 있습니다. 데비안 Openssl-Problem에 대해 생각해보십시오. 데비안 개발자들은 단위화 된 변수를 제거했습니다. 일반적으로 단위화 된 변수는 문제입니다.이 경우 무작위성에 필요했습니다. 코드 의견은이를 해결하는 데 도움이되었을 것입니다.

  • 문서화 용

좋은: 일부 문서는 특별 형식의 주석 (예 : Javadoc)에서 생성 될 수 있습니다. 공개 API를 문서화하는 것이 도움이됩니다. 중요한 것은 문서에 구현이 아니라 코드의 의도가 포함되어 있음을 기억하는 것입니다. 따라서 '방법이 필요한 이유 (그리고 어떻게 사용합니까)'또는 방법은 무엇입니까?

나는 댓글을 제거하려는 새로운 운동이 나쁘다고 생각합니다. 그 이유는 의견이 필요하지 않은 코드를 쉽게 쓰고 있다고 생각하는 많은 프로그래머가 있습니다. 그러나 실제로는 그렇지 않습니다.

다른 사람들 코드의 몇 퍼센트를 읽고 즉시 이해합니까? 아마도 나는 너무 많은 클래식 ASP, Perl 및 C ++를 읽었을 수도 있지만 내가 읽은 대부분의 내용은 탈지하기가 까다로울 것입니다.

누군가의 코드를 읽은 적이 있습니까? 그들이 글을 쓰는 동안 생각했다고 생각하십니까? 이것은 쓰레기이지만 나는 정말로 신경 쓰지 않습니다. 그들은 아마도 오 ... 이것은 매우 영리하다고 감독자 빠른.

몇 가지 언급 :

의견은 코드에서 쉽게 추론 할 수없는 모든 것에 중요합니다 (예 : 복잡한 수학 알고리즘).

의견의 문제는 코드처럼 유지해야하지만 종종 전혀 유지되지 않는다는 것입니다.

나는 다음과 같은 댓글을 좋아하지 않는다 :

// Create the "Analyze" button
Button analyzeButton = new Button();
analyzeButton.Text = "Analyze";
analyzeButton.Location = new Point( 100, 100 );
Controls.Add( analyzeButton );

더 나은:

CreateAnalyzeButton();


void CreateAnalyzeButton()
{
    Button analyzeButton = new Button();
    analyzeButton.Text = "Analyze";
    analyzeButton.Location = new Point( 100, 100 );
    Controls.Add( analyzeButton );
}

이제 코드는 전체 이야기를합니다. 의견이 필요하지 않습니다.

나는 그것이 시나리오에 달려 있다고 생각합니다.

방법/기능/클래스는 그들이하는 일, 그들이 어떻게하는지, 무엇을하는지, 무엇을 취하는지, 그리고 반환하는 것에 대한 간단한 설명이 필요합니다. .

블록 코드에서, 나는 그것이 무엇을하는지 설명하기 위해 줄의 블록 위에 댓글을 남겨 두는 경향이 있습니다.

태그 검색을 사용하면 이미 코드 주석에 대한 논의가 있습니다.

https://stackoverflow.com/questions/tagged/comments

주석 코드

살펴보십시오 코드 완료. 그런 주제에 가장 적합합니다.

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