Tôi có nên thay đổi tên tác giả trong tệp lớp nếu tôi thực hiện thay đổi hơn 80% không?


18

Tôi đang cấu trúc lại tập hợp các lớp kiểm tra java hiện có để kiểm tra giao diện người dùng tự động. Đôi khi tôi kết thúc việc thực hiện các thay đổi lớn trong tệp lớp hoặc hoàn toàn sửa đổi nó. Điều này khiến tôi nghĩ rằng khi tôi viết lại toàn bộ lớp thì tôi có nên đổi tên tác giả trong phần bình luận thành của tôi không?

Tôi có tham lam không? hoặc nó sẽ hữu ích cho một người để xem tên của tôi và hỏi tôi trong trường hợp nghi ngờ?


17
Bạn đang sử dụng kiểm soát phiên bản? Tôi thấy nhật ký cam kết là một cơ chế theo dõi đáng tin cậy hơn cho quyền tác giả (nếu có nhu cầu chính đáng để tìm hiểu ...)
rwong

5
Tên phải ở đó nếu nó có bất kỳ loại giá trị nào cho mã. Tức là người liên lạc. Trách nhiệm và như vậy. Và nếu trường hợp như vậy, hãy gắn nó với ngày kết thúc và tên mới được đính kèm.
Độc lập

15
Mục đích của việc có tên của trình tự động trong các tệp lớp là gì?
Bовић

2
Nếu tệp có một trình giữ chỗ cho tên tác giả, rất có thể nó cũng có một trình giữ chỗ để ghi nhật ký thay đổi. Tôi sẽ đặt tên của tôi trong nhật ký thay đổi thay vì tác giả ban đầu. Dù sao, tôi không bao giờ để lại dấu vân tay của riêng mình trên mã tôi viết, chỉ có những dấu của sếp tôi.
mouviciel

1
Có gì sai khi để tên của họ là tác giả và thêm một dòng bên dưới có nội dung "ngày viết lại / tái cấu trúc tên"
Ryathal

Câu trả lời:


15

Nó thực sự phụ thuộc ...

