Design patterns

by binhtruong

Khái niệm về thiết kế mẫu trong web/application design

UI Patterns

(Ảnh: UI patterns, nguồn Internet)

Đã từ lâu, khái niệm “design patterns” (những thiết kế mẫu) đã trở nên quá quen thuộc với những người làm trong ngành IT, cụ thể là lập trình viên, chuyên gia thiết kế phần mềm (software designer, solution architect…). Thậm chí, với nhiều người thì design pattern chỉ dành cho những level cao trong nghề IT như là team lead, technical lead hay senior developer. Trong lĩnh vực thiết kế web hay mobile application, việc áp dụng design patterns cũng rất phổ biến và phát triển rộng rãi.

Khái niệm về patterns (mô hình mẫu) được biết đến đầu tiên trong lĩnh vực kiến trúc bởi Christopher Alexander và đồng nghiệp của ông thông qua 02 tài liệu A Pattern Language (xuất bản năm 1977) và The Timeless Way of Building (Alexander, 1979). Trong đó, Alexander và đồng sự đã giải thích bản chất của pattern như sau:

Mỗi một mô hình mẫu (pattern) mô tả một vấn đề lặp đi lặp lại trong cuộc sống của chúng ta và sau đó, nó (pattern) đưa ra giải pháp cốt lõi để giải quyết vấn đề này bằng phương pháp tối ưu nhất mà ta có thể dùng đi dùng lại nhiều lần mỗi khi gặp lại vấn đề tương tự. (1)

Như vậy, design pattern tập trung vào các tình huống cụ thể, đưa ra cách giải quyết vấn đề “tốt nhất” để giúp cho những người làm thiết kế nói chung hay những web designer, software designer nói riêng biết phải làm thế nào? áp ụng ra sao và áp dụng các thiết kế mẫu khi nào là phù hợp nhất cho công việc của mình đạt hiệu quả cao.

Ngày nay, design patterns rất được ưa chuộng và áp dụng rộng rãi trong nhiều lĩnh vực của thiết kế web cũng như software engineering. Với những ngôn ngữ lập trình như Java, C# hay cả những ngôn ngữ dạng scripting như Javascript, HTML & CSS cũng có riêng cho mình những design patterns được đúc kết bởi những lập trình viên nhiều kinh nghiệm. Trong thiết kế web, để tăng khả năng usability, người ta cũng đưa ra các chuẩn mực về giao diện, bố cục như menu, navigation, form, v.v…với mong muốn đáp ứng tốt nhất những gì người dùng mong muốn.

Xét về ưu điểm, design patterns từ lâu được công nhận với những lợi ích đáng kể như đưa ra giải pháp tổng thể, chuyên biệt cũng như giúp cho qui trình thiết kế được cải thiện một cách hiệu quả, tiết kiệm thời gian và chi phí. Trong thiết kế web thì việc sử dụng các pattern mang lại lợi ích thừa kế và tái sử dụng các mẫu, bản vẽ và các tiêu chuẩn từ những thiết kế tốt. Một ví dụ dễ hình dung nhất là design pattern dành cho tính năng registration (đăng ký thành viên mới) với những chuẩn mực như: username, password, CAPTCHA, forgot password question, v.v… (cái này ai làm web designer thì nắm rất rõ). Bên cạnh đó, design patterns cũng đã trở thành ngôn ngữ chung cho những người làm trong cùng một lĩnh vực có thể dễ dàng trao đổi, làm việc với nhau theo chuẩn mực nhất định.

Vậy design patterns có phải là một phương pháp chuẩn mực tuyệt đối? Theo tôi thì đây là một khái niệm mang tính tham khảo, mặc dù nhiều patterns đã và đang trở thành “kinh điển” (kể cả với những thứ như Facebook login, Social sharing ngày nay cũng có thể xem như 1 pattern) nhưng cũng không nên vì thế mà gò bó sức sáng tạo của mình. Bản thân trong mỗi design pattern cũng có thể xuất hiện những pattern nhỏ hơn (ví dụ như CAPTCHA cũng là 1 pattern ra đời sau này để trống spam) và ngày càng có nhiều pattern mới xuất hiện qua quá trình chọn lọc, tích lũy trải nghiệm của người dùng. Những chiếc điện thoại iPhone, Android cũng là những thiết bị tạo ra một loạt các design pattern mới nhằm định vị user experience của người dùng cũng như đảm bảo tính usability của các ứng dụng phần mềm chạy trên đó (những chiếc điện thoại đó).

Áp dụng design pattern là điều nên làm, và ngay cả bạn, bạn cũng có thể tạo ra nó, những design pattern mới, hữu ích, có thể tái sử dụng nhiều lần. Bởi một lẽ thường, theo thời gian, các vấn đề mới luôn nảy sinh và luôn cần giải pháp cho nó.

Ghi chú:

(1) Trích trong cuốn A Pattern Language (Alexander et al., xuất bản năm 1977)

Advertisements