Là người đầu tiên nhận xét phân tâm và không chuyên nghiệp?


63

Tôi chỉ thấy mình viết bình luận sau đây trong một số mã (cổ xưa Visual Basic 6.0) mà tôi đang viết:

If WindowState <> 1 Then
    'The form's not minimized, so we can resize it safely
    '...
End if

Tôi không chắc tại sao tôi vô thức sử dụng "chúng tôi" trong các bình luận của mình. Tôi nghi ngờ đó là vì tôi tưởng tượng ai đó bước qua mã, như thể họ thực sự "làm" tất cả các lệnh trên mỗi dòng, thay vì chỉ xem chúng xảy ra. Với suy nghĩ này, tôi có thể đã sử dụng I can resize it, vì hiện tại tôi đang "làm" nó, hoặc you can resize it, như thể tôi đang nói với bất cứ ai đang "làm" nó trong tương lai, nhưng vì cả hai trường hợp này đều có khả năng xảy ra, tôi sử dụng "chúng tôi" như thể tôi đang dẫn dắt người khác thông qua mã của mình.

Tôi chỉ đơn giản có thể viết lại nó như là it can be resizedvà tránh vấn đề, nhưng nó gây ra sự tò mò của tôi: nó có phổ biến khi sử dụng người đầu tiên như thế này trong các bình luận, hoặc nó được coi là gây mất tập trung và / hoặc không chuyên nghiệp?


1
Bình luận cho downvote? Đây là câu hỏi Lập trình viên đầu tiên của tôi. Tôi vẫn đang cố gắng tìm ra chính xác điều gì tạo nên một câu hỏi P.SE tốt so với câu hỏi SO tốt.
dlras2

2
Tôi đã không đánh giá thấp bạn nhưng tôi có thể đoán rằng họ không thích câu hỏi tiêu đề vì câu trả lời cho nó có thể dễ dàng ngắn gọn, trò chuyện và đưa ra quá nhiều ý kiến ​​không phản hồi. Viết lại để giống câu hỏi cuối cùng của bạn hơn.
DKnight

56
Tôi thích "chúng ta". Nó thân thiện và bao gồm trong một cách tốt đẹp, folksy.
Jeremy

25
Tôi nghĩ rằng tôi sẽ bắt đầu bình luận tất cả các bản sửa lỗi mà tôi làm việc ở người thứ ba, nên khiến tôi nổi tiếng khắp văn phòng ... "John có biết rằng sự bổ sung kém tinh xảo của mình sẽ luôn bỏ qua mã này, khiến người dùng bối rối bởi trường hiển thị trống vĩnh viễn ... "
DKnight

4
Đó là tất cả những gì tôi có thể làm để đảm bảo những bình luận của mình không gây ra lỗi chính tả. Bây giờ tôi cần lo lắng về việc có nên sử dụng giọng nói thụ động hay không? Tiếp theo tôi sẽ phải đảm bảo rằng tôi không treo bất kỳ giới từ nào - tôi tưởng tượng đó là điều mà các đồng nghiệp của tôi có thể không đưa ra. Và tôi cho rằng tôi sẽ không được phép sử dụng một phần nguyên bản. Mảnh vỡ câu?
Michael Burr

Câu trả lời:


103

Bình luận nên được viết cho con người hiểu. Khi con người giao tiếp, chúng ta thường sử dụng "Tôi", "chúng ta", "bạn", v.v.

Khi ai đó đang cố gắng hiểu một số mã, có hai hoặc nhiều tác nhân: người đọc mã đó và tác giả gốc của mã. Nói "chúng tôi" là tốt. Trừ khi 'chuyên nghiệp', bạn có nghĩa là 'giống như robot'.


3
+1 khi viết theo cách này khuyến khích bạn viết nên xem xét người đọc tiềm năng và điều đó thực sự có thể giúp bạn thấy các khái niệm có thể cần được giải thích tốt hơn.
Justin Ohms

64
// we approve of this answer:)
Jarrod Dixon

