Những nguyên tắc thiết kế cơ bản dành cho lập trình viên

Bài viết được dịch từ blog Coding Horror

Trong một bài viết trước đây của mình, tôi kêu gọi các lập trình viên nên tìm hiểu về một chương trình chỉnh sửa đồ họa phổ biến nào đó. Đây hoàn toàn là một kỹ năng kỹ thuật, do đó, nó có vẻ hợp lý để các lập trình viên quan tâm và vọc thử. Nếu chúng ta có thể học được về những môi trường phát triển cực kỳ phức tạp, trình biên dịch, và cơ sở dữ liệu, thì tại sao lại không học về một trình biên tập đồ họa? Tuy nhiên, như một số bạn đọc đã chỉ ra rằng, năng lực trong một trình chỉnh sửa đồ họa là không đủ; bạn cũng phải tìm hiểu một số nguyên tắc thiết kế cơ bản để sử dụng công cụ đó một cách hiệu quả. Chúng ta hãy thử đảo ngược vấn đề: liệu có là hợp lý khi mong đợi các nhà thiết kế (designer) học về môi trường phát triển IDE yêu thích của chúng ta, đơn thuần như một công cụ, mà không có bất kỳ hướng dẫn về cách làm thế nào để viết code?

Chắc chắn là không. Đó là lý do tại sao tôi cảm thấy rất vui khi Graham Stewart nhắc tôi đề cập đến cuốn sách The Non-Designer’s Design Book.

Nguyên tắc thiết kế cơ bản cho lập trình viênNguyên tắc thiết kế cơ bản cho lập trình viên


Tôi đã mua một bản sao của cuốn sách này vào năm 1996, khi tôi còn là một lập trình viên với con số 0 tròn trĩnh về kỹ năng thiết kế, và đang tìm kiếm một hướng dẫn nhỏ. Hiện nay tôi cũng không phải là một nhà thiết kế (designer) theo bất kỳ góc độ nào – nhưng khi bạn bắt đầu từ con số 0, thì bạn không có chỗ nào khác để đi ngoại trừ phát triển lên. Tôi rất thích phần trích dẫn mở đầu trong cuốn sách đó, nó đề cập đến một chủ đề mà tôi đã thảo luận gần đây và có khá nhiều báo chí đăng lại:

Hiện nay, nhiều chủ đề đang được in và xuất bản hơn bao giờ hết, và mọi nhà xuất bản của các quảng cáo, sổ tay, hay một cuốn sách đều mong muốn ​​tài liệu của mình sẽ được độc giả đón đọc. Các nhà xuất bản và độc giả đều muốn những thông tin quan trọng cần được hiển thị rõ ràng. Họ sẽ không đọc bất cứ điều gì trông như gà bới, nhưng hài lòng với những thứ trông rõ ràng và có bố cục hợp lý, vì điều đó sẽ giúp cho họ dễ hiểu hơn. Vì lý do này, mà những thứ quan trọng phải được làm nổi bật lên và những thứ không quan trọng cần phải ẩn bớt đi…

Các kỹ thuật của kiểu chữ hiện đại cũng phải tự thích ứng với tốc độ của thời đại chúng ta. Ngày nay, chúng ta không thể dành nhiều thời gian vào một tiêu đề của một lá thư hoặc những mẩu thông tin lặt vặt khác như cách mà chúng ta sống vào những năm 90’s.

Đoạn trích trên là của Jan Tschichold, những năm 90’s mà ông đề cập đến trong đoạn trích đó là những năm 1890’s. Đoạn trích đó được viết vào năm 1935, nhưng nó vẫn là một vấn đề nóng hổi và mang tính thời sự vào lúc này.

Cuốn sách này mới nhìn bìa thì trông có vẻ không được chuyên nghiệp lắm, với bìa màu tím và vàng sặc sỡ của nó cùng font chữ được lựa chọn cũng khá kỳ cục. Tuy nhiên, tôi thấy Non-Designer’s Design Book là một cuốn sách cực kỳ hữu ích từ mức giới thiệu cho đến thực hành, cung cấp những nguyên tắc thiết kế trong thế giới thực cho một người mới vào nghề. Xem lại nội dung cuốn sách vào lúc này, tôi thấy nó vẫn còn hữu ích và thú vị hơn bao giờ hết. Nó phác thảo những bước đầu tiên để hướng tới một nền giáo dục về thiết kế suốt đời cho người học bằng những dẫn dụ rõ ràng và dễ hiểu:

Nhiều năm trước, tôi nhận được một cuốn sách hướng dẫn cách nhận dạng loài cây trong dịp Giáng sinh. Lúc đó tôi vẫn còn sống ở nhà bố mẹ mình, và sau khi tất cả những món quà Giáng sinh đã được mở ra, tôi quyết định đi ra ngoài để nhận diện những loại cây trong khu phố. Trước khi tôi đi ra ngoài, tôi đọc qua một phần của cuốn sách đó. Cây đầu tiên trong cuốn sách là cây Joshua vì chỉ cần hai manh mối để xác định ra nó. Lúc đó cây Joshua là một cây thực sự kỳ lạ, tôi đã nhìn vào bức hình của nó và tự nói với bản thân mình rằng, “Oh, chúng ta không có loại cây này ở miền Bắc California. Đó là một cái cây kỳ lạ, và tôi chưa bao giờ nhìn thấy nó trước đó.”

Vì vậy, tôi ôm lấy cuốn sách của mình và đi ra ngoài. Bố mẹ tôi sống trong một khu tập thể gồm 6 ngôi nhà. Bốn trong số những ngôi nhà này có cây Joshua được trồng ở sân trước. Tôi đã sống trong căn nhà đó đã 13 năm rồi, và tôi chưa bao giờ thấy một cây Joshua nào cả. Tôi đã đi bộ vòng quanh khu phố, và trong lòng cứ thắc mắc liệu có phải nhà nào cũng mới trang trí lại sân vườn của họ hay không – vì ít nhất 80% những ngôi nhà ở đây đều có cây Joshua ở trước sân. Vì tôi chưa từng bao giờ nhìn thấy một cây Joshua nào trước đó! Một khi tôi đã ý thức được về các loài cây – một khi tôi đã có thể đặt tên cho nó – thì tôi lại nhìn thấy nó có mặt ở khắp mọi nơi.

Bạn bắt đầu từ mức căn bản: bằng cách xem xét và học hỏi tất cả các mẫu thiết kế xung quanh mình. Tất cả những chỉ dẫn thiết kế trong quyển sách này được áp dụng một cách phổ biến cho các trang web cũng như các giao diện GUI của các ứng dụng truyền thống. Và một khi bạn đọc xong cuốn sách này, bạn sẽ bắt đầu nhìn thấy các quy tắc thiết kế được áp dụng ở khắp mọi nơi.

Tôi chắc rằng có những cuốn sách nhập môn về thiết kế khác rất hay ở ngoài kia. Cá nhân tôi có thể bảo đảm rằng đây là một trong những cuốn sách hay và đã được kiểm chứng bởi thời gian. Tác giả cũng đã xuất bản thêm một số cuốn sách liên quan, nhưng các ý kiến review luôn đánh giá cao nhất cho cuốn sách kinh điển này. Và có một điều khá thông minh của cuốn sách này mà tôi chỉ nhận ra nhiều năm sau này – đó là thay vì sử dụng đoạn văn bản giả Lorem Ipsum như thường lệ thì tác giả sử dụng cụm từ Anguish Languish (nỗi thống khổ sống mòn), câu này có vẻ thú vị hơn nhiều.

Các bài viết liên quan:

Về tác giả bài viết:

Jeff_atwood_coding_horrorJeff Atwood là một chuyên gia công nghệ tại Mỹ, hiện đang sinh sống và làm việc tại Berkeley, CA. Anh là một kỹ sư phần mềm chuyên về công nghệ Microsoft .NET, và là một blogger nổi tiếng trong cộng đồng công nghệ với blog Coding Horror, anh là người sáng lập và kiêm Giám đốc điều hành (CEO) của trang web hỏi đáp uy tín Stack Overflow và cũng là đồng sáng lập của Stack ExchangeDiscourse.

Advertisements

One comment on “Những nguyên tắc thiết kế cơ bản dành cho lập trình viên

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Đăng xuất / Thay đổi )

Connecting to %s