Nếu bạn nghĩ rằng có một cơ hội nhỏ mà người khác có thể quan tâm sau đó khi hỏi tác giả ban đầu, hãy để tên của anh ấy trong mã. Nếu bạn nghĩ rằng ai đó có thể quan tâm đến việc hỏi bạn trực tiếp, hãy để tên của bạn trong đó. Và nếu bạn nghĩ, cả hai có thể đều có thể, hãy để cả hai tên trong (hoặc một nhận xét như "dựa trên công việc của ...).

Tất nhiên, khi việc sử dụng kiểm soát nguồn là bắt buộc tại nơi làm việc của bạn và đó là cách duy nhất để có quyền truy cập vào các nguồn, sau đó lưu hussle và loại bỏ mọi bình luận của tác giả ra khỏi nguồn. Ví dụ, tại nơi làm việc của tôi, chúng tôi có rất nhiều tệp nguồn trong kiểm soát nguồn mà chúng tôi không bận tâm viết bất kỳ tên nào vào nguồn. Nếu tôi muốn biết ai chịu trách nhiệm về tệp, hoặc trong quá khứ hoặc cho một thay đổi cụ thể, TortoiseSVN sẽ dễ dàng tạo cho tôi nhật ký cho việc đó.

Mặt khác, chúng tôi có rất nhiều macro VBA, được viết bởi một số kẻ, được chuyển cho những người khác (một số trong số họ rời công ty trong nhiều năm) và đã được sửa đổi rất nhiều, tất cả đều không sử dụng kiểm soát nguồn. May mắn thay, bình luận của những tập tin đó thường chứa tên tác giả và một số loại nhật ký lịch sử.


13

Tôi vừa bắt gặp một bài đăng khác, nơi OP đang hỏi liệu tên tác giả có nên nằm trong tiêu đề tệp hay không và dường như ít nhất 2/3 số người trả lời đã nói rằng tên đó thậm chí không được liệt kê và bạn nên sử dụng kiểm soát phiên bản để chỉ cần theo dõi những người đã thay đổi tập tin. Không biết những gì đã xảy ra với bài viết đó, nhưng bây giờ tôi không thể tìm thấy nó. <- (do đó ẩn danh "OP")

Cá nhân, tôi thấy tác giả được liệt kê trong tiêu đề tệp là hữu ích nhưng vì một lý do hơi khác (và điều này có thể không liên quan đến những người khác trong môi trường của họ). Mặc dù chúng tôi cố gắng thực hành quyền sở hữu cộng đồng và thường làm việc trên các phần khác nhau của dự án, chúng tôi có xu hướng có ít thành viên trong nhóm biết một số khu vực nhất định của mã hơn nhiều so với các phần khác. Vì vậy, khi ai đó (đặc biệt là nhiều nhà thầu đến và đi) mở một tệp mà họ chưa từng thấy trước đây, tác giả sẽ trở thành người trực tiếp. Anh ta có thể không phải là người đóng góp duy nhất, hoặc thậm chí là người đóng góp đa số, nhưng có tên của anh ta ở đầu, anh ta thừa nhận có trách nhiệm nhất định trong việc phân phối kiến ​​thức / thông tin về mã cho các thành viên còn lại trong nhóm. Chúng tôi có thể liệt kê nhiều hơn một người trong tiêu đề là nhiều người thực sự đã đóng góp và cảm thấy có trách nhiệm.

Tôi thấy khó chịu khi tôi có một câu hỏi về một tập tin và phải dùng đến kiểm soát phiên bản để xác định người chính hoặc người hiểu biết nhất. Sau đó, cuối cùng đi từ một anh chàng sang người tiếp theo vì tất cả họ đều phủ nhận thực sự biết mã làm gì ... họ chỉ cần đi vào và sửa một hoặc hai lỗi.

Thực hành này hoạt động trong nhóm của chúng tôi bởi vì chúng tôi không có sự giúp đỡ. Trừ khi một người rời khỏi, hoặc chuyển sang một nhóm khác, mã / dự án đó sẽ ở lại với người đó và với nhóm của chúng tôi. Rõ ràng nếu những người duy trì mã không giống như những người viết nó, thì không ai quan tâm ai được liệt kê trong tiêu đề.

Vì vậy, theo quan điểm của tôi về tiêu đề tệp, tôi sẽ nói nếu bạn thay đổi 80% tệp và bạn cảm thấy như bây giờ bạn là người thích hợp cho bất kỳ câu hỏi nào (và có lẽ bạn nên cảm thấy như vậy), vâng, đi phía trước và cập nhật tiêu đề tập tin để có tên của bạn trên đó. Nếu bạn cảm thấy tồi tệ về việc loại bỏ người trước đó, bạn cũng có thể để tên của họ ở đó, ít nhất là trong thời điểm hiện tại. Bạn luôn có thể hỏi tác giả gốc và tôi chắc chắn họ sẽ không bận tâm một chút rằng bạn đã thay đổi tên, vì tôi cho rằng không có cảm giác khó khăn nào về việc bạn tự thay đổi 80% tệp.

CẬP NHẬT: Tìm thấy bài viết đó . Không biết làm thế nào tôi quản lý để kéo một cái gì đó trở lại từ tháng Tám. Tôi vừa đọc xong Lập trình viên thực dụng và trong chương cuối, các tác giả đã nói về việc ký kết công việc và trách nhiệm giải trình (bài đăng khác đã đề cập đến nó, đó là lý do tại sao tôi tìm kiếm nó). Cuốn sách có ý nghĩa hoàn hảo và bây giờ tôi nghĩ về nó, có lẽ chúng ta nên đưa ra chính sách nhóm rằng bất kỳ ai được liệt kê là tác giả, nên được đưa vào tất cả các đánh giá mã của tệp được đề cập. Không quan trọng ai đã thay đổi tệp cuối cùng hoặc nhiều nhất trong SVN, tác giả là chủ sở hữu và là người giữ.


1
Tôi thấy điểm của bạn nhưng ai là "OP"?
Tarun

Có thể có một trang dự án hoặc wiki nội bộ nơi thông tin liên lạc có thể được đưa lên cho mọi người xem. Khó khăn trong việc đưa những thông tin đó (tài liệu và người liên hệ) vào kiểm soát nguồn phát sinh ... trong quá trình phân nhánh và sáp nhập.
rwong

@Tarun: OP = "poster gốc" (tức là người đặt câu hỏi). Đó là một biểu thức được sử dụng trong các diễn đàn thảo luận trực tuyến.
sleske

Đồng ý với @Tarun, một liên kết đến bài đăng sẽ giúp đưa câu trả lời của bạn vào quan điểm. Tôi đoán nó là cái này à?
yannis

1
@rwong: Tại sao có sự cố trong quá trình phân nhánh & sáp nhập? Thông thường người hợp nhất một thay đổi nên hiểu nó (nếu không, tại sao họ lại hợp nhất nó?). Vì vậy, người trong nhật ký là người để hỏi.
sleske

5

Tôi không tìm thấy tên của tác giả cực kỳ hữu ích. Như câu hỏi này cho thấy, thường không có tác giả duy nhất, vì vậy việc đặt tên "tác giả" là không thể.

Tất nhiên bạn có thể bao gồm một danh sách tất cả những người có đóng góp lớn, nhưng bạn đã có thể nhận được điều đó từ nhật ký kiểm soát sửa đổi - vậy vấn đề là gì?

Trong dự án của tôi, không có thông tin tác giả trong hầu hết các tập tin. Nếu bạn có một câu hỏi, bạn chỉ cần nhìn vào nhật ký, và thường thì rõ ràng là một hoặc hai người đã làm hầu hết công việc, vì vậy bạn hỏi họ.

Biên tập

Câu trả lời giả định một dự án sử dụng kiểm soát phiên bản. Nếu bạn không (nhất quán) sử dụng VC, sau đó đặt một tác giả (danh sách) và có thể một số lịch sử thay đổi vào một tệp có thể là một cách giải quyết khả thi. Tuy nhiên, có lẽ bạn nên bắt đầu sử dụng VC càng nhanh càng tốt, trong trường hợp này, hãy xem ở trên :-).