3
+1 và khuếch đại: ngược lại, các cấu trúc giọng nói thụ động như "nó có thể thay đổi kích thước" bị từ chối bằng văn bản nói chung vì chúng tôi thấy chúng khó hiểu. Nếu bạn sử dụng giọng nói thụ động, bạn buộc người đọc phải phát minh và ghi nhớ một chủ đề cho câu.
msw

1
@msw: không phải là 'chúng ta từ chối các cấu trúc giọng nói thụ động như "nó có thể thay đổi kích thước" ...' thì sao?
tdammers

2
@msw, trong tiếng Nga, ví dụ, cấu trúc giọng nói thụ động phổ biến hơn và được hiểu dễ dàng hơn do một số khác biệt về văn hóa. (Và không, tôi đã không viết câu đó bằng giọng nói thụ động về mục đích!)
P Shved

22

Tôi sẽ đề nghị tránh xa việc sử dụng 'Tôi' vì nó tự động chịu mọi trách nhiệm về mã. Nếu những người khác đang đọc nó, nó sẽ trông tệ bởi vì đó có nghĩa là một nỗ lực của nhóm trong trường hợp này. Tôi thờ ơ với việc sử dụng "chúng tôi". Tuy nhiên, nó có thể đi qua như bao gồm cả những độc giả khác một cách vô duyên.

Phiếu bầu của tôi vẫn đi cho ngắn gọn và đồng nhất. Nếu thông điệp có thể được truyền đạt theo cách ít dài dòng hơn, tại sao lại chọn bất cứ điều gì khác? Vì vậy, liên quan đến ví dụ này, tôi sẽ viết:

'The form is not minimized so it can be resized safely.

4
"Nếu thông điệp có thể được truyền đạt theo cách ít dài dòng hơn, tại sao lại chọn bất cứ điều gì khác?" Là một người phải đập đầu vào tường cố gắng thực hiện các thư viện tài liệu kém của ai đó - libs nguồn gốc nổi tiếng về điều này-- Tôi nói rằng tôi muốn có quá nhiều bình luận hơn là quá ít. Tôi nghĩ rằng tôi đồng ý với bạn mặc dù nếu bạn có nghĩa là sử dụng câu tốt với dấu câu đúng có ý nghĩa.
Jonathan Henson

3
+1 vì không chịu mọi trách nhiệm trong cài đặt nhóm. Và trong khi tôi đồng ý về việc cố gắng tránh những bình luận dài dòng, đôi khi thì thì bị động thậm chí còn khó đọc hơn (như jkj đã chỉ ra) và không kém phần dài dòng, và tôi thích tránh sự che giấu. =]
dlras2

2
@Jonathan Henson: Nhiều bình luận là tốt, nhưng chỉ khi chúng chứa nhiều thông tin hữu ích. Nếu cùng một lượng thông tin có thể được thể hiện theo hai cách tương đương, thì ngắn hơn là tốt hơn.
tdammers

Lời khuyên của tôi là tránh sử dụng giọng nói thụ động. Nó khó hiểu hơn, đặc biệt đối với những người không nói tiếng Anh bản ngữ.
Ville Laurikari

18

Tôi thực hiện một trong hai cách tiếp cận, thường là bất cứ điều gì nghe tốt hơn.

Để giải thích những thứ như yêu cầu hoặc biện minh, tôi đi với "chúng tôi" như bạn có ở đó:

// We can't proceed unless the user has given us this information.

Nếu tôi đang giải thích quy trình, tôi có xu hướng sử dụng giọng nói (mệnh lệnh) bắt buộc (sửa tôi nếu đó là thuật ngữ sai):

// Get the foo from bar and make sure it follows our required format.

Cái sau có thể trở nên nguy hiểm khi lặp lại mã, nhưng có những cách sử dụng. Vì vậy, nó không sử dụng tôi hoặc chúng tôi, mà thay vào đó nó thực sự ngụ ý "bạn".


Đây chính xác là phong cách của tôi. Cả hai cách bạn mô tả đều có vị trí của họ.
zourtney

