ทำไม ComboBox ถึงไม่เพียงพอ
คุณสร้างแอปพลิเคชันทางธุรกิจ คุณแก้ปัญหาเดิมๆ ซ้ำแล้วซ้ำเล่า
คุณสร้างระบบค้นหาลูกค้า คุณสร้างช่อง autocomplete สำหรับสินค้า คุณสร้างป๊อปอัปสำหรับการเลือกข้อมูล
ไลบรารี UI ส่วนใหญ่ปฏิบัติกับสิ่งเหล่านี้เป็นวิดเจ็ตที่แยกจากกัน พวกเขาเรียกมันว่า lookup หรือช่อง autocomplete แต่นี่คือความผิดพลาด
สิ่งเหล่านี้ไม่ใช่ปัญหาที่แตกต่างกัน แต่มันคือปัญหาเดียวกัน ผมเรียกแนวคิดนี้ว่า Locator
แอปพลิเคชันทางธุรกิจอาศัยการอ้างอิง (references)
- ใบสั่งขายอ้างอิงถึงลูกค้า
- ใบแจ้งหนี้อ้างอิงถึงซัพพลายเออร์
- รายการธุรกรรมอ้างอิงถึงสินค้า
ฐานข้อมูลจัดเก็บสิ่งเหล่านี้เป็น ID แต่ผู้ใช้ไม่ได้คิดเป็น ID ผู้ใช้คิดเป็นชื่อ รหัส หรือบาร์โค้ด
ปัญหาที่แท้จริงไม่ใช่เรื่องที่คุณจัดเก็บ ID อย่างไร แต่ปัญหาคือผู้ใช้จะค้นหาเอนทิตี (entity) ที่ถูกต้องได้อย่างไรโดยใช้ข้อมูลที่พวกเขารู้
ComboBox ใช้ได้ดีกับรายการขนาดเล็ก เช่น รายชื่อประเทศหรือสกุลเงิน ซึ่งรายการเหล่านี้มีเพียงไม่กี่สิบแถว
ComboBox จะใช้ไม่ได้ผลกับชุดข้อมูลขนาดใหญ่ คุณไม่สามารถเลื่อนดูรายชื่อลูกค้า 100,000 คนได้ ในสเกลขนาดนี้ คุณไม่ได้กำลังเลือกจากรายการอีกต่อไป แต่คุณกำลังระบุตำแหน่ง (locating) ของข้อมูลหนึ่งรายการ
Locator ไม่ใช่คอนโทรล UI แต่มันคือพฤติกรรม (behavior)
Locator ทำได้มากกว่าแค่การคืนค่า แต่มันคือการจัดการการอ้างอิงทางธุรกิจ (resolving a business reference)
เมื่อผู้ใช้เลือกสินค้า แอปไม่ต้องการแค่ ProductId เท่านั้น แต่ยังต้องการราคาต่อหน่วย อัตราภาษีมูลค่าเพิ่ม (VAT) และหน่วยวัดด้วย
Locator จัดหาข้อมูลทั้งหมดนี้ให้โดยการจัดการการอ้างอิงภายในบริบทที่เฉพาะเจาะจง
UI อาจเปลี่ยนแปลงไปตามรูปแบบ:
- บนเดสก์ท็อป มันอาจดูเหมือนช่องค้นหา 2 ช่อง
- ในตาราง (grid) มันอาจดูเหมือนตัวแก้ไขแบบกำหนดเอง (custom editor)
- บนมือถือ มันอาจดูเหมือนหน้าจอการค้นหา
รูปลักษณ์อาจเปลี่ยนไป แต่พฤติกรรมยังคงเดิม
Locator ที่ดีต้องคำนึงถึงผู้ใช้ ผู้ใช้ที่มีประสบการณ์มักใช้คีย์บอร์ด Locator ควรจะทำการเลือกให้เสร็จสิ้นทันทีหากพบข้อมูลที่ตรงกันเพียงหนึ่งเดียว และควรจะถามให้เลือกก็ต่อเมื่อมีข้อมูลที่ตรงกันหลายรายการเท่านั้น
เลิกปฏิบัติกับการค้นหา, autocomplete และป๊อปอัปเหมือนเป็นวิดเจ็ตที่ไม่เกี่ยวข้องกัน และจงยอมรับว่า Locator คือแนวคิดพื้นฐานสำหรับซอฟต์แวร์ทางธุรกิจ
แหล่งที่มา: https://dev.to/tbebekis/-fundamental-concepts-of-business-applications-i-why-a-combobox-is-not-enough-pb4
