# 55: Làm cho giao diện dễ sử dụng hơn

Một trong hầu hết các nhiệm vụ phổ biến trong việc phát triển phần mềm đó là kỹ thuật làm giao diện. Các giao diện đạt mức độ cao nhất của sự trừu tượng (những người sử dụng giao diện), ở cấp độ thấp nhất (chức năng các giao diện) và ở tầm trung ( các lớp giao diện, thư viện các giao diện, vân vân,…). Bất kể việc bạn có làm việc với những người dùng cuối cùng hay không để chỉ rõ cách thức họ tương tác bằng một một hệ thống, hay kết hợp với các nhà phát triển để chỉ ra một API, hoặc là trình bày các chức năng riêng biệt cho một class, thiết kế giao diện vẫn là một phần cực kì quan trọng trong công việc của bạn. Nếu hoàn thành tốt, các giao diện của bạn sẽ được đưa vào sử dụng và đồng thời thúc đẩy năng suất các công việc. Nếu làm không tốt, có thể giao diện sẽ gây thất vọng hoặc tệ hơn là nguồn gốc phát sinh các lỗi.

Một giao diện tốt sẽ có các đặc điểm sau:

  • Dễ dàng sử dụng chính xác: Những người đang sử dụng một giao diện được thiết kế tốt hầu hết luôn sử dụng chúng một cách chính xác, bởi vì giao diện đó thật sự rất dễ hiểu và sử dụng. Trong một GUI, người ta thường click vào các icon, nút bấm hoặc cổng vào menu, tại vì nó rõ ràng và dễ thực hiện. Trong giao diện API, người ta hầu hết thường duyệt các thông số chính xác bằng các giá trị chính xác, vì đó là điều hiển nhiên nhất. Với các giao diện dễ dàng để sử dụng một cách chính xác, công việc sẽ hoạt động trơn tru.
  • Khó để sử dụng sai: Một giao diện tốt sẽ đoán trước được những lỗi sai mà con người có thể mắc phải và làm chúng trở nên khó xảy ra hơn vào lần tiếp theo. Một giao diện GUI cũng có thể vô hiệu hóa hoặc hủy các lệnh không có ý nghĩa trong bối cảnh hiện tại. Ví dụ, một giao diện API có thể loại bỏ các sự cố xung đột thứ tự bằng cách cho phép các thông số được thông qua theo bất kì thứ tự nào

Một cách hiệu quả để thiết kế các giao diện sao cho dễ sử dụng đó là dùng thử trước khi đem vào thực tiễn. Hãy giả lập một giao diện GUI trên Whiteboard, sử dụng Index card và làm việc với nó trước khi bắt tay vào viết bất kì dòng code nào. Hoặc là viết các hàm call cho một API trước khi các function được khai báo. Hãy bỏ qua các trường hợp sử dụng phổ biến và chỉ ra: bạn muốn giao diện hoạt động như thế nào, muốn click vào những gì và muốn được thông qua những gì? Một giao diện dễ sử dụng sẽ trông rất tự nhiên, bởi vì những nhà thiết kế sẽ để người dùng làm những gì họ muốn. Bạn hoàn toàn có thể làm được các giao diện tương tự như vậy, nếu bạn phát triển chúng theo quan điểm của người sử dụng. (Đó cũng là một trong những điều rất quan trọng thuộc giai đoạn kiểm thử chương trình).

Để làm cho các giao diện trở nên khó sử dụng sai đòi hỏi hai việc. Thứ nhất, bạn phải đoán trước được các lỗi mà người dùng thường mắc phải và tìm ra cách để ngăn chặn chúng. Thứ hai, bạn phải chú ý xem nguyên nhân một giao diện bị sử dụng sai trong quà trình giải phóng sớm và sửa đổi giao diện đó. Đúng vậy! Sửa đổi giao diện đó để ngăn chặn các lỗi có thể xảy ra. Cách tốt nhất để không sử dụng sai đó là ngăn chặn việc sử dụng như vậy. Nếu người dùng vẫn muốn xóa bỏ các hoạt động không thể hủy bỏ, hãy thử làm theo ý họ. Nếu như họ vẫn tiếp tục thông qua sai giá trị cho API, hãy cố gắng sửa đổi API để nhận lấy các giá trị mà người dùng muốn chuyển đổi.

Trên tất cả, hãy nhớ rằng giao diện được tạo ra để phục vụ cho nhu cầu tiện nghi của các người dùng, không phải cho người thực hiện.

💬 Chú thích:

  • API (Application Programming Interface) (giao diện lập trình ứng dụng) phương thức kết nối với các thư viện và ứng dụng khác.
  • GUI (Graphical User Interface) (giao diện đồ họa người dùng), nơi mà bạn tương tác với máy tính bằng hình ảnh chứ không phải là văn bản.
  • Whiteboard: là một khung vẽ kỹ thuật số miễn phí, là một ứng dụng cho phép người dùng phác thảo, lập kế hoạch và cộng tác với nội dung và ý tưởng của họ.
  • Index card: (Thẻ chỉ mục) Bao gồm kho thẻ được cắt theo kích thước tiêu chuẩn, được sử dụng để ghi và lưu trữ một lượng nhỏ dữ liệu rời rạc.