80 % 이상 변경 한 경우 클래스 파일에서 작성자 이름을 변경해야합니까?


18

자동화 된 UI 테스트를 위해 기존 Java 테스트 클래스 세트를 리팩토링하고 있습니다. 때때로 나는 수업 파일을 크게 변경하거나 완전히 개조하는 결과를 얻었습니다. 이것은 전체 클래스를 다시 작성할 때 주석 섹션의 저자 이름을 내 것으로 변경해야한다고 생각합니다.

내가 탐욕 스럽습니까? 아니면 내 이름을보고 의심이가는 경우 물어 보는 것이 도움이 될까요?


17
버전 관리를 사용하고 있습니까? 나는 저자를위한 안정된 추적 메커니즘으로 로그를 커밋 찾기 (찾을 수있는 합법적 인 필요가 이제까지이 있다면 ...)
rwong

5
코드에 어떤 종류의 가치가 있다면 이름이 있어야합니다. 즉 연락 담당자. 책임 등. 그런 경우에는 종료 날짜와 새 이름을 첨부하십시오.
독립

15
클래스 파일에 자동 이름을 갖는 목적은 무엇입니까?
BЈовић

2
파일에 작성자 이름에 대한 자리 표시자가 있으면 변경 로그에 대한 자리 표시 자도있을 수 있습니다. 원래 저자 대신 변경 로그에 내 이름을 넣었습니다. 어쨌든, 나는 내가 작성한 코드에 내 지문을 남기지 않고 상사의 지문 만 남습니다.
mouviciel

1
이름을 작성자로 남겨두고 "재 작성 / 리팩터링 된 이름 날짜"라는 행을 아래에 추가하면 문제가 발생합니다
Ryathal

답변:


15

정말 달려있다 ...

다른 사람이 나중에 원저자에게 물어 보는 데 관심이있을 가능성이 약간 있다고 생각되면 코드에 그의 이름을 쓰십시오. 누군가가 당신을 직접 물어 보는 데 관심이 있다고 생각되면 이름을 적어 두십시오. 그리고 만약 당신이 생각한다면, 둘 다 가능할 수도 있습니다. 두 이름을 모두 "또는"의 작품을 바탕으로 "와 같은 주석으로 쓰십시오.

물론, 직장에서 소스 제어의 사용이 필수적이며 소스에 액세스 할 수있는 유일한 방법 인 경우 허슬을 저장하고 모든 작성자의 의견을 소스에서 제거하십시오. 예를 들어, 직장에는 소스 제어에 소스 파일이 많으므로 소스에 이름을 쓰지 않아도됩니다. 파일을 책임지고 있거나 과거에 있었거나 특정 변경을 담당 한 사람을 알고 싶다면 TortoiseSVN에서 쉽게 해당 로그를 생성합니다.

반면에, 우리는 일부 사람들이 작성한 많은 VBA 매크로를 가지고 있으며 다른 사람들에게 넘겨 주었고 (일부는 몇 년 동안 회사를 떠났습니다) 소스 제어를 사용하지 않고 많이 수정되었습니다. 운 좋게도 해당 파일의 주석에는 종종 작성자 이름과 일종의 기록 로그가 포함됩니다.


13

방금 OP가 작성자의 이름이 파일 헤더에 있어야하는지 묻는 또 다른 게시물을 보았습니다. 응답 한 사람의 적어도 2/3가 이름이 나열되어서는 안되며 버전 제어를 사용하여 누가 파일을 변경했는지 추적하기 만하면됩니다. 그 게시물에 무슨 일이 있었는지 모르겠지만 지금은 찾을 수 없습니다. <-(따라서 익명 "OP")

개인적으로 필자는 파일 헤더에 나열된 작성자가 유용하지만 약간 다른 이유로 (이는 해당 환경의 다른 사람들과 관련이 없을 수 있음) 발견했습니다. 커뮤니티 소유권을 연습하고 프로젝트의 다양한 부분에서 종종 일하지만, 특정 코드 영역을 다른 영역보다 훨씬 더 잘 아는 팀 구성원은 거의 없습니다. 따라서 누군가 (특히 수많은 계약자)가 이전에 본 적이없는 파일을 열면 저자가 방문하는 사람이됩니다. 그는 유일하게 기고자 또는 다수의 기고자 일 수는 없지만 맨 위에 이름을 지니고 있기 때문에 코드에 대한 지식 / 정보를 팀의 다른 팀에게 배포 할 책임이 있음을 인정합니다. 여러 사람이 실제로 기여하고 책임감을 느끼는 헤더에 한 명 이상의 사람을 나열 할 수 있습니다.

