คุณตั้งชื่อการควบคุม GUI ของคุณได้อย่างไร?


12

มันเป็นโดยทั่วไปถือว่าการปฏิบัติที่ดีที่จะใช้สัญกรณ์ฮังการีแต่เป็นเรื่องธรรมดาที่จะหาการควบคุม GUI ชื่อและuserNameTextBoxuserNameLabel

คุณใส่ประเภทการควบคุมลงในชื่อหรือไม่ นี่เป็นสัญกรณ์ฮังการีไม่ใช่หรือ


ในเหมืองทั้งหมดไม่มีชื่อตามที่พวกเขาไม่ต้องการใน WPF
jk

คำตอบ:


12

เหมือนที่คุณพูด โดยทั่วไปสัญกรณ์ฮังการีเป็นวิธีปฏิบัติที่ไม่ดี ผมชอบที่จะให้ชื่อของฉันใกล้เคียงกับโดเมนที่เป็นไปได้ แต่บางครั้งสิ่งที่คุณกำลังพยายามที่จะพูดได้ว่านี่เป็นช่องและนี่คือฉลาก

ดูคำตอบของ Kramiiสำหรับคำถามอีกข้อว่าเหตุใดเขาจึงยังคงใช้ภาษาฮังการีในบางสถานการณ์

เช่นเดียวกับรหัสทั้งหมดความสอดคล้องและการประเมินตนเองเป็นกุญแจสำคัญ หากคุณและทีมของคุณเห็นด้วยกับการควบคุมป้ายกำกับ GUI ที่แตกต่างกันและองค์ประกอบใดบ้างที่จำเป็นต้องใช้ป้ายกำกับคุณจะไม่เป็นไร :)


8

จริงๆแล้วฉันใช้เครื่องหมายฮังการีสำหรับตัวควบคุม GUI เท่านั้น ฉันใช้บางอย่างเช่น lblText, rbGroup1, lvTable เป็นต้นสำหรับป้ายกำกับปุ่มตัวเลือกและมุมมองรายการ

พวกเขาไม่เคยมีแนวโน้มที่จะเปลี่ยนแปลงอย่างไรก็ตามและเป็นที่ชัดเจนว่าตัวแปรคือตัวควบคุม GUI และสิ่งใดที่ไม่ใช่

อย่างไรก็ตามเนื่องจากฉันใช้ WPF ที่มีความเป็นไปได้ในการโยงจึงไม่จำเป็นต้องตั้งชื่อพวกมันอีกต่อไปเนื่องจากมันถูกผูกเข้ากับคุณสมบัติ C #

Btw อย่าทำผิดพลาดในการเรียกตัวควบคุม lvListViewPersons สิ่งที่ฉันเห็นเป็นครั้งคราว หากตัวแปรนำหน้าด้วย lv คุณสามารถดูได้ว่าเป็น listview อยู่แล้ว


3
เห็นด้วยกับสิ่งนี้ ส่วนควบคุม GUI เป็นสถานที่แห่งเดียวที่มีสัญกรณ์ฮังการีไม่ใช่บาปสำคัญ (IMO แน่นอน)
Wayne Molina

4

ทีมงานของเราใช้สัญลักษณ์ฮังการีสำหรับการควบคุม GUI ไม่ใช่ส่วนที่เหลือของรหัส

ตัวอย่างทั่วไปป้ายกำกับตามด้วยกล่องข้อความ:

  • lblFirstName
  • txtFirstName

นอกจากนี้ยังทำให้ค้นหากล่องข้อความของคุณได้ง่ายเพียงแค่พิมพ์ "txt" และ Intellisense จะจัดการส่วนที่เหลือให้เอง


1

ฉันใช้สัญลักษณ์ฮังการีสำหรับองค์ประกอบ GUI จริงๆมันเป็นความเจ็บปวดเมื่อคุณปิด QtDesigner เปิด Visual Studio และเมื่อคุณต้องการไปยังข้อความชุดที่ปุ่มถ้าคุณมีช่องชื่อusername, passwordฯลฯ เมื่อคุณใช้ Qt ก็ไม่ได้เป็นปัญหาใหญ่เพราะองค์ประกอบ GUI ทั้งหมดจะถูกห่อภายในuiวัตถุ ( ui.username) แต่เมื่อฉันใช้ Windows Forms กล่องข้อความชื่อชื่อผู้ใช้เท่านั้น bloats namespace

ในกรณีที่txtUsername, btnLogin, lblStatusฯลฯ เป็นตัวเลือกที่ดีกว่าอย่างเห็นได้ชัด


1

ฉันหลีกเลี่ยงการใช้สัญกรณ์ฮังการีสำหรับการควบคุม GUI - ฉันจะหลีกเลี่ยงการตั้งชื่อตัวควบคุมเช่น `lblFirstName 'เพราะฉันไม่สนใจว่ามันเป็นป้ายกำกับ - จากมุมมองการผูกข้อมูลเป็นเพียงสิ่งที่จะผูกมัด

สำหรับการควบคุมที่ต้องการชื่อฉันมักจะเพิ่มคำนำหน้าuxสำหรับ 'ประสบการณ์ผู้ใช้' ทำให้ชัดเจนว่ารายการนั้นมีไว้เพื่อให้ผู้ใช้โต้ตอบเท่านั้น ตัวอย่างเช่นรูปแบบมุมมองของฉันอาจจะมีคุณสมบัติที่เรียกว่าและมุมมองที่อาจจะมีการควบคุมที่เรียกว่าFirstName uxFirstNameสิ่งนี้มีประโยชน์เพิ่มเติมที่การควบคุมที่มีชื่อของฉันทั้งหมดได้รับการจัดกลุ่มอย่างดีใน IDE ของฉัน


3
uxคำนำหน้าไม่ใช่ภาษาฮังการีหรือไม่ อาจเป็นประเภทอื่น (ฉันลืมชื่อของทั้งสอง) ที่บ่งบอกถึงความหมายและไม่พิมพ์ แต่ยังคงเป็นรูปแบบของฮังการี ;-)
Wayne Molina

ฉันคิดว่าคุณหมายถึงเมื่อเทียบกับapps hungarian systems hungarianแอปในฮังการีไม่ถือว่าเป็นระบบที่อันตราย แต่ฉันคิดว่าความหมายของ'ux 'อาจสูงเกินไปที่จะถือว่าเป็นแอพ ฉันเดาว่าคุณสามารถเรียกมันว่าฮังการีหรือเลเยอร์หรืออะไรก็ได้ :)
MattDavey

1

ฉันรู้ว่าผู้คนไม่สามารถยืนสัญกรณ์ฮังการีโดยรวมได้ แต่ฉันก็ยังพบว่ามันมีประโยชน์มากในหลาย ๆ ที่ สำหรับ GUI ฉันใช้คำนำหน้า wnd อย่างน้อยที่สุด

ปัญหาของการไม่ใช้สัญกรณ์ฮังการีเป็นเรื่องง่ายเมื่อคุณออกจากน่านน้ำเรียบของ MSVS การนำทางจะดำน้ำที่จมูก คุณเห็นอะไรบางอย่างSomeValue = SomeOtherValueและคุณไม่มีเงื่อนงำว่าเกิดอะไรขึ้นเว้นแต่คุณจะมองทุกอย่าง ผ่านการค้นหาแบบ grep หรือการค้นหาแบบเก่าที่ดีซึ่งโดยปกติจะฆ่าประสิทธิภาพการทำงานที่นั่น IDEs อื่นที่ไม่ใช่ QT และ MSVS นั้นแย่มากที่การค้นหา

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.