2008-11-15 33 views
5

Bạn quản lý việc sử dụng mã DojoX hoặc các tiện ích trong một ứng dụng sản xuất như thế nào?Bạn quản lý mã DojoX của mình như thế nào?

Dojo Toolkit bao gồm Core, Dijit và DojoX. Là một vườn ươm cho các ý tưởng mới để mở rộng bộ công cụ, mã DojoX và các tiện ích có chức năng với các mức độ bất ổn khác nhau.

DojoX Mã như QueryReadStore (ví lấy lô dữ liệu từ máy chủ) hoặc các widget như Grid (đối với việc sử dụng một thành phần lưới giao diện người dùng) đều không được đưa vào trung tâm hoặc hệ Dijit. Nhưng chúng đủ chức năng để sử dụng trong một số trường hợp, với "sự cẩn thận của nhà phát triển", bởi vì trong các phiên bản Bộ công cụ tương lai, API hoặc vị trí thành phần trong cây nguồn có thể thay đổi. Một điều nữa là bạn có thể phải tinh chỉnh thành phần DojoX mà bạn đang sử dụng để nó hoạt động đúng trong môi trường của bạn, vì chưa có mức độ mạnh mẽ trong mã.

Vì vậy, làm cách nào để bạn đảm bảo rằng khi các thành phần DojoX bạn sử dụng phát triển, ứng dụng của bạn vẫn hoạt động trơn tru?

Trả lời

3

Có một số cách để làm điều đó:

  • Stick với một phiên bản của Dojo và sử dụng nó một cách nhất quán.
  • Di chuyển mã đã sửa đổi vào không gian tên của chính bạn và bao gồm nó từ đó.
    • Có hiệu quả nó là sự giả mạo của mô-đun DojoX hiện có. Tất cả các mã đồng bộ hóa và quay trở lại porting là trách nhiệm của bạn.
    • Chú ý đến phần còn lại của Dojo — nếu nó thay đổi theo cách nó phá vỡ phiên bản chia đôi của bạn, hãy sẵn sàng để vá mô-đun của bạn.
  • Sao chép các tệp đã sửa đổi ở đâu đó và bao gồm/yêu cầu chúng trước khi tệp gốc được yêu cầu.

Để minh họa các kỹ thuật sau tưởng tượng rằng có một tập tin tôi muốn vá nằm trong dojox/biểu đồ/abc.js:

dojo.provide("dojox.charting.abc"); 
// the rest of the file 
... 

tôi có thể sao chép nó vào thư mục của tôi như, nói, tôi /patched_abc.js, và làm cho nó trông như thế:

dojo.provide("my.patched_abc"); 
// now I include the rest of the file with my modifications 

dojo.provide("dojox.charting.abc"); 
// the rest of the file 
... 

Trong mã của tôi có sử dụng dojox.charting tôi bao gồm nó như thế:

dojo.require("my.patched_abc"); 
// now I can include dojox.charting, 
// which will use my patched dojox.charting.abc module 

dojo.require("dojox.charting.Chart2D"); 
// the rest of the file 
... 

Chỉ cần cẩn thận để tránh các câu lệnh "yêu cầu" tròn.

Kỹ thuật này hoạt động rất tốt cho các dự án và tùy chỉnh nhỏ. Nếu các thay đổi của bạn rộng hơn thế, bạn nên cân nhắc viết mô-đun của riêng bạn.

4

Đây có thể là một giải pháp rõ ràng nhưng có liên quan nhiều hơn ... nhưng: Hãy tham gia! Nó thực sự là một trong những cách tốt nhất để làm quen với sức mạnh tổng thể của Dojo trong một lần ngồi, dạy rất nhiều JS-foo tốt và đảm bảo bạn có thông tin bên trong về tương lai của một mô-đun cụ thể. Hầu hết DojoX là cộng đồng đóng góp, và hướng tới sự ổn định và hữu ích. Càng nhiều người xem xét, thử nghiệm, hack vào mã - càng có nhiều khả năng thành công và trở nên ổn định.

Trân trọng, Peter Higgins

Các vấn đề liên quan