9
Cái sau cũng có "của chúng tôi" trong đó. Tôi thấy thú vị khi mọi người tự nhiên viết bình luận ở số nhiều người đầu tiên.
Reid

@Reid wow vâng đó chỉ là bản năng, tôi thậm chí không nhận ra. Nhưng nó có thể dễ dàng nói "the".
Tesserex

8

Tôi nghĩ rằng đó chỉ là một biến thể của phong cách viết học thuật / kỹ thuật, thường là không cá nhân. Sử dụng giọng nói thụ động, sử dụng "hoàng gia chúng ta" ("một" là quá cũ).

Theo nguyên tắc chung, nó không rõ ràng, những người sẽ sử dụng nó anyway - nhận xét là dành cho bảo trì mang lại lợi ích, thường không chỉ dành riêng cho tác giả ban đầu.

Điều đó nói rằng, tôi sử dụng người đầu tiên khá thường xuyên trong các bình luận - để giải thích lý do tại sao tôi đưa ra quyết định cụ thể và những gì tôi đang nghĩ.


3
Cá nhân tôi không cảm thấy rằng "một" là ngày. Vâng, nó được sử dụng ít phổ biến hơn, bởi vì nó không phải là thứ mà người ta thỉnh thoảng sử dụng. Tuy nhiên, có rất ít khả năng rằng việc sử dụng "một" theo nghĩa bình luận đó sẽ không thể đọc được hoặc làm giảm khả năng sử dụng.
Billy ONeal

7

Nhận xét sẽ cho bạn biết lý do tại sao một cái gì đó đang được thực hiện, không phải những gì đang được thực hiện. Nếu những gì đang được thực hiện không rõ ràng từ mã, hãy sửa mã, đừng chỉ thêm một nhận xét. Người thứ nhất, người thứ hai, v.v. không quan trọng, vấn đề là truyền đạt thông tin cần thiết.

Nếu bạn phải tường thuật mã, thích các mệnh lệnh, vd

'ensure that the window is not minimized
If WindowState <> 1 Then
    'resize the window
    '...
End if

(Và vui lòng không sử dụng các hằng số trần như "1" trong mã)


3
+1 vì thích mệnh lệnh, tôi đã không nghĩ về điều đó. Ngoài ra, vâng, tôi không nên sử dụng trần 1. Tôi thường khá giỏi về điều đó ... Hãy để tôi đăng một trong số ít lần nó làm tôi suy nghĩ trên mạng.
dlras2

6

Có lẽ chúng ta đang đề cập đến những kẻ nhỏ bé trong chương trình làm nên điều kỳ diệu? :)

Giọng nói thụ động tiếng Anh khó sử dụng và nghe có vẻ tệ. Mọi người thích sử dụng mẫu người (tôi, bạn, chúng tôi, một).

Thí dụ:

(Bạn / chúng tôi / một người phải) sử dụng một đại biểu để chuyển các sự kiện thay đổi kích thước cửa sổ cho phụ huynh

Một đại biểu phải được sử dụng để chuyển các sự kiện thay đổi kích thước cửa sổ cho phụ huynh

Một ví dụ khác (lưu ý rằng bạn thường có thể bỏ qua các mẫu người trong các bình luận):

(Chúng tôi) bắt gặp một ngoại lệ. (Chúng tôi sẽ) hiển thị một hộp thoại lỗi.

Một ngoại lệ đã được bắt và một hộp thoại lỗi sẽ được hiển thị.

Tái bút Thay thế thụ động bằng "bạn" rất phổ biến trong ngôn ngữ tiếng Anh đến nỗi nó cũng đã bắt đầu rò rỉ sang các ngôn ngữ khác. Nghe có vẻ cực kỳ buồn cười, ví dụ, tiếng Phần Lan nơi tồn tại dạng số ít người thứ hai (như tiếng Anh "ngươi").


