Suy nghĩ của bạn về Thời gian / Dừng hoàn toàn trong nhận xét mã là gì? [đóng cửa]


27

Tôi thấy điều này được hỏi trong SO Tavern , vì vậy tôi đang đăng câu hỏi ở đây. Tôi nghĩ đó là một câu hỏi thú vị. (Tất nhiên nó không thuộc về SO, nhưng tôi nghĩ nó ổn ở đây.)

Bạn có thêm dấu chấm (hoặc, như OP đã viết, "dừng hoàn toàn") trong nhận xét mã của bạn không?

Để giữ cho nó có liên quan, tại sao ?


2
SOmetimes tôi làm và đôi khi tôi không. Nó phụ thuộc vào các ý kiến ​​và những gì làm cho nó dễ đọc.
Tim

Câu trả lời:


29

Dừng hoàn toàn là để kết thúc câu, nhưng nếu một bình luận chỉ bao gồm một câu được bao quanh bởi mã, thì theo tôi, toàn bộ dừng lại là không cần thiết. Đôi khi tôi thậm chí không viết hoa chữ cái đầu tiên. Một bình luận multiline chi tiết, mặt khác, không cần chấm câu đầy đủ.

// This function returns an average of two integers. Note that it may
// return an irrelevant result if the sum of a and b exceeds the int
// boundaries.

int avg(int a, int b)   // make it static maybe?
{
    // A better algorithm is needed that never overflows
    return (a + b) / 2; 
}

4
+1. Điều này trông rất giống phong cách bình luận của tôi, nó đã cho tôi một deja vu giả. :)
Bàn Bobby

26
Không, dừng hoàn toàn là để đánh dấu kết thúc câu. Nó không liên quan cho dù bạn có một hay nhiều.
Rook

2
<đùa> Sẽ không tốt hơn nếu kiểm tra vượt quá giới hạn int? </ đùa>
Dan Rosenstark

2
@Yar: trung bình luôn nằm giữa a và b, theo định nghĩa luôn nằm trong ranh giới, phải không? ;)
mojuba

8
Tất cả các chuỗi của tôi đều bị chấm dứt, vì vậy một nhận xét thích hợp sẽ luôn luôn kết thúc bằng '\ 0' Bạn không muốn anh chàng tiếp theo nhìn vào mã của bạn để đọc hết phần cuối của tâm trí anh ta phải không?
CodexArcanum

26

Có, bởi vì các bình luận bằng tiếng Anh và tiếng Anh thích hợp sử dụng dấu câu.


2
Làm thế nào về tin nhắn văn bản?
Moshe

4
@Moshe, tin nhắn văn bản hầu như không đúng tiếng Anh.
Dominique McDonnell

8
Khó tiếng Anh, nhưng tôi vẫn sử dụng dấu câu trong đó. Dấu câu có ở đó để hướng dẫn người đọc về chính xác những gì tác giả dự định - điều này áp dụng cho bất kỳ ngôn ngữ nào, IMHO.
cjmUK

@cjmUK, Lol, vâng và tôi cũng vậy. Tôi nghĩ Moshe có nghĩa đó là lý do chúng tôi sẽ không sử dụng dấu câu, vì tôi thường xuyên nhận được những tin nhắn như "that wd b gr8 cu there bye", điều đó đẩy tôi lên tường
Dominique McDonnell

Tôi không biết bạn đang làm gì hết
cjmUK

17

Bạn có thêm dấu chấm (hoặc, như OP đã viết, "dừng hoàn toàn") trong nhận xét mã của bạn không?

Để giữ cho nó có liên quan, tại sao?

Vì lý do tương tự, tôi thêm chúng khi viết văn bản "bình thường" - chúng là một phần của ngôn ngữ bằng văn bản và không có gì đặc biệt về chúng. Tôi sử dụng chúng như nhau khi viết một câu (một dòng) ý kiến ​​cũng như toàn bộ đoạn văn.

Mã nguồn không phải là văn bản bình thường, và do đó chúng tôi sử dụng các quy tắc khác nhau cho nó. Đơn giản ;-)


Một người bạn của tôi không bao giờ ghi lại các từ trong email ... bởi vì nó trên internet. Đối với tôi thật tốt khi bạn điều chỉnh văn bản của mình theo các giới hạn kỹ thuật như SMS, nhưng email hoặc mã nguồn khác với văn bản trong thư và sách như thế nào?
LennyProgrammer

1
@ Lenny222 - Không chắc chắn những gì bạn đang hỏi ở đây. Email nên được viết như văn bản bình thường; giống như bạn đang viết một lá thư như bạn nói. Làm thế nào chúng thực sự được viết (và SMS, oh boy, đừng bắt tôi sử dụng SMS :) Mã nguồn không khuất phục các quy tắc giống như văn bản thông thường, bởi vì nó có quy tắc cú pháp riêng.
Rook

2
Đối với tôi ý kiến ​​mã nguồn có nghĩa là được đọc bởi con người. Tại sao nó phải làm cho một sự khác biệt cho dù một số thông tin trong một tài liệu đặc tả riêng biệt hoặc được nhúng trong một nhận xét mã nguồn?
LennyProgrammer

