2012-01-18 30 views
5

Tôi nên sử dụng điều gì để quản lý số lượng tệp JavaScript ngày càng tăng trong ứng dụng của mình?Quản lý độ phức tạp của JavaScript trong một dự án lớn

Chúng tôi đang xây dựng một ứng dụng django với một số ứng dụng. Mỗi ứng dụng có chức năng khác nhau và phải được hiển thị ở ba chế độ khác nhau (máy tính, máy tính bảng, thiết bị di động). Có rất nhiều điều xảy ra trong JavaScript: quản lý dữ liệu nhận được từ máy chủ, xử lý các sự kiện của người dùng, chèn đoạn mã HTML và tải các thành phần phụ. Một số tính năng được chia sẻ giữa các ứng dụng và chế độ xem, nhưng thường có ý nghĩa khi viết một hàm cụ thể (ví dụ: các sự kiện di chuột và nhấp chuột có thể phải được xử lý khác nhau trên bố cục PC so với bố cục máy tính bảng). điều này trong các tệp dựa trên app/layout/function.

Lên đến một điểm chúng ta đang sử dụng một cấu trúc tập tin phẳng với cách đặt tên để phân biệt các loại tập tin:

ui.common.js 
ui.app1.pc.handlers.js 
ui.app1.pc.domManupulators.js 
ui.app1.tablet.js 
ui.app2.pc.js 
... 

Ngay bây giờ, tuy nhiên, như số lượng ứng dụng (và các trường hợp góc) mọc cách này đang nhanh chóng trở thành unusuable (chúng tôi sắp sửa bước sang 20 tệp và mong đợi có lẽ 40 vào thời điểm chúng ta đang thực hiện), vì vậy chúng tôi đang đặt tất cả mọi thứ trong thư mục như sau:

js/ 
    common/ 
    core1.js 
    ajax2.js 
    app1/ 
    tablet.js 
    pc.js 
    app2/ 
    mobile.js 
    ... 

tôi đã được nhìn JavaScriptMVC để giúp đỡ với điều này. Mặc dù nó cung cấp các công cụ hữu ích nhưng dường như nó không có thứ gì đặc biệt để quản lý thư viện JavaScript khổng lồ của chúng tôi tốt hơn. Chúng tôi đang mở rộng đội ngũ dev của chúng tôi sớm và khả năng bảo trì mã là rất quan trọng.

Có điều gì đó có thể làm cho cuộc sống của chúng ta dễ dàng hơn không? Có thói quen/quy tắc ngón tay cái nào bạn sử dụng trong công việc có thể làm giảm bớt điều này không?

+1

Bố cục js/{app_name}/{device_type} có gì sai? có vẻ như bắt chước thiết lập dựa trên ứng dụng của django và được cắt và sắp xếp rất rõ ràng. Có cách nào mà nó thiếu cho bạn không? – dm03514

+0

@ dm03514: Không có gì sai với nó, chỉ cần tự hỏi nếu có một cách tốt hơn. – Goro

Trả lời

1

Thông thường, việc nhóm các thư viện theo tính phổ biến (như ví dụ thứ hai) sẽ được ưu tiên. Tuy nhiên, quan trọng hơn là phải đảm bảo rằng bạn đã đặt tên không gian hoặc làm cho chúng trở nên độc đáo để bạn không có khả năng nhận được các xung đột đặt tên với các tập lệnh tiềm năng khác.

+0

Không gian tên _are_ quan trọng, chúng tôi khá nhiều không thể quản lý mã mà không cần đến chúng. Xem bài đăng của tôi về các không gian tên: http://stackoverflow.com/questions/8916629/are-there-any-dangers-associated-with-using-javascript-namespaces – Goro

2

Backbone.js được sử dụng để sắp xếp các ứng dụng nặng javascript trong mẫu kiểu MVC. Nó sẽ mất một số học tập, nhưng nó chắc chắn là một cái gì đó bạn sẽ muốn xem xét và tìm hiểu một chút về ngay cả khi bạn không kết thúc bằng cách sử dụng nó.

Nó được sử dụng trên quite a few pretty impressive projects

Và, đây là một trang web để learn more với hướng dẫn.

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