Tôi nghĩ về mặt ngôn ngữ này là không chính xác. Đầu tiên là bắt buộc, nó không có chủ đề. "Xin hãy đóng cửa lại." Trong khi nó có nghĩa gần giống như "làm ơn, bạn có thể đóng cửa không?" nó là một hình thức ngữ pháp riêng biệt, không phải là viết tắt. Trong ví dụ thứ hai, bạn cũng có thể nói "(Nó đã) bắt gặp một ngoại lệ. (Nó sẽ) hiển thị một hộp thoại báo lỗi."
Inca

3

Nếu bạn đang nói về việc thực hiện chương trình, thì đó không phải là 'chúng tôi', 'bạn' hay 'tôi'. Nhân hóa có thể phổ biến đến mức không thể nhận thấy nhưng đó là một thói quen nguy hiểm (Cảnh báo PDF. Cảnh báo Dijkstra.):

Tôi nghĩ rằng nhân hóa là tồi tệ nhất trong tất cả. Bây giờ tôi đã thấy các chương trình "cố gắng làm mọi thứ", "muốn làm mọi thứ", "tin những điều đó là sự thật", "hiểu biết mọi thứ", v.v. Đừng quá ngây thơ khi tin rằng việc sử dụng ngôn ngữ này là vô hại. Nó mời các lập trình viên xác định chính mình với việc thực hiện chương trình và gần như buộc anh ta sử dụng ngữ nghĩa hoạt động.


