wulin.com (www.vevb.com) 기사 소개 : 나는 과학적 연구가 이것을 증명 한 적이 없지만 소프트웨어 분야에서는 교리 나 일반적인 믿음과 같습니다. 그 존재로 인해 소프트웨어를 쉽게 작성하고 읽을 수있는 코드 유형에주의를 기울이는 것이 중요합니다. 이러한 요구 사항은 일부 기술을 통해 달성 될 수 있으며, 그 중 하나는 코드 주석을 작성하는 것입니다.
면책 조항 : 코드 댓글을 피하는 것에 대해 내가 말한 내용은 의견을 작성하지 않는다는 의미는 아닙니다. 즉, 코드 주석을 최대한 많이 쓰는 것을 피하지만 그만한 가치가 있다고 생각할 때 여전히 글을 씁니다.
우리는 소프트웨어를 작성하는 것보다 소프트웨어를 읽는 데 더 많은 시간을 소비하며, 과학적 연구가 이것을 증명 한 적이 없지만 소프트웨어 분야에서는 교리 나 일반적인 믿음과 같습니다. 그 존재로 인해 소프트웨어를 쉽게 작성하고 읽을 수있는 코드 유형에주의를 기울이는 것이 중요합니다. 이러한 요구 사항은 일부 기술을 통해 달성 될 수 있으며, 그 중 하나는 코드 주석을 작성하는 것입니다.
코드 댓글에 대해 이야기 할 때는 항상 끝없는 토론이 있습니다. 코드의 역할을 설명하기 위해 의견을 사용해야합니까? 읽기를 돕기 위해 의견이 필요하지 않고 코드의 표현력에 중점을 두어야합니까? Joe Kunk는 논쟁에 관한 블로그를 썼습니다. 의견을 작성하지 말아야합니다. 어떤 사람들은 잘 문서화 된 코드가 좋은 코드로 간주된다고 말하며, 어떤 사람들은 댓글이 종종 나쁜 코드를 설명/숨기는 데 사용되기 때문에 의견을 피해야한다고 말합니다.
제 생각에, 책의 영향에 따라 코드가 깔끔하고 리팩터가 쉽게 리팩터링하기 쉽도록 의견을 작성하지 않으면 의견을 작성하지 않아도됩니다 (예 : 수학 알고리즘과 같은) 또는 회사 요구 사항이나 프로세스로 인해해야 할 의무가 없어야합니다. 메모에 대한 5 가지 우려 사항은 다음과 같습니다.
코드 댓글이 작동한다고 생각하는 곳은 반대 효과 1. 댓글은 종종 나쁜 코드를 장려합니다.댓글 코드는 좋은 코드이므로 그러한 말이 있으므로 사람들은 종종 코드에 코드를 아름답게 만들기 위해 코드에 주석을 추가합니다. 코드를 해석하기 위해 주석을 추가하면 신호와 같습니다. 아마도 우리는 나쁜 코드를 쓰고있을 것입니다. 의견을 작성하려면 코드를 정리하여 의견을 읽을 수 있는지 궁금합니다.
2. 우리는 더 많은 시간을 쓰고 유지하는 데 더 많은 시간을 할애 할 것입니다주석은 일반적으로 코드의 두 번째 버전입니다. 우리는 기능에 대한 의견을 쓸 때 실제로 자신을 반복하고 있습니다. 우리는 건조 (자신을 반복하지 말) 원칙을 위반했습니다. 우리는 더 많은 시간을 보내고 복잡성을 더하고 있습니다. 요구 사항이 변경되면 코드도 변경해야하며 코드를 작성하면 주석도 변경해야합니다. 따라서 시간을 두 배로 변경하십시오. 이 시간을 사용하여 코드를 개선하거나 새로운 기능을 개발할 수 있습니다.
3. 의견은 테스트 가능하지 않고 확인되지 않습니다코드를 수정하면 컴파일러, IDE 및 장치 테스트 도구를 사용하여 도움을주고 주석과 유사한 도구가 없습니다. 도구 나 단위 테스트에 의존하여 올바르게 사용하고 날짜 주석 등을 사용 할 수 없습니다. 일단 주석을 작성하면 테스트를 작성하지 못하고 정확성에주의를 기울일 수 없으므로 잘못되면 낭비하지 않아야합니다.
4. 코드와 비교하여 의견은 신뢰할 수 없습니다일반적으로 주석과 코드가 나오면 덜 의미가 있습니다. 프로그래머가 읽으면 오해 할 수 있습니다. 오해의 소지가 없어도 소스 코드를 읽고 자신이하고있는 일을 파악해야합니다. 실질적인 예를 들어, 상사가 수정을해야한다면 의견이나 코드를 살펴 봐야합니까? 물론 우리는 코드를 살펴볼 것입니다.
5. 주석은 많은 화면 공간을 차지합니다일부 주석 방법 (아래의 것과 같은)은 많은 줄을 가져 와서 더 많은 코드를보고 싶을 때 문제가됩니다.
/**
*
* @Param 제목 CD 제목입니다
* @Param 저자 CD의 저자
* @Param은 CD의 트랙 수를 추적합니다.
* @param duration은 몇 분 안에 CD 지속 시간을 사용합니다.
*/
public void addcd (문자열 제목, 문자열 저자,
int 트랙, int durationInminutes) {
Cd CD = 새로운 Cd ();
cd.title = 제목;
cd.author = 저자;
cd.tracks = 트랙;
cd.duration = 지속 시간;
cdlist.add (cd);
}