파일에 대한 질문이 있고 기본 또는 가장 지식이 많은 사람을 식별하기 위해 버전 관리에 의존해야 할 때 좌절감을 느낍니다. 그런 다음 한 사람에서 다른 사람으로 이동하여 코드의 기능을 실제로 알지 못합니다. 그냥 들어가서 버그를 수정해야했습니다.

이 실습은 팀에서 이루어 지므로 핸드 오프가 없습니다. 사람이 종료하거나 다른 팀으로 이사하지 않는 한, 해당 코드 / 프로젝트는 사람과 우리 팀과 함께 유지됩니다. 분명히 코드를 유지 관리하는 사람이 코드를 작성하는 사람과 동일하지 않은 경우 아무도 헤더에 나열된 사람을 신경 쓰지 않을 것입니다.

그래서 파일 헤더에 대한 나의 견해에 비추어, 파일의 80 %를 변경하고 지금 당신은 질문에 대한 이동 사람이라고 생각합니다 (그리고 아마도 그렇게 생각해야합니다). 앞서 파일 이름을 업데이트하여 파일 이름을 업데이트하십시오. 이전 사람을 제거하는 것에 대해 기분이 좋지 않다면, 적어도 한동안 그 이름을 남겨 둘 수도 있습니다. 항상 원본 작성자에게 요청할 수 있으며 파일 자체의 80 %를 변경하는 것에 대해 아무런 느낌이 없다고 가정하기 때문에 이름을 변경했다고 생각하지 않을 것입니다.

업데이트 : 해당 게시물을 찾았 습니다 . 8 월부터 어떻게 되 찾을 수 있었는지 모르겠다. 나는 Pragmatic Programmer를 읽었고 마지막 장에서 저자는 일과 책임에 서명하는 것에 대해 이야기했습니다 (다른 게시물에서 언급 했으므로 그것을 찾았습니다). 이 책은 완벽하게 이해가되었으며 이제는 생각합니다. 아마도 저자로 등재 된 사람이 문제의 파일의 모든 코드 검토에 포함되어야한다는 팀 정책을 소개해야합니다. 누가 SVN에서 파일을 마지막으로 또는 가장 많이 변경했는지는 중요하지 않지만 작성자는 소유자이며 키퍼입니다.


1
당신의 요점을 볼 수 있지만 "OP"는 누구입니까?
Tarun

프로젝트 페이지 또는 모든 사람이 볼 수있는 연락처 정보가있는 내부 위키가있을 수 있습니다. 이러한 정보 (문서 및 연락 담당자)를 소스 제어에 두는 데 어려움이 있습니다. 분기 및 병합 중에 발생합니다.
rwong

@Tarun : OP = "원래 포스터"(질문을하는 사람). 온라인 토론 포럼에서 사용되는 표현입니다.
sleske

게시물에 대한 링크 인 @Tarun에 동의하면 답변을 한눈에 볼 수 있습니다. 나는 이것이 하나 라고 생각하고 있습니까?
yannis December

1
@ rwong : 분기 및 병합 중에 왜 문제가 있습니까? 일반적으로 변경 사항을 병합하는 사람은 변경 사항을 이해해야합니다 (그렇지 않으면 왜 병합합니까?). 그래서 통나무에있는 사람이 물어볼 사람입니다.
sleske

5

저자의 이름이별로 유용하지 않습니다. 이 질문에서 알 수 있듯이 종종 단일 저자가 없으므로 "저자"라는 이름을 지정할 수 없습니다.

물론 중요한 기여를 한 모든 사람들의 목록을 포함시킬 수는 있지만 이미 개정 관리 로그에서 얻을 수 있습니다. 요점은 무엇입니까?

내 프로젝트에는 대부분의 파일에 저자 정보가 없습니다. 궁금한 점이 있으면 로그를 살펴보면 일반적으로 한두 사람이 대부분의 작업을 수행 한 것이 분명하므로 물어보십시오.

편집하다

답은 버전 관리를 사용하는 프로젝트를 가정합니다. VC를 (일관되게) 사용하지 않으면 작성자 (목록)를 넣고 일부 변경 기록을 파일에 넣을 수 있습니다. 여전히 VC를 가능한 빨리 시작해야합니다.이 경우 위의 :-)를 참조하십시오.


so what's the point?vcs에 속하지 않는 프로젝트, 특정 시점에 다른 vcs로 마이그레이션 한 프로젝트 (불행히도 모든 마이그레이션 구성표에서 히스토리 마이그레이션을 허용하지는 않음) 및 동시에 둘 이상의 vc를 사용하는 프로젝트-일부 FLOSS 프로젝트는 사람들이 하나의 vcs로 제한하지 않고 더 쉽게 기여할 수있는 접근 방식 (svn 사람들은 git hard, git 사람들은 svn을 사용할 수 없음을 발견하고 hg 사람들은 둘 다
비웃음