so what's the point?Các dự án không thuộc vcs, các dự án tại một số thời điểm đã di chuyển sang một vcs khác (không phải tất cả các chương trình di chuyển đều cho phép di chuyển lịch sử, và các dự án sử dụng nhiều hơn một vcs cùng một lúc - một số dự án FLOSS chấp nhận rằng Cách tiếp cận để giúp mọi người đóng góp dễ dàng hơn, mà không giới hạn họ ở một vcs (người svn thấy khó khăn, người git thấy svn không thể sử dụng được và chúng tôi hg mọi người cười cả hai)
yannis

1
@YannisRizos: OK, đó là sự thật. Tôi mặc nhiên cho rằng bất kỳ dự án phần mềm nào sẽ sử dụng kiểm soát phiên bản. Chỉnh sửa câu trả lời của tôi.
sleske

Và tất nhiên các điểm khác của tôi nên được giải quyết dễ dàng với một số vcs-fu nhỏ, bất kể các vcs liên quan. Nhưng trong thực tế, họ hiếm khi được, không may.
yannis

2

Nếu tệp đã được sửa đổi đáng kể, bạn có thể chấp nhận thêm tên của mình vào tệp như một người biết điều gì đó về nó.


1

Người tạo tệp nguồn nên / phải luôn luôn (IMHO) được đề cập trong tệp nguồn. Điều này, với nhận xét tiêu đề tốt, sẽ cho thấy lý do tại sao tác giả phát triển nguồn và suy nghĩ của anh ấy / cô ấy là gì để viết mã. Đối với người duy trì mã, việc thêm tên của người bảo trì là rất quan trọng để theo dõi kiểm soát nguồn.

Việc đặt tên tác giả, IMHO một lần nữa, nên bao gồm phiên bản nguồn của mã, bên ngoài hệ thống kiểm soát phiên bản, ngày đầu tiên khi thay đổi xảy ra, cũng như số yêu cầu thay đổi. Lý do là, nếu quyết định thay đổi VCS phát sinh, có lịch sử của phiên bản mã, ai là tác giả cũng như số yêu cầu thay đổi mà các nhà phát triển có thể tham khảo (nếu họ cần biết tại sao người bảo trì lại làm những gì anh ta / cô ấy đã làm). Do đó, trong tổ chức của chúng tôi, định dạng của chúng tôi như sau:

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

3
"Nếu quyết định thay đổi VCS phát sinh, có lịch sử của phiên bản mã" Tôi hy vọng không có tổ chức lành mạnh nào thậm chí sẽ xem xét việc di chuyển VCS mà không di chuyển lịch sử (ít nhất là lịch sử gần đây). Rốt cuộc, đó là điểm sử dụng VCS.
sleske

1
Hoàn thành không đồng ý. Đó là loại thông tin nên được theo dõi với kiểm soát phiên bản. Mặt khác, thực sự không có cách nào để biết ai đã thay đổi dòng nào (giả sử có nhiều hơn một người đã làm việc trên một tệp). Đặt nó trong tệp chỉ đơn giản là một bản sao thông tin có độ trung thực thấp ở nơi khác.
Bryan Oakley

1
@Bryan Oakley, tôi hoàn toàn không xóa kiểm soát phiên bản, tôi nói rằng nhận ra mã trong một mã là cách nhận biết ai đã làm việc trên nguồn, mà không cần phải tra cứu cần thiết thông qua kiểm soát phiên bản. Bên cạnh đó, có một số mã có sẵn bên ngoài các hệ thống kiểm soát phiên bản, có nên loại trừ tên tác giả không?
Buhake Sindi

1

Tôi thích nhìn thấy tên tác giả ban đầu, nếu chỉ để tìm ai đó bắt đầu hành trình tìm kiếm câu trả lời của tôi về mã. (Tác giả thường không có hồi ức, nhưng ít nhất đó là một phát súng!)

Tôi khuyên bạn chỉ cần thêm tên của bạn bên dưới tên tác giả ban đầu.

Không cần thay thế tên của người khác, vì họ có thể biết một số khía cạnh của nhu cầu kinh doanh ban đầu mà bạn không có, và những người khác theo sau bạn cũng có thể cần nói chuyện với người đó.


+1 cho đoạn thứ ba, vì tác giả ban đầu có thể biết một số người khác đã làm gì đó trong mã, nhưng không đặt tên của mình trên đó.
Coyote21

1

Chính sách của tôi về ý kiến ​​@ Tác giả là:

  1. Nếu đó là một tập tin hoàn toàn mới, tôi đặt mình là @ Tác giả.
  2. Nếu đó là một tệp hiện có, tôi để @ tác giả một mình, bất kể tôi làm gì với tệp đó.

Nếu bạn có câu hỏi về vấn đề gì đó, không quan trọng ai là @ Tác giả của tệp - vấn đề là ai là tác giả của phần nào của tệp bạn đang chỉnh sửa. Đó là những gì [git/svn/whatever] blamedành cho.

IMO, @ Tác giả cần phải đi xa.


Một mặt, bạn liệt kê mình là tác giả trong một tệp mới. Mặt khác, bạn muốn tác giả đi xa?
Anthony Pegram

1
Các tiêu chuẩn mã hóa của công ty yêu cầu sự hiện diện của thẻ @ Tác giả. Mặt khác, tôi sẽ không sử dụng nó (vì tôi muốn nó biến mất :)).
Michael Moussa
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.