Làm thế nào để bạn đặt tên cho điều khiển GUI của bạn?


12

Nói chung, đây được coi là một cách thực hành tồi để sử dụng ký hiệu Hungary , nhưng phổ biến là tìm các điều khiển GUI có tên userNameTextBoxuserNameLabel.

Bạn có đặt loại điều khiển trong tên của nó không? Đây không phải là một loại ký hiệu Hungary sao?


trên toàn bộ mỏ không có tên vì chúng không cần chúng trong WPF
jk.

Câu trả lời:


12

Như bạn nói. Nói chung, ký hiệu Hungary là một thực hành xấu. Tôi muốn giữ tên của mình càng gần tên miền càng tốt, nhưng đôi khi điều bạn đang cố nói là đây là hộp văn bản và đây là nhãn .

Xem câu trả lời của Kramii cho một câu hỏi khác vì anh ta rất hợp lý về lý do tại sao anh ta vẫn sử dụng tiếng Hungary trong một số tình huống.

Như với tất cả các mã, tính nhất quán và tự đánh giá là chìa khóa. Nếu bạn và nhóm của bạn đồng ý về cách các điều khiển GUI khác nhau được gắn nhãn và những yếu tố nào cần nhãn, bạn sẽ ổn thôi :)


8

Trên thực tế tôi sử dụng ký hiệu Hungary, chỉ cho các điều khiển GUI. Tôi sử dụng một cái gì đó như lblText, rbgroup1, lvTable vv cho nhãn, nút radio và chế độ xem danh sách.

Họ không bao giờ có xu hướng thay đổi và dù sao thì điều gì là biến điều khiển GUI và điều gì không.

Tuy nhiên, vì tôi sử dụng WPF với các khả năng ràng buộc, nên thực sự không cần thiết phải đặt tên cho chúng nữa, vì nó được liên kết với thuộc tính C #.

Btw, đừng phạm sai lầm khi gọi lvListViewPersons điều khiển mà tôi thấy. Nếu một biến có tiền tố với lv, bạn có thể thấy đó là một listview.


3
Đồng ý với điều này. Các điều khiển GUI là nơi duy nhất mà ký hiệu Hungary không phải là tội lỗi chính (tất nhiên là IMO)
Wayne Molina

4

Nhóm của chúng tôi đang sử dụng ký hiệu Hungary cho các điều khiển GUI, không phải cho phần còn lại của mã.

Ví dụ điển hình, nhãn theo sau là hộp văn bản:

  • lblFirstName
  • txtFirstName

Thêm vào đó, nó giúp bạn dễ dàng tìm thấy hộp văn bản của mình, chỉ cần gõ "txt" và intellisense sẽ làm phần còn lại.


1

Tôi đang sử dụng ký hiệu Hungary cho các thành phần GUI. Nó thực sự là nỗi đau khi bạn đóng QtDesigner, mở Visual Studio và khi bạn muốn thiết lập văn bản trên nút nếu bạn có textbox tên username, passwordvv Khi bạn sử dụng Qt, nó không phải là vấn đề lớn, bởi vì tất cả các yếu tố GUI được gói bên trong uiđối tượng ( ui.username), nhưng khi tôi sử dụng Windows Forms, hộp văn bản có tên người dùng chỉ làm nổi không gian tên.

Trong trường hợp đó, txtUsername, btnLogin, lblStatus, vv là lựa chọn rõ ràng tốt hơn.


1

Tôi tránh sử dụng ký hiệu tiếng Đức cho các điều khiển GUI - Tôi sẽ tránh đặt tên một điều khiển như 'lblFirstName' vì tôi không thực sự quan tâm rằng đó là nhãn - từ quan điểm ràng buộc dữ liệu, nó chỉ là thứ để ràng buộc.

Đối với các điều khiển cần tên, tôi thường thêm tiền tố uxcho 'trải nghiệm người dùng'. Điều đó làm rõ rằng mục này chỉ dành cho người dùng tương tác. Ví dụ: mô hình khung nhìn của tôi có thể có một thuộc tính được gọi FirstNamevà khung nhìn có thể có một điều khiển được gọi uxFirstName. Điều này có thêm lợi ích là tất cả các điều khiển được đặt tên của tôi được nhóm lại một cách độc đáo trong IDE của tôi.


3
Không phải là uxtiền tố Bản thân ký hiệu Hungary? Có thể loại khác (tôi quên tên của hai) chỉ ý nghĩa và không loại, nhưng vẫn là một dạng của tiếng Hungary ;-)
Wayne Molina

Tôi nghĩ rằng bạn đang đề cập đến apps hungariantrái ngược với systems hungarian. Ứng dụng không được coi là có hại như các hệ thống, nhưng tôi nghĩ rằng ý nghĩa của 'dòng' có thể quá cao để thậm chí được coi là ứng dụng. Tôi đoán bạn có thể gọi nó là lớp
Cameron

1

Tôi biết mọi người không thể chịu được ký hiệu Hungary nói chung, nhưng tôi vẫn thấy nó rất hữu ích ở nhiều nơi. Đối với GUI tôi sử dụng tiền tố wnd ít nhất.

Vấn đề không sử dụng ký hiệu Hungary rất đơn giản, một khi bạn rời khỏi vùng nước mịn của MSVS, việc điều hướng sẽ mất một mũi lặn. Bạn thấy một số loại SomeValue = SomeOtherValuevà bạn không có manh mối gì đang xảy ra trừ khi bạn tìm kiếm mọi thứ chết tiệt. Thông qua grep hoặc tìm kiếm cũ tốt, thường giết chết năng suất ngay tại đó, các IDE khác ngoài QT và MSVS thực sự rất tệ trong việc tra cứ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.