2
Cảnh báo Dijkstra! Nếu chỉ có nhiều thứ hơn có một :(
Tom Anderson

Tôi không nghĩ rằng viết bình luận ở số nhiều ngôi thứ nhất là một hình thái nhân học. Tôi nghĩ nó ngụ ý, "Bây giờ chúng tôi hướng dẫn máy tính ...", như thể lập trình viên viết bình luận đang dẫn dắt người đọc thông qua mã của mình.
blujay

2

Tôi không nghĩ rằng người đầu tiên hoặc "hoàng gia chúng ta" có vẻ không chuyên nghiệp hoặc gây mất tập trung. Tôi nghĩ rằng chúng ta nên nỗ lực viết bình luận bằng tiếng Anh trong E-Prime , tập hợp con của tiếng Anh không có động từ "to be".

Nếu bạn sử dụng quá mức "trở thành" trong các bình luận, bạn sẽ nhận được các câu khó hiểu như:

// X is 10
// X is the user data of the newly-authenticated user
// X is a BigInt

Chà, có thể không phải tất cả cùng một lúc, nhưng sự bình đẳng thực sự có thể khiến những bình luận không rõ ràng.

Tôi nghĩ rằng các yêu cầu viết trong E-Prime giúp làm cho các yêu cầu đó rõ ràng hơn, vì người viết phải chỉ ra một diễn viên cùng với hành động.


Khái niệm thú vị; làm thế nào một người có thể diễn tả các khái niệm "X nên ít nhất là 5" hoặc "Y phải không lớn hơn 23"?
supercat

@supercat - "Giá trị của X phải có cường độ từ 5 trở lên". "Giá trị của Y không được vượt quá 23". Bình đẳng, logic hoặc số học, cũng không nên sử dụng động từ "to be". "X phải chứa 5" hoặc "X ước lượng thành 5" hoặc "X có giá trị 5" hoặc somesuch. Nếu bạn gặp một nhận xét đặc biệt không rõ ràng, hãy tìm các động từ "trở thành". Tôi cá rằng bình luận không rõ ràng sử dụng các động từ ghi chú nhưng "được". Cũng lưu ý rằng tôi đã viết câu trả lời ở trên trong E-Prime.
Bruce Ediger

Thứ hai là tốt; đầu tiên không quá nhiều, vì -6 có cường độ từ 5 trở lên.
supercat

@supercat - rất tốt. "X phải có giá trị nguyên được ký từ 5 trở lên". Ở Hoa Kỳ, chúng tôi sẽ gọi "độ lớn" của bạn là "giá trị tuyệt đối", điều này củng cố quan điểm của tôi về việc mô tả giá trị của một biến, chứ không phải là giá trị biến, xuất phát từ đẳng thức.
Bruce Ediger

2

Phong cách chính xác để bình luận là người thứ ba không cá nhân; " Biểu mẫu không được thu nhỏ, vì vậy nó có thể được thay đổi kích thước một cách an toàn ".

  • Tôi ngây thơ.
  • Bạn là người thô bỉ.
  • Chúng tôi quá trang trọng (và hoàng gia).

Mỗi câu có thể được viết lại theo cách này (xem ở trên) và đó là cách chuyên nghiệp duy nhất để viết.


11
-1 bởi vì: không có cách nào chính xác, tôi thấy tóm tắt của bạn về Tôi / Bạn / Chúng tôi hơi lạc lõng và tôi không hiểu phần cuối. Ngoài ra: Khi tôi nói "chúng tôi" trong các bình luận của mình, tôi không cố nói chuyện như một vị vua - tôi đang nói chuyện với bạn, anh chàng đọc mã của tôi và đưa bạn đi qua những suy nghĩ của tôi.
doppelgreener

2

Nó phụ thuộc vào nhận xét.

Thông thường, tôi viết bình luận theo cách được đề xuất bởi The mouth of a Cow . Tôi cũng luôn viết các bình luận tạo tài liệu (Doxygen, JavaDoc) theo cách này.

Tuy nhiên, nhiều người thường bỏ qua việc sử dụng kiểm soát phiên bản để xác định ai đã viết / chạm vào các dòng trong tệp nguồn. Đôi khi nói "Tôi" là phù hợp, đặc biệt là khi việc theo dõi "Tôi" trở lại khá dễ dàng với người đã viết mã. Nếu bạn, với tư cách cá nhân, đã đưa ra quyết định, tôi khuyên bạn nên sử dụng "Tôi" (cùng với kiểm soát phiên bản) để xác định và theo dõi các quyết định phù hợp với mã.


+1 cho Doxygen và JavaDoc. Tôi đồng ý rằng tài liệu này khác với nhận xét, (mặc dù một số ý kiến ​​tạo tài liệu) và tôi cố gắng hết sức để giữ tài liệu đó một bước chính thức hơn so với nhận xét của tôi.
dlras2

1

Người cha già tốt bụng của tôi (mhrip) sẽ hỏi: "Bạn không có những điều quan trọng hơn để bận tâm chứ?"

Tuy nhiên, cá nhân tôi thích "chúng tôi". Và tôi cũng tự hỏi tại sao tôi viết chúng tôi trong các tài liệu ngược dòng, thậm chí không viết mã, coi tôi là nhân viên duy nhất trong công ty của tôi.

Tuy nhiên, bản thân tôi và tôi đồng ý rằng theo cách này chúng tôi cảm thấy bớt cô đơn :)


1

Tôi có phải là người duy nhất viết "chúng tôi" và nghĩ "tôi và máy tính" (hay "đội của tôi và máy tính") không? "Chúng tôi" sẽ xử lý yêu cầu bên ngoài đã cho chúng tôi, điều đó có nghĩa là "chúng tôi" cần đọc yêu cầu, mở một số cửa sổ, thực hiện một số tính toán, dựa trên yêu cầu kinh doanh "của chúng tôi". Điều này cũng giúp xem mã là một phần của phía bạn chứ không phải kẻ thù :-)


0

Đối với các bình luận ngắn, đôi khi tôi viết ở người thứ hai, như thể tôi đang hướng dẫn người khác, gần như là một tin nhắn hướng đến nhà phát triển tiếp theo để đọc bình luận. Nhu la

//You can get a session_id from SYSSession.getSessionID() if you need one

Nhận xét dài hơn (chẳng hạn như tiêu đề hàm dài hoặc một vài dòng mô tả thuật toán) Tôi cố gắng giữ trung lập, không có người thứ nhất, người thứ hai hoặc người thứ ba.


Tiếng Anh thụ động hiếm khi nghe có vẻ tốt: "Một session_id có thể được lấy từ SYSSession.getSessionID () nếu cần thiết"
jkj

0

Bạn đã thêm nhận xét này vì mã không đủ rõ ràng. Tôi thường thấy việc thể hiện ý định thông qua các phương pháp được xác định rõ sẽ tránh việc sử dụng các bình luận. Ví dụ, dòng đó có thể đã được chuyển sang một phương thức có tên CanThisFormBeResized.

Một phương thức được đặt tên tốt, tuy nhỏ nhưng đánh bại một nhận xét, bởi vì nó dễ dàng cho các nhận xét và mã không đồng bộ.

Vì vậy, nếu hầu hết các bình luận có thể được thể hiện bằng mã, điều đó để lại rất ít lý do cho các bình luận

  • Nếu bình luận của bạn là ý kiến ​​của bạn, thì hãy bắt đầu bằng "Tôi"
  • Nếu bạn nghĩ rằng bình luận của bạn nên là một ý kiến ​​được chia sẻ (ví dụ: một thực tiễn tốt nhất), thì hãy bắt đầu với "chúng tôi"
  • Nếu bình luận của bạn được hướng vào một số mã tinh ranh được viết bởi một nửa dí dỏm, sau đó loại bỏ nhận xét và đi qua và đấm họ mã nhầm lẫn từ một đồng nghiệp, sau đó giải quyết trực tiếp với họ.

1
Xin lỗi, nhưng tôi không thực sự là một fan hâm mộ của phong cách này. Đặc biệt là vì mã này được sử dụng một lần, ở một nơi và đó là điều duy nhất trong phương thức thay đổi kích thước. Tôi muốn một bình luận ngắn gọn, có lời nói để tăng thêm độ phức tạp thông qua tái cấu trúc, đặc biệt là khi làm việc với trình gỡ lỗi VB6. Ở một bên, CanThisFormBeResizedcó lẽ nên ThisFormCanBeResizedđược sử dụng như thế If ThisFormCanBeResized Then.
dlras2

1
Đó là ưu tiên. Tôi có một phương pháp boolean riêng như function() { return this.windowState != 1 }trên bất kỳ bình luận. +1 từ tôi
keppla

1
@Dan, điều gì sẽ xảy ra nếu có người khác xuất hiện sau: tại sao bắt họ tìm kiếm xung quanh và tìm ra logic để xác định xem một cửa sổ có thể được thu nhỏ không? Họ thậm chí có thể không phát hiện ra dòng mã nhỏ của bạn bằng một nhận xét và thêm dòng mã của riêng họ. Bây giờ bạn đã có 2 vị trí cần thay đổi nếu logic thay đổi và 2 vị trí nơi các nhận xét có thể không đồng bộ với mã. Tại sao một phương thức 1 dòng được đặt tên tốt (không thay đổi trạng thái) lại thêm độ phức tạp? Đó là cách đơn giản nhất và là một trong những phép tái cấu trúc sạch nhất hiện có.
Steve Dunn

0

Theo nguyên tắc thông thường, tôi sẽ đề nghị sử dụng ngôi thứ nhất, nghĩa là I.

Tại sao? Không phải vì bản chất chiếm hữu của tôi, mà bởi vì khi mọi người nói ở bất kỳ quan điểm nào khác, họ có xu hướng sử dụng quá nhiều từ hoặc đặt câu quá phức tạp, và bị lạc trong việc cố gắng giải thích mọi thứ. Người đầu tiên có xu hướng luôn dễ đọc nhất.


0

Cá nhân tôi sẽ viết (bằng C #):

if (WindowState != WindowState.Minimised)
{
     ResizeWindowSafely();
}

Hoặc một cái gì đó dọc theo những dòng đó, do đó không cần bình luận.


ResizeWindowSafelysẽ ngụ ý nó có thể được gọi nếu bạn không biết có nên thay đổi kích thước hay không, và do đó sẽ cần phải bao gồm if (WindowState != WindowState.Minimised)chính nó.
dlras2
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.