2010-06-05 35 views
9

Cho phép nói rằng tôi có một biến chứa số tên công cụ tìm kiếm trong một tệp, bạn sẽ đặt tên cho nó là gì?Tên biến dài

  • number_of_seach_engine_names
  • search_engine_name_count
  • num_search_engines
  • engine_names
  • tên khác?

Tên đầu tiên mô tả biến chứa chính xác, nhưng không quá dài ?, bất kỳ lời khuyên nào về việc chọn tên biến? đặc biệt là cách rút ngắn tên quá dài hoặc loại chữ viết tắt nào để sử dụng?

+3

Tôi đã gặp phải sự bất hạnh khi làm việc với nhiều người sẽ gọi nó là 'nsen', hoặc thậm chí chỉ là' n'. Miễn là tên biến và chức năng của bạn nhất quán và mô tả, đừng quá hung hăng về nó (bạn có thể xem xét chức năng đặt tên làm động từ để làm cho mã của bạn "đọc" tốt hơn). Nếu bạn phải duy trì bất kỳ mã nào với các biến vô nghĩa, bạn chắc chắn đã nguyền rủa tác giả (và địa ngục có một vị trí đặc biệt dành cho những người phải duy trì mã riêng của họ, gặp rắc rối và vẫn không thay đổi cách của họ) . – Mawg

+3

Cách đây lâu, tôi đã từng cắt và dán tên biến và chức năng của mình, nhưng ngày nay hầu hết các IDE đều có mã hoàn thành, vì vậy hãy mô tả. Tôi tin rằng việc đặt tên biến nghèo là "mùi mã", và thường được tìm thấy cùng với thiếu cấu trúc, thiếu nhận xét, v.v. Có thể tôi sẽ bị quá tải, nhưng không còn sử dụng truyền thống (từ Fortran) nữa i, j, k' cho các biến điều khiển vòng lặp. – Mawg

+0

Bạn có thể sẽ lưu trữ trong một mảng hoặc từ điển 'engines', sau đó nói' engines.count' hoặc 'engines.len' hoặc bất cứ tên phương thức thích hợp nào có thể là – Brandin

Trả lời

19

Làm thế nào về numEngineNames?

Chọn tên biến là nghệ thuật nhiều hơn khoa học. Bạn muốn một cái gì đó mà không có một kỷ nguyên để loại, nhưng đủ dài để được thể hiện. Đó là một sự cân bằng chủ quan.

Tự hỏi, nếu ai đó đang xem tên biến lần đầu tiên, có khả năng người đó sẽ hiểu mục đích của nó một cách hợp lý không?

6

Tùy thuộc vào phạm vi của biến. Biến cục bộ trong một hàm ngắn thường không có giá trị 'tên hoàn hảo', chỉ cần gọi nó là engine_count hoặc một cái gì đó tương tự. Thông thường, ý nghĩa sẽ dễ dàng phát hiện, nếu không phải một nhận xét có thể tốt hơn tên biến hai dòng.

Biến phạm vi rộng hơn - ví dụ: các biến toàn cục (nếu họ thực sự cần thiết!), Các biến thành viên - xứng đáng IMHO một tên đó là gần tự bộ phim tài liệu. Tất nhiên tìm kiếm bản khai báo ban đầu không phải là khó khăn và hầu hết IDE tự động làm điều đó, nhưng định danh của biến không nên vô nghĩa (tức là number hoặc count).

Tất nhiên, tất cả điều này phụ thuộc rất nhiều vào phong cách mã hóa cá nhân của bạn và các quy ước tại nơi làm việc của bạn.

12

Tên quá dài khi có tên ngắn hơn truyền tải mục đích của biến đó.

Tôi nghĩ rằng engineCount sẽ ổn ở đây. Số lượng tên động cơ có lẽ tương đương với số lượng động cơ.

Xem bài đăng của JaredPar.

1

Nếu đó là biến cục bộ trong hàm, tôi có thể gọi nó là n hoặc có thể là ne. Hầu hết các hàm chỉ chứa hai hoặc ba biến, do đó, một tên dài là không cần thiết.

+7

Tôi không đồng ý, và nó chắc chắn phụ thuộc vào hàm, nhưng biến vẫn phải mang tính mô tả đủ để truyền đạt ý nghĩa của nó. Nếu nó chỉ là một chức năng ba dòng và n được thiết lập để engines.Count trên dòng đầu tiên, sau đó ý nghĩa là hiển nhiên. Nhưng khi chức năng tăng lên, việc sử dụng n có thể xa hơn và xa hơn cách nó được khởi tạo, cái tên có ít ý nghĩa hơn. Nói chung, tôi nghĩ rằng 1 và 2 tên ký tự nên được dành riêng hoàn toàn cho các biến throwaway thời gian ngắn, chẳng hạn như các biến vòng lặp và các tham số lambda. –

+0

@Anthony Khi hàm phát triển, nó nên được cấu trúc lại thành các hàm ngắn hơn. –

+5