@ Lenny222 - Một cái gì đó chỉ xảy ra với tôi, vì vậy chỉ để không có sự hiểu lầm giữa chúng tôi. Bây giờ chúng ta đang nói về mã nguồn, hoặc các ý kiến ​​được đưa vào trong đó? Nếu đó là trường hợp thứ hai, thì tôi xin lỗi, vì tôi đã hiểu lầm bạn. Trong trường hợp đó, các quy tắc tương tự như đối với văn bản bình thường (cho ý kiến). Trong mã nguồn thực tế (mã nguồn được trình biên dịch / trình thông dịch đọc), tôi không thấy các quy tắc tương tự có thể tuân theo như thế nào.
Rook

1
Vâng, tôi nghĩ rằng chúng tôi đồng ý với nhau mà không biết. ;)
LennyProgrammer

9

Nếu bạn viết bình luận, người ta sẽ hy vọng chúng được viết bằng tiếng Anh. Đó là trường hợp, người ta nên chấm câu đúng. Làm khác đi sẽ lười biếng.


1
Các khoảng thời gian là kết thúc của một câu. Bình luận không nhất thiết phải là câu đầy đủ.
John B. Lambe

Bình luận, nói chung, nên được câu. Nếu không, tôi nên hỏi tại sao không. Nếu bình luận của bạn quá ngắn mà không phải là câu, thì có lẽ chúng rõ ràng và do đó không cần thiết?
quick_now

5

Nếu tôi viết một câu đầy đủ (hoặc nhiều hơn), thì có. Nếu tôi không, thì đôi khi không, nhưng thường vẫn có.

Đôi khi tôi cũng phát điên và sử dụng dấu chấm than, dấu hỏi, v.v.)

Về lý do, đó là một phần vì tôi chỉ đặc biệt như vậy và một phần vì tôi thấy rằng dấu câu phù hợp có thể thêm rất nhiều sự rõ ràng.


Nếu bạn đang sử dụng dấu hỏi, bạn có hiểu mã của riêng mình không?
Moshe

@Moshe: Những điều đó thường có trong TODO khi tôi có thể chưa hiểu đầy đủ về mã của riêng mình.
Adam Lear

2
@Moshe - Tại sao bình luận không thể bao gồm câu hỏi? Câu hỏi có thể hùng biện. Trong thực tế, tôi thường chúng ta? trong các nhận xét của tôi - khi mô tả mã có điều kiện, thay vì giải thích khô khan về logic, việc mô tả logic như một câu hỏi thường rõ ràng hơn. Ví dụ: "Đã đáp ứng các tiêu chí đủ điều kiện chưa? Nếu không, hiển thị cảnh báo cho người dùng."
cjmUK

1
Khi làm việc với các dự án lớn và nhiều cộng tác viên, tôi thường thấy những ý kiến ​​đặt câu hỏi đó là quan trọng nhất.
LennyProgrammer

3

Các câu trả lời khác và mức độ phổ biến của chúng đã cho thấy rõ rằng các điểm dừng hoàn toàn được đánh giá cao trong các bình luận dài hơn, và có lẽ có thể tránh được trong một lớp lót.

Một điểm khác có thể có liên quan là tránh dấu chấm than, đặc biệt là bội số . Thí dụ:

    // Though loop is labor-intensive, performance is fine with with 95K cases!!!

    // This code really sucks!

Mặt khác, dấu hỏi đôi khi khá hữu ích:

    // TODO: What does Crojpler.bway() actually do?

1

Nó phụ thuộc. Nếu tôi viết lên một đoạn văn lớn, phù hợp giải thích những gì một khối mã làm, thì tôi chấm câu đúng, giống như bất kỳ đoạn viết đúng nào khác. OTOH, khi tôi chỉ nhận xét một dòng mã, thì tôi không.

Tại sao? - Tương tự như lý do tại sao tôi viết email bằng cách viết đúng, trong khi tôi có thể sử dụng các câu tốc ký trong tin nhắn SMS. Trong một trường hợp, tôi đang ngồi viết một khối văn bản thích hợp, vì vậy tôi chỉ tự động "làm đúng", trong khi đó, đó chỉ là một ghi chú ngắn gọn để hiểu ý.

Ví dụ thực tế từ mã của tôi:

Ghi chú nhanh:

// check for vk_enter

Tài liệu phương pháp "đúng":

// This method sets up a workspace tab with the given name. Each MDI window has a parent
// workspace specified when it's saved. The code which loads each MDI window then point it to
// the correct workspace.

Nhà phát triển .NET, hả? ;-)
Moshe

@Moshe: Java thực sự. Đây là mã từ một applet rất lớn và phức tạp, về cơ bản giống như một ứng dụng Swing trên máy tính để bàn ngoại trừ việc nó chạy trong trình duyệt. :)
Bàn Bobby

Tôi mặc dù MDI là một thuật ngữ .NET.
Moshe

@Moshe: Nah, đó là chung chung ( en.wikipedia.org/wiki/Mult Môn_document_interface ).
Bàn Bobby

1

Có tôi nghĩ bằng cách này bạn tạo ra một quy ước mã hóa tốt và nó cũng tạo ra một mã dễ đọc cho người thứ 3 xem xét mã của bạn.


1
Một người thứ hai thì sao?
daviewales

0

Tôi sẽ luôn viết hoa và chấm câu đúng cách khi tạo các nhận xét XML mà tôi mong đợi sẽ được nhìn thấy trong IntelliSense và trong tài liệu được tạo của chúng tôi . Đây là những cấu trúc chính thức hơn nhiều và nên được xử lý như vậy.

Tuy nhiên, các bình luận chỉ nhìn thấy trong phần thân của một khối mã, tuy nhiên, chỉ cần rõ ràng nhất có thể. Tùy thuộc vào lập trình viên cách họ đạt được điều đó.

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.