Trang chủ > Uncategorized > Vài chú ý khi dùng Dojo

Vài chú ý khi dùng Dojo

Tháng Mười Hai 22, 2011 Để lại bình luận Go to comments

Nói chung, Dojo là một framework khá hoàn chỉnh, cung cấp một lớp các tính năng giúp bạn viết JavaScript hiệu quả hơn:

  • Các method tiện ích với DOM (dojo.create, dojo.place, v.v) và với JavaScript (dojo.isArray, dojo.hitch, v.v).
  • Một mô hình OOP kiểu class tương tự như các ngôn ngữ phổ biến Java, C#. Kết hợp với mô hình OOP kiểu prototype của JavaScript, việc lập trình OOP trên Dojo trở nên cực kì thoải mái và tiện lợi.
  • Các cơ chế để thao tác với dữ liệu, như lấy dữ liệu từ server, tìm, thêm, xóa dữ liệu. Có thể xem đây là một persistent library rất đơn giản cho JavaScript. Tính năng này cũng giúp tách biệt phần nội dung ra khỏi phần hiển thị của các widget, giúp cho việc thao tác với dữ liệu trên các widget dạng bảng, cây của Dojo khá mạch lạc.
  • Các widget thường dùng và cơ chế để viết thêm các widget khác. Việc viết thêm widget trong Dojo phải nói là khá đơn giản và được hướng dẫn rất chi tiết.
  • Cơ chế publish/subscribe các event, theo object và global. Event là một khái niệm quan trọng trong JavaScript, và nó giúp giảm coupling khi thiết kế các ứng dụng web nặng về Ajax. Với Dojo, tất cả các method đều là event.
  • Cơ chế để quản lí sự phụ thuộc giữa các file JavaScript (tương tự như import trong Java). Dojo giúp đơn giản hóa việc nạp các file JavaScript cần thiết từ server.
  • Trong thiết kế có tính đến việc hỗ trợ accessiblity. Tùy nhu cầu mà điều này có cần thiết hay không.

Tuy nhiên, Dojo cũng có nhiều hạn chế mà bạn phải cân nhắc.

  • Mức độ sử dụng thấp, nghĩa là cộng đồng hỗ trợ sẽ nhỏ hơn so với các library phổ biến hơn.
  • Widget của Dojo được tập hợp một cách có hệ thống, và mỗi widget luôn cố gắng đáp ứng mọi nhu cầu có thể. Điều này khiến cho một số widget như Tree, DataGrid trở nên cồng kềnh và phức tạp, cả về HTML sinh ra lẫn JavaScript cho hành vi của chúng. Việc chỉnh sửa chúng cho phù hợp với nhu cầu sẽ tiêu tốn nhiều công sức của bạn.
  • Chất lượng mã nguồn không đồng đều. Một số widget được xây dựng từ nhiều thành phần nhưng lại không thiết kế phù hợp với nguyên tắc Inversion of Control, khiến cho việc mở rộng, chỉnh sửa mỗi thành phần khó khăn hơn. Mặc dù điều này có thể được khắc phục phần nào trong một số trường hợp với prototype.
  • Việc layout các widget của Dojo phụ thuộc rất nhiều vào kích thước của các widget liên quan, trong khi đó hiện thực các tính toán này không hoàn toàn ổn định, rải rác khắp mọi chỗ trong mã nguồn, có thể ảnh hưởng tới hiệu năng và độ ổn định của ứng dụng.

Nói thêm, bởi vì Dojo là một framework hoàn chỉnh nhằm hỗ trợ mọi nhu cầu liên quan đến phát triển ứng dụng web với JavaScript, cho nên sẽ khó mà chọn được framework thay thế với chất lượng hoàn toàn tốt hơn. Tuy nhiên, bạn có thể thử gộp những library nhỏ để có được những tính năng tương tự như Dojo cung cấp. Vì các library nhỏ nhằm giải quyết những vấn đề cụ thể hơn, chúng có thể tiến hóa nhanh hơn và ổn định hơn một framework lớn. Chẳng hạn:

  • JQuery, Prototype.js, MooTools cho những mở rộng đơn giản trên JavaScript.
  • JQuery cho thao tác với DOM, và JQuery UI cho các widget thường dùng.
  • Prototype.js để sử dụng mô hình OOP kiểu class trong JavaScript.
  • v.v

Cuối cùng, nếu bạn đã quyết định dùng Dojo, thì có lẽ vài kinh nghiệm nhỏ dưới đây sẽ có ích cho bạn:

  • Học JavaScript. Nó đủ khác các ngôn ngữ phổ biến khác để bạn phải học một cách cẩn thận.
  • Đọc kĩ tài liệu Dojo cung cấp, và nếu có thể, xem qua mã nguồn của một số thành phần để hiểu rõ.
  • Mở rộng, chỉnh sửa các thành phần Dojo cung cấp theo ý của mình, thay vì cố gắng tìm một giải pháp “hack” dựa trên những gì Dojo đã có.
  • Tìm hiểu về những vấn đề liên quan nếu cần, chẳng hạn như memory leak trong JavaScript và Dojo, kiến trúc của một ứng dụng web nặng về JavaScript, v.v
Tags: ,
  1. Tháng Năm 13, 2012 lúc 7:43 sáng

    Bản thân tôi c ng có lúc d nh th i gi giúp sinh viên viết th xin h c hi u quả hơn.

  1. Tháng Bảy 28, 2013 lúc 2:26 chiều

Gửi phản hồ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 Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s

%d bloggers like this: