Why a ComboBox Is Not Enough

Bạn xây dựng các ứng dụng doanh nghiệp. Bạn giải quyết cùng một vấn đề lặp đi lặp lại.

Bạn xây dựng các chức năng tìm kiếm khách hàng. Bạn xây dựng các trường tự động hoàn thành (autocomplete) sản phẩm. Bạn xây dựng các cửa sổ popup để lựa chọn.

Hầu hết các thư viện UI coi đây là các widget riêng biệt. Họ gọi chúng là lookup hoặc hộp autocomplete. Đây là một sai lầm.

Đây không phải là những vấn đề khác nhau. Chúng là cùng một vấn đề. Tôi gọi khái niệm này là Locator.

Các ứng dụng doanh nghiệp dựa trên các tham chiếu (references).

  • Một đơn hàng tham chiếu đến một khách hàng.
  • Một hóa đơn tham chiếu đến một nhà cung cấp.
  • Một giao dịch tham chiếu đến một sản phẩm.

Cơ sở dữ liệu lưu trữ chúng dưới dạng ID. Người dùng không tư duy bằng ID. Người dùng tư duy bằng tên, mã hoặc mã vạch.

Vấn đề thực sự không nằm ở cách bạn lưu trữ một ID. Vấn đề là cách người dùng tìm thấy thực thể (entity) chính xác bằng những gì họ biết.

Một ComboBox hoạt động tốt với các danh sách nhỏ. Hãy dùng nó cho quốc gia hoặc tiền tệ. Những danh sách này chỉ có vài chục dòng.

Một ComboBox sẽ thất bại với các tập dữ liệu lớn. Bạn không thể cuộn qua 100.000 khách hàng. Ở quy mô này, bạn không còn là đang chọn từ một danh sách nữa. Bạn đang định vị (locating) một bản ghi.

Một Locator không phải là một thành phần điều khiển UI (UI control). Nó là một hành vi (behavior).

Một Locator làm nhiều việc hơn là chỉ trả về một giá trị. Nó giải quyết một tham chiếu kinh doanh.

Khi người dùng chọn một sản phẩm, ứng dụng cần nhiều hơn là chỉ một ProductId. Nó cần đơn giá. Nó cần thuế suất VAT. Nó cần đơn vị đo lường.

Một Locator cung cấp tất cả những điều này bằng cách giải quyết tham chiếu trong một ngữ cảnh cụ thể.

Giao diện UI có thể thay đổi:

  • Trên máy tính để bàn, nó trông giống như hai trường có thể tìm kiếm.
  • Trong một lưới (grid), nó trông giống như một trình chỉnh sửa tùy chỉnh (custom editor).
  • Trên thiết bị di động, nó trông giống như một màn hình tìm kiếm.

Diện mạo thay đổi, nhưng hành vi vẫn giữ nguyên.

Một Locator tốt là phải tôn trọng người dùng. Những người dùng có kinh nghiệm thường sử dụng bàn phím. Một Locator nên hoàn tất việc lựa chọn ngay lập tức nếu nó tìm thấy một kết quả khớp duy nhất. Nó chỉ nên yêu cầu lựa chọn nếu có nhiều kết quả khớp.

Đừng coi tìm kiếm, tự động hoàn thành và popup là các widget không liên quan đến nhau nữa. Hãy công nhận Locator là một khái niệm nền tảng cho phần mềm doanh nghiệp.

Source: https://dev.to/tbebekis/-fundamental-concepts-of-business-applications-i-why-a-combobox-is-not-enough-pb4