Tôi không nói về chức năng kéo dài cho hàng trăm dòng hoặc thậm chí hàng chục. Nhưng làm thế nào là khó khăn để cho ý nghĩa của tên? Hãy nghĩ đến cái nhựa nghèo nàn sẽ phải xem mã đó ở đâu đó trên đường dây, và xem xét rằng nhựa nghèo có thể là bạn. –

-2

Phụ thuộc vào tuổi thọ hoặc mục đích dự định. Tuy nhiên, điều đó bao gồm cả tuổi thọ phát triển. Gần đây tôi đã đặt tên là "công cụ" vectơ vì nó chỉ được sử dụng trong một thử nghiệm.

Nếu biến chỉ được khai báo hoặc xác định ngay bên cạnh việc sử dụng nó, thì tôi sẽ không bận tâm với một cái tên biểu cảm. Nếu không, tôi sẽ tìm một tên có độ dài trung bình. Tôi không bao giờ có thể hiểu tại sao mọi người sẽ sử dụng tên, ví dụ, trên 10 ký tự. Một cái gì đó như enames sẽ là sự lựa chọn của tôi cho câu hỏi của bạn.

2

Phụ thuộc vào bối cảnh, nếu nó là một biến địa phương, ví dụ như

int num = text.scan(SEARCH_ENGINE_NAME).size(); 

sự rõ ràng hơn bên phải của biểu thức ngắn hơn tên tôi chọn. Lý do là chúng ta đang ở trong phạm vi giới hạn có thể là 4-5 dòng và do đó có thể giả định rằng người đọc sẽ có thể tạo kết nối giữa tên viết tắt và biểu thức bên phải. Tuy nhiên, nếu đó là lĩnh vực của một lớp, tôi muốn được tiết lộ càng tốt.

2

Xem tương tự question

Các primary technical imperative là để giảm độ phức tạp. Các biến nên được đặt tên để giảm độ phức tạp. Đôi khi điều này dẫn đến tên ngắn hơn, đôi khi còn có tên dài hơn. Nó thường tương ứng với mức độ khó để người duy trì hiểu được sự phức tạp của mã.

Trên một đầu của các phổ, bạn có cho vòng lặp và chỉ mục vòng lặp. Chúng có thể có tên như i hoặc j, bởi vì chúng chỉ là phổ biến và đơn giản. Cung cấp cho họ tên dài hơn sẽ chỉ gây nhầm lẫn hơn.

Nếu biến được sử dụng thường xuyên nhưng đại diện cho một cái gì đó phức tạp hơn, thì bạn phải đặt tên rõ ràng để người dùng không phải học lại ý nghĩa của nó mỗi lần sử dụng.

Ở đầu kia của quang phổ là các biến được sử dụng rất hiếm khi. Bạn vẫn muốn giảm sự nhầm lẫn ở đây, nhưng cho nó một cái tên ngắn thì ít quan trọng hơn, bởi vì hình phạt cho việc tái phát mục đích của biến số này không được trả rất thường xuyên.

1

Khi suy nghĩ về mã của bạn, hãy cố gắng nhìn nó từ góc nhìn của người khác. Điều này sẽ giúp không chỉ với việc chọn tên, mà còn giữ cho toàn bộ mã của bạn có thể đọc được.

Có tên biến thực sự dài sẽ làm xáo trộn khả năng đọc mã của bạn, vì vậy bạn muốn tránh những điều đó. Nhưng ở đầu kia của quang phổ, bạn muốn tránh các tên cực ngắn hoặc từ viết tắt như "n" hoặc "ne". Các tên ngắn, khó hiểu như thế này sẽ khiến ai đó cố gắng đọc mã của bạn để xé tóc ra. Thông thường, một hoặc hai biến thư được sử dụng cho các tác vụ nhỏ như được tăng lên trong vòng lặp for, ví dụ.

Vì vậy, những gì bạn còn lại là sự cân bằng giữa hai thái cực này. "Num" là một từ viết tắt thường được sử dụng, và bất kỳ lập trình viên bán có kinh nghiệm nào sẽ biết ý bạn là gì ngay lập tức. Vì vậy, một cái gì đó như "numEngines" hoặc "numEngineNames" sẽ hoạt động tốt. Ngoài ra, bạn cũng có thể đặt nhận xét trong mã của mình bên cạnh biến lần đầu tiên được sử dụng. Điều này sẽ cho phép người đọc biết chính xác những gì bạn đang làm và giúp tránh bất kỳ sự nhầm lẫn nào có thể xảy ra.

1

Tôi đặt tên là "search_engine_count", vì nó chứa số lượng công cụ tìm kiếm.

0

Sử dụng Esc + _ + Esc viết:

this_is_a_long_variable = 42 

Esc + _ + Esc_ không ký tự giống hệt nhau trong Mathematica. Đó là lý do tại sao bạn được phép sử dụng cái cũ nhưng không được phép sử dụng cái cũ.

+0

Tín dụng chuyển đến jVincent https://mathematica.stackexchange.com/a/31785/47875 – Miladiouss