1
@YannisRizos : 좋습니다. 맞습니다. 나는 모든 소프트웨어 프로젝트가 버전 관리를 사용한다고 암시했다. 내 답변을 수정했습니다.
sleske

물론 내 다른 요점은 관련된 vc에 관계없이 약간의 vcs-fu로 쉽게 해결해야합니다. 그러나 실제로는 불행히도 거의 없습니다.
yannis

2

파일이 크게 수정 된 경우 파일에 이름을 알고있는 사람으로 파일에 이름을 추가 할 수 있습니다.


1

소스 파일의 작성자는 항상 소스 파일에 언급해야합니다 (IMHO). 이것은 좋은 헤더 주석으로 저자가 소스를 개발 한 이유와 코드 작성에 대한 생각을 보여 주어야합니다. 코드 관리자는 소스 관리자 추적에 관리자 이름을 추가하는 것이 중요합니다.

IMHO의 저자 이름은 버전 제어 시스템 외부 에서 변경이 발생한 최초 날짜와 변경 요청 번호를 포함하여 코드의 소스 버전을 포함해야합니다 . 그 이유는 VCS를 변경하기로 결정한 경우 코드 버전, 작성자가 누구인지, 개발자가 참조 할 수있는 변경 요청 번호 (관리자가 자신이 수행 한 이유를 알아야하는 경우)가 기록되어 있기 때문입니다. 그녀는 한). 따라서 조직에서 형식은 다음과 같습니다.

/**
 * $comment
 * <p />
 * $cr_number, $date, $author, $description 
 **/

3
"VCS를 변경하기로 한 결정이 내려지면, 코드 버전에 대한 역사가 있습니다."나는 이력이없는 (최소의 역사) VCS의 마이그레이션도 고려하지 않기를 바랍니다. 결국 VCS를 사용하는 것이 핵심입니다.
sleske

1
완전히 동의하지 않습니다. 이러한 종류의 정보는 버전 관리를 통해 추적해야합니다. 그렇지 않으면 누가 어떤 줄을 누가 변경했는지 알 수있는 방법이 없습니다 (하나 이상의 사람이 파일을 작업했다고 가정). 파일에 넣는 것은 다른 곳에서 사용 가능한 정보의 충실도가 낮은 복제본 일뿐입니다.
Bryan Oakley

1
@Bryan Oakley, 버전 제어를 전혀 제거하지는 않습니다. 코드에서 코드를 인식하는 것이 버전 관리를 통해 필요한 조회를 수행하지 않고도 소스에서 누가 일했는지 알 수있는 방법이라고합니다. 또한 버전 제어 시스템 외부에서 사용 가능한 일부 코드가 있는데 작성자 이름을 제외해야합니까?
Buhake Sindi

1

코드에 대한 답변을 찾기 위해 누군가를 찾을 수만 있다면 원래 저자의 이름을 보는 것이 좋습니다. (저자는 일반적으로 기억력이 없지만 적어도 한 번은 탄환입니다!)

원본 저자 아래에 이름을 추가하는 것이 좋습니다.

다른 사람의 이름을 바꿀 필요는 없습니다. 원래 비즈니스 요구 사항 의 일부 측면을 알고있을 수도 있고 그 이후에 다른 사람들도 그 사람과 대화해야 할 수도 있습니다.


원작자는 코드에서 무언가를했지만 자신의 이름을 쓰지 않은 다른 사람을 알고 있기 때문에 세 번째 단락에 +1을합니다.
Coyote21

1

@author 의견에 대한 내 정책은 다음과 같습니다.

  1. 새 파일이라면 @author라고 생각합니다.
  2. 기존 파일 인 경우 파일에 대한 작업에 관계없이 @author를 그대로 둡니다.

무언가에 대한 질문이 있으면 파일의 @author가 누구인지는 중요하지 않습니다. 편집중인 파일의 어느 부분에 대한 @author가 누구인지는 중요합니다. 그게 다야 [git/svn/whatever] blame.

IMO, @author는 떠나야합니다.


한편으로, 당신은 새 파일에 저자로 자신을 나열합니다. 반면에 저자가 떠나기를 원하십니까?
Anthony Pegram

1
회사 코딩 표준에는 @author 태그가 있어야합니다. 그렇지 않으면, 나는 그것을 사용하지 않을 것입니다 (왜냐하면 나는 그것을 떠나고 싶기 때문입니다).
Michael Moussa
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.