Bagaimana Anda memberi nama kontrol GUI Anda?


12

Biasanya dianggap praktik buruk untuk menggunakan notasi Hongaria , tetapi umum untuk menemukan kontrol GUI bernama userNameTextBoxdan userNameLabel.

Apakah Anda memasukkan tipe kontrol di namanya? Bukankah ini semacam notasi Hongaria?


secara keseluruhan tambang tidak memiliki nama karena mereka tidak membutuhkannya di WPF
jk.

Jawaban:


12

Seperti katamu. Secara umum, notasi Hongaria adalah praktik yang buruk. Saya ingin menjaga nama saya sedekat mungkin dengan domain, tetapi kadang-kadang yang ingin Anda katakan adalah bahwa ini adalah kotak teks dan ini adalah labelnya .

Lihat jawaban Kramii untuk pertanyaan lain karena pendapatnya yang masuk akal mengapa dia masih menggunakan bahasa Hongaria dalam situasi tertentu.

Seperti semua kode, konsistensi dan evaluasi diri adalah kuncinya. Jika Anda dan tim Anda sepakat tentang bagaimana berbagai kontrol GUI diberi label, dan elemen apa yang perlu diberi label, Anda akan baik-baik saja :)


8

Sebenarnya saya menggunakan notasi Hongaria, hanya untuk kontrol GUI. Saya menggunakan sesuatu seperti lblText, rbGroup1, lvTable dll untuk label, tombol radio dan tampilan daftar.

Mereka tidak pernah cenderung berubah dan jelas variabel apa yang merupakan kontrol GUI dan apa yang tidak.

Namun, karena saya menggunakan WPF dengan kemungkinan yang mengikat, sebenarnya tidak perlu lagi untuk menamai mereka sama sekali, karena itu diikat ke properti C #.

Btw, jangan membuat kesalahan dengan memanggil kontrol lvListViewPersons yang sesekali saya lihat. Jika suatu variabel diawali dengan lv, Anda dapat melihatnya sebagai listview.


3
Setuju dengan ini. Kontrol GUI adalah satu - satunya tempat di mana notasi Hungaria bukan merupakan dosa utama (tentu saja IMO)
Wayne Molina

4

Tim kami menggunakan notasi Hongaria untuk kontrol GUI, bukan untuk kode lainnya.

Contoh umum, label diikuti oleh kotak teks:

  • lblFirstName
  • txtFirstName

Plus itu membuatnya mudah untuk menemukan kotak teks Anda, cukup ketik "txt" dan intellisense akan melakukan sisanya.


1

Saya menggunakan notasi Hongaria untuk elemen GUI. Ini benar-benar sakit ketika Anda menutup QtDesigner, terbuka Visual Studio dan ketika Anda ingin teks set tombol pada jika Anda memiliki teks bernama username, password, dll Bila Anda menggunakan Qt, tidak masalah besar, karena semua elemen GUI yang dibungkus dalam uiobjek ( ui.username), tetapi ketika saya menggunakan Formulir Windows, kotak teks bernama nama pengguna hanya membengkak namespace.

Dalam hal ini, txtUsername, btnLogin, lblStatus, dll adalah pilihan jelas lebih baik.


1

Saya menghindari penggunaan notasi hungaria untuk kontrol GUI - Saya akan menghindari penamaan kontrol seperti `lblFirstName 'karena saya tidak terlalu peduli bahwa itu adalah label - dari sudut pandang data yang mengikat itu hanya sesuatu yang mengikat.

Untuk kontrol yang memerlukan nama, saya biasanya menambahkan awalan uxuntuk 'pengalaman pengguna'. Itu menjelaskan bahwa item tersebut dimaksudkan hanya untuk pengguna untuk berinteraksi. Misalnya model tampilan saya mungkin memiliki properti yang dipanggil FirstNamedan tampilan mungkin memiliki kontrol yang disebut uxFirstName. Ini memiliki manfaat tambahan bahwa semua kontrol bernama saya dikelompokkan dengan baik di IDE saya.


3
Bukankah uxawalan itu sendiri Notasi Hongaria? Mungkin jenis lainnya (saya lupa nama keduanya) yang menunjukkan makna dan bukan tipe, tetapi masih berupa bahasa Hongaria ;-)
Wayne Molina

Saya pikir Anda merujuk apps hungariansebagai lawan systems hungarian. Aplikasi hungarian tidak dianggap hampir sama berbahayanya dengan sistem, tapi saya pikir arti dari'ux 'bisa menjadi level yang terlalu tinggi untuk dianggap sebagai aplikasi. Saya kira Anda bisa menyebutnya layer hungarian atau sesuatu :)
MattDavey

1

Saya tahu orang tidak tahan dengan notasi Hongaria secara keseluruhan, tetapi saya masih merasa ini sangat berguna di banyak tempat. Untuk GUI saya menggunakan awalan wnd setidaknya.

Masalah tidak menggunakan notasi Hungaria sederhana, setelah Anda meninggalkan perairan MSVS yang mulus, navigasi membutuhkan penyelaman hidung. Anda melihat semacam SomeValue = SomeOtherValuedan Anda tidak tahu apa yang sedang terjadi kecuali Anda melihat setiap hal. Melalui grep atau pencarian lama yang baik, yang biasanya membunuh produktivitas di sana, IDE selain QT dan MSVS sangat buruk dalam pencarian.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.