너는 모든 줄의 코드에 주석을 써야 한다
코드는 몇 번 읽힐까요?
성공한 제품에서 코드는 수천 번, 심지어 수백만 번 실행될 것이다.해석기마다 당신의 코드를 읽습니다.우리는 모두 기계에서 효율적으로 운행하는 코드를 작성하는 데 시간을 쓰는 것이 가치가 있다는 것을 안다.너는 한 사람이 나의 코드를 몇 번이나 읽을 수 있는지 멈추어 물어본 적이 있니?
답이 많다고 생각했기 때문이다.
대부분의 성공적인 코드는 당신이 짐작할 수 있는 긴 시간 후에도 제품에서 실행됩니다.네가 오늘 방문한 사이트 중에는 적어도 20년 동안 운영한 코드가 하나 있다.비록 당신의 코드는 무수한 청부업자, 초급 개발자, 신입사원들에게 해석될 수 있지만, 그들은 당신의 코드 라이브러리를 찾아내려고 노력한다.어떤 사람이 내년에 당신의 코드를 뒤져서 모든 것을 돌보지 않고 그것이 무엇을 했는지, 왜 그것이 무엇을 했는지 알고 싶어 할 가능성이 가장 높다.
그대
항상 과거로 돌아가 더 젊은 자신과 맞서 싸우고 싶다고?소프트웨어 개발은 당신의 직업입니다EIIiot(@Loh)
네가 지금 무엇을 하고 있는지 아무리 잘 알고 있다고 생각하더라도 인류 기억의 현실은 몇 주 후에 네가 돌아온 어떤 일도 익숙하지 않을 수 있다는 것을 의미한다.
Code comments mean leaving yourself a map
이 느낌은 매우 어리석다, 그렇지?당신은 왜 지도 한 장이 필요합니까?너는 이곳을 건설했구나!이 느낌은 매우 멍청하다.나는 너에게 언젠가 네가 이 지도를 필요로 할 것이라고 보증한다.
일부 코드 주석 기초 지식
나는 반드시 두 가지를 지적해야 한다. 이것은 내가 초보 프로그래머들 사이에서 자주 이야기하고자 하는 것이다.
Visual Studio code byBill Souror에서 코드가 접힌 귀여운 gif
만약 당신이 너무 많은 가시적인 주석을 처리하려고 노력하고 있다면, 선택한 코드 편집기에서 그것들을 숨기는 방법에 대한 강좌를 검색하고, 심지어는 기본적으로 그것을 숨기십시오!
코드 주석은 코드 냄새가 아닙니다.
내가 본 태도quite a bit는 평론이다. 특히 긴 평론은'code smell'이다.이것은 그것들이 당신의 코드에 문제가 있을 수 있음을 나타낸다는 것을 의미한다.나는 절대로 이 점에 동의하지 않는다.
표준 예는 다음과 같습니다.
var x = user.info3 // this stores the user’s age
이것은 주석으로 변수userAge
를 명명하는 것이 아니라 변수x
만 명명하는 것이 가장 좋다는 문제를 나타낸다.이 인위적인 예에서 이것은 공평한 관점이지만, 이것은 지금까지 가장 흔히 볼 수 있는 주석 용례를 소홀히 했다.주석은 코드에 무슨 주석이 발생했는지, 즉 우리의 코드가 무엇을 하고 있는지 설명하는 것만 설명하는 경우는 드물다.내부 작업 메커니즘을 이해하기 쉽게 코드를 다시 쓰는 것은 가능하지만, 항상 편리하지는 않지만, 코드 이외의 우려 때문에 이상하거나 직관적이지 않은 방식으로 조작하고 있음을 설명할 수 없습니다.
//this code checks if the account creation date
//was in 1911 since this (impossible) creation year
//was used to indicate that these users were
//imported from the old DB with no creation date set.
이러한 주석은 만약 어떤 문서가 없다면 코드 행위는 영원히 의미가 없을 것이라고 설명한다.어떻게 더 적은 댓글을 씁니까
따라서 일부 논평은 거의 없을 수 없다는 것을 인정한다.만약 우리가 정말 댓글을 쓰는 것을 싫어한다면, 어떤 방법으로 우리로 하여금 댓글을 적게 쓰게 할 수 있습니까?
가장 흔히 볼 수 있는 해결 방안은 함수를 더 작은 함수로 분해하는 것이다.nuff: "함수
updateUser
의 몇 줄은 주석이 필요할 수 있지만, setUserScoreToZero
라는 단독 함수 중의 이 세 줄은 주석이 필요하지 않을 수 있습니다. 이 코드는 사용자의 값을 0으로 설정합니다."마찬가지로 이것은 우리가 위에서 열거한 문제에서 벗어날 수 없다. 함수 이름은 외부 요소를 설명할 수 없다.그것은 함수 이름이 갈수록 길어질 수도 있다.코드 주석은 숨기기 쉽지만, 긴 함수 이름은 잊을 수 없다!이것은 당연히 많은 작은 함수 (설명에 따라 명명됨) 가 코드 주석보다 더 나쁘다는 것을 의미하지는 않는다.단지 절충이 있을 뿐이다!
근데 댓글을 더 많이 달아야 돼요.
그래, 미끼 제목을 눌러라. 하지만 정말로, 너는 더 많은 평론을 써야 한다. 더 많이.줄마다?이 가능하다, ~할 수 있다,...다음은 건너뛸 수 있는 줄입니다.
착한 게 관건이에요.
나는 여기에서 그것을 연결하지 않지만, 내가 본 많은 반모드 프로그래밍의 이유는 "당신이 이런 스타일의 코드를 이해하거나 사용할 수 없다면, 당신은 인코딩을 해서는 안 됩니다."와 같다.이것이 효과적이든 설득력 있는 비판이든 나는 한쪽에 서서 이런 생각만 하는 것은 불친절하다.선택이 있을 때 나는 항상 선량함에서 시작하는 디자인 선택을 한다.
매번 내가 모두가 알고 있다고 생각하는 것들을 정의하는 데 시간을 들일 때마다 나는 왕왕 너에게 감사하는 평론을 받는다.더 좋은 것은 코드 주석을 남기거나 문서를 작성하는 것이 더 좋다는 것이다. 왜냐하면 그것은 언젠가는 심지어 장래에 당신을 도울 수 있기 때문이다.이것은 내 머리카락을 찢는 것보다 훨씬 낫다. 왜냐하면 "내 천재 코드를 이해하는 사람이 없다!"
우리가 코드 주석을 쓸 때, 우리는 미래의 자신에 대해 약속을 하고 있다.우리는 이 코드가 몇 십 년 동안 중용될지 아니면 묵묵부답이 될지 모른다.그러나 시간이 되면 이 원본 파일들이 다시 열리면 우리는 거기에 있을 것이다.우리는 도움을 제공할 것이다.우리가 이 글을 쓸 때, 다음은 우리의 생각이다. 우리는 그것이 의미가 있기를 바란다. 우리는 도와주려고 한다.행운을 빕니다.
Reference
이 문제에 관하여(너는 모든 줄의 코드에 주석을 써야 한다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/heroku/you-should-write-a-comment-on-every-line-of-code-2f52텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)