Douglas Crockford có nghĩa là gì khi ông nói jQuery không mở rộng quy mô? [đóng cửa]


32

Trong phần Hỏi & Đáp của bài nói chuyện này , Douglas Crockford nói rằng jQuery không mở rộng quy mô cũng như một số thư viện phổ biến khác. Ý anh ta là gì, và những gì về các thư viện khác làm cho chúng có khả năng mở rộng hơn?


Thảo luận thêm về điều này tại JavaScript reddit: reddit.com/r/javascript/comments/h21vr/
Kẻ

Không xem toàn bộ video, tôi có thể nói rằng việc sử dụng jQuery tự nó không mở rộng tốt cho các ứng dụng một trang. Lý do là bạn không có khung công tác mô hình-khung nhìn để tổ chức mã của mình. Mặc dù, kết hợp jQuery với các khung cấu trúc như Backbone.js , Knockout.js và / hoặc Sammy.js và nó thực sự có quy mô rất tốt.
dùng16764

Không thấy cuộc nói chuyện, nhưng 2c của tôi ở đây là bản chất trung tâm của plugin con thú kết hợp với việc thiếu hướng dẫn và công cụ để tải phụ thuộc dẫn đến các ứng dụng mà bạn đã có súp plugin jQuery vì ai đó trong nhóm cần một số plugin cho một tác vụ cụ thể, cho biết plugin được bao gồm toàn ứng dụng và cuối cùng bạn sẽ tải được 34 plugin bổ sung khác nhau trên toàn bộ ứng dụng. Đó là bản chất của con thú - nó được thiết kế để làm cho các công cụ quy mô nhỏ dễ dàng hơn với chi phí không có các khái niệm ngược dòng lớn để mò mẫm.
Wyatt Barnett

4
Thật tò mò khi 3 trong số 4 câu trả lời bắt đầu bằng một số biến thể của "Tôi chưa xem video". Làm thế nào chính xác bạn có thể làm rõ những gì ông Crockford có nghĩa là mà không xem video?
Corbin ngày 3

Chà, anh không nói nhiều lắm. Như một trong những người trả lời đã nói, đó là một nhận xét trái chiều trong phần Hỏi & Đáp ở cuối. Nhưng bạn làm một điểm tốt.
MatrixFrog

Câu trả lời:


41

Nếu bạn xem video, anh ấy không nói về jQuery chính thức. Đó là một câu trả lời nhanh chóng cho một câu hỏi hơi khó hiểu từ một người nào đó sau bài thuyết trình .... vào cuối bài thuyết trình, khoảng phút 1:29.

Anh ấy nói rất nhiều điều hay về jQuery. Phần nói về nó không mở rộng tốt, ông nói rằng ông không nghĩ jQuery quy mô rất tốt cho các ứng dụng rất phức tạp (so sánh nó với những thứ khác như YUI). .


29
+1 để thực sự xem video trước khi đăng phản hồi. (-:
KM.

3

Thật khó để tôi nói mà không xem video, nhưng tôi đoán là vì jQuery không cung cấp tất cả các tính năng của hầu hết các thư viện khác giúp cho việc lập trình JavaScript dễ dàng hơn. Mục đích của jQuery là làm cho thao tác DOM dễ dàng hơn bằng cách đơn giản hóa việc đánh địa chỉ các phần tử thông qua các bộ chọn CSS và cung cấp một khung dễ dàng để thay đổi các phần tử đó. Nó cung cấp một số tính năng khác như yêu cầu Ajax , quản lý sự kiện cơ bản, tạo khuôn mẫu và một số chức năng thô sơ khác, nhưng đó là về nó.

Các thư viện khác như Prototype , MooTools , Ext JSDojo cung cấp số chức năng khác để tạo đối tượng, quản lý mảng & bộ sưu tập, thao tác chuỗi và thực hiện tất cả những điều khó chịu khác mà chúng ta lập trình viên có thể làm được.

Nói tóm lại, jQuery thiếu các công cụ mà người ta muốn cho các ứng dụng JavaScript quy mô lớn. Rất hiếm khi tìm thấy bất kỳ trang web nặng JavaScript nào bằng jQuery, vì lý do này. Ví dụ: Mint.com được xây dựng trên YUI . Dịch vụ web MobileMe của Apple chạy trên SproutCore (trang web chính của Apple sử dụng Prototype).

Ít nhất, đó là những gì tôi nghĩ rằng anh ấy có nghĩa.


1
Hừm. Tôi khá quen thuộc với jQuery, nhưng không quen thuộc lắm với YUI hoặc bất kỳ khung công tác JS nào khác. Vì vậy, có lẽ tôi nên hỏi, điều gì về YUI, Prototype, v.v ... làm cho chúng tốt để xây dựng các ứng dụng web lớn, có thể mở rộng? Thay vì hỏi jQuery không có gì ...
MatrixFrog

6
"Khá hiếm khi tìm thấy bất kỳ trang web nặng nào của JS bằng jQuery" .... trong khi chúng tôi đang tạo ra thứ gì đó, bạn có thể tạo ra một cái gì đó về YUI yêu cầu ít hơn 10mb tệp không?
ken

@ken Nếu bạn đang tải toàn bộ thư viện YUI lên trang của mình thì bạn đã làm sai. Có một lý do Yahoo cung cấp một trình tải động. Và nếu bạn không đồng ý với đánh giá của tôi, hãy cung cấp các ví dụ ngược lại. Chỉ cho chúng tôi một ứng dụng quy mô lớn được xây dựng trên jQuery.
ChiperSoft

4
Xác định "quy mô lớn" rồi. Ngăn xếp SE sử dụng jQuery.
ken

SE không phải chủ yếu được điều khiển bởi JS, nó sử dụng jQuery theo cách mà hầu hết mọi người đều sử dụng jQuery: ràng buộc Sự kiện cơ bản, các yêu cầu AJAX đơn giản, một số thao tác DOM. Quy mô lớn có nghĩa là toàn bộ các ứng dụng được xây dựng hoàn toàn trên JS; các trang web không dựa trên trang. Chúng ta đang nói những thứ như những gì tôi đã đề cập ở trên (Mint.com & MobileMe), Cloud9 Editor, gMail, Mockingbird. Các trang web có giá trị bằng hoặc hơn 1 MB mã JS được viết trong nhà.
ChiperSoft

2

jQuery không cho phép bạn sử dụng lại nhiều như MooTools chẳng hạn.

Đó là một quyết định triết lý / thiết kế: jQuery không có nhiều mã cho các tình huống cháy và quên.

Khi bạn đang xây dựng các trải nghiệm JavaScript không phô trương (thường chỉ là các cải tiến trang), điều này hoạt động rất tốt và yêu cầu rất ít mã. Khi bạn xây dựng Google Docs ... không quá nhiều. Bạn sẽ muốn có thêm các khái niệm OOP mà các dự án khác phơi bày như kế thừa, các cơ chế giống như giao diện, v.v ...

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.