2010-04-22 34 views
17

Khi đặt tên một boolean hoặc hàm trả về một boolean thì thường là tiền tố với 'is', ví dụ:Là hoặc Có để tiền tố các giá trị boolean

  • isPointerNull
  • isShapeSquare

gì về việc khi nào đề cập đến nhiều mục, nó phải là:

  • arePointersNull hoặc isPointersNull
  • areShapesNull hoặc isShapesNull

Tôi có thể thấy các đối số cho cả hai; cung cấp tính nhất quán và có lẽ dễ đọc hơn một chút, làm cho mã được đọc theo cách tự nhiên hơn.

Mọi ý kiến?

+2

Đây có phải là một cộng đồng wiki vì đó là câu hỏi về ý kiến ​​không? –

+0

"Bất cứ khi nào bạn có thể, hãy tránh những âm bản vốn có" Đó là một điểm thực sự tốt, tôi đã không thực sự nghĩ về nó theo cách đó trước đây, nhưng tôi sẽ nhớ điều đó trong tương lai. Chúc mừng! – briantyler

+0

Đừng quên các phương thức boolean được gọi là * sau * một số hành động có thể thay đổi giá trị được gọi của chúng, ví dụ: 'isItemNull()' (như trong JDBC). –

Trả lời

30

Thứ nhất, isPointersNull chỉ là xấu xí. Đừng làm thế.

Tôi thường đi với any hoặc all, như are có thể không rõ ràng. Nó có nghĩa là "có con trỏ null" hay "con trỏ đều là null"? anyPointersNullallPointersNull xóa nội dung đó, IMO.

7

Vui lòng không sử dụng isPointersNull. Nhất quán không có lý do gì để hy sinh về ngữ pháp và khả năng đọc.

+5

+1 - Tôi đồng ý arePointersNull là tốt hơn. Bạn cũng có thể có PointersAreNull sau đó một tuyên bố rõ ràng nếu sẽ tốt hơn. – ChrisBD

+0

sử dụng thay thế nào? – n611x007

0

IMO - phụ thuộc vào ngữ cảnh (sử dụng & khả năng đọc) của biến boolean.

Ví dụ:
- nếu biến là đề cập đến một con trỏ đơn là null, tôi sẽ sử dụng: isPointerNull
- nếu biến được đề cập đến nhiều gợi ý là null, tôi sẽ sử dụng: arePointersNull

HTH.

4

Tùy thuộc vào ngôn ngữ. Nếu bạn đang sử dụng Java, 'isPointersNull' sẽ được hiểu là trường 'pointersNull' trong đó 'arePointersNull' sẽ không nếu bạn đang sử dụng bất kỳ công cụ xử lý JavaBean nào.

Tôi đồng ý rằng khả năng đọc là tối quan trọng nhưng các quy ước về hạt cho phép phân tích cú pháp các đối tượng phổ biến.

+0

cũng đặt chris. mặc dù tên phương thức có thể không có ý nghĩa đối với chúng tôi rất nhiều công cụ mong đợi bạn tuân thủ các quy ước tiêu chuẩn như cú pháp JavaBean và bạn sẽ tự đi lên nếu bạn đi lạc .... chỉ để kết thúc với tiêu chuẩn cuối cùng . – tmeisenh

1

isPointersNull trông giống như lỗi đánh máy. arePointersNull giao tiếp độc đáo thực tế là nhiều hơn một đối tượng duy nhất có liên quan đến việc xem xét boolean này. Nhưng nếu bạn muốn ổn định bạn có thể tham khảo một mảng hoặc bộ sưu tập, mà con trỏ của bạn nên được:

  • isPointerArrayNull
  • isPointerCollectionEmpty
  • , vv
+0

Trong khi nó giao tiếp độc đáo mà chúng ta đang nói về nhiều mục, nó có nghĩa là * nhiều hơn một là null * (và một số có thể không null), hoặc có nghĩa là * có nhiều hơn một con trỏ, và tất cả chúng đều là *? –

0

Cá nhân tôi đi với isWhatever nếu tôi đang tham chiếu phương thức getter của biến boolean cho dù nó có xấu đi theo các quy tắc ngữ pháp hay không. Nhưng nếu tôi có một phương pháp kiểm tra một đối tượng dựa trên một số quy tắc kinh doanh (như nếu một số hoặc số là/là số nguyên tố), tôi sẽ sử dụng các tên sẽ làm cho giáo viên tiếng Anh của tôi hạnh phúc.

Các vấn đề liên quan