2010-10-29 38 views
31

Hay là họ và nó không có trong nguồn? Tôi thực sự muốn có được một cái gì đó mà sẽ ngừng js-doc-toolkit từ freaking ra mỗi khi nó phân tích cú pháp jQuery. Nó cũng có nghĩa là tôi không thể viết tài liệu một cách chính xác bất kỳ mã nào bằng cách sử dụng jQuery như là một sự phụ thuộc mà không cần ít nhất là đặt một số khối js-doc soạn sẵn, mà không tài liệu đúng đắn cấu trúc của jQuery. Có một giải pháp chung mà tôi không biết? Tôi đã thử googling, btw.Tại sao jQuery không sử dụng JSDoc?

+0

Duplicate của [jQuery Format Tài liệu] (http://forum.jquery.com/topic/jquery-documentation-format);) (Than ôi, không có câu trả lời ở đó) –

+2

Một chút một cập nhật, nhưng tôi tìm thấy [Docco] (http://jashkenas.github.com/docco/) là dễ dàng hơn nhiều để tài liệu JS với. Thật là tẻ nhạt khi tìm đúng thẻ JSDoc. Cá nhân tôi thấy chiến lược tài liệu của Docco đơn giản và thực tế hơn. Ngoài ra còn có [Rocco] (https://github.com/rtomayko/rocco#readme), mà, như một viên ngọc, sẽ làm việc với Cygwin tốt hơn, vì NPM là không cần thiết. – hlfcoding

+2

Docco nghe có vẻ giống như một ý tưởng hay, ngoại trừ điều này: "Chỉ có các bình luận một dòng được xử lý - các chú thích khối bị bỏ qua". Dường như với tôi rằng các bình luận khối là những người bạn chắc chắn muốn xử lý nếu bạn đang viết tài liệu API, vì nó dễ dàng hơn để viết các bit dài giải thích trong đó. – user4815162342

Trả lời

30

Tôi sẽ chụp ảnh trong bóng tối ở đây vì tôi không thể nói cho nhóm jQuery về lý do tại sao Tôi sẽ không sử dụng JSDoc. JSDoc, ít nhất là lần cuối tôi kiểm tra, không có cách nào sạch để hỗ trợ quá tải phương thức (hoặc chuyển dịch tham số ... bất cứ tên nào bạn muốn cho nó ở đây) và jQuery sử dụng nó khắp nơi. Chúng ta hãy xem ví dụ phổ biến đơn giản với .animate():

.animate({ height: 5 }) 
.animate({ height: 5 }, 100) 
.animate({ height: 5 }, 100, "linear") 
.animate({ height: 5 }, 100, "linear", func) 
.animate({ height: 5 }, 100, func) 
.animate({ height: 5 }, func) 
.animate({ height: 5 }, { duration: 100, queue: false }) 
.animate({ height: 5 }, { duration: 100, easing: "linear" }) 
.animate({ height: 5 }, { duration: 100, easing: "linear", complete: func }) 

Tất cả trong số này là hợp lệ, vì parameter types are checked and shifted as needed để hỗ trợ như bất kỳ tình huống quá tải càng tốt ... Đây chỉ là lẫn lộn địa ngục ra khỏi JSDoc, không có cách nào sạch để thêm các tham số tùy chọn này cho tài liệu. Xin vui lòng sửa tôi nếu điều này đã thay đổi, nhưng cuối cùng tôi nhìn (và có lẽ là lần cuối cùng đội đã xem xét) đây vẫn là trường hợp.

Một xem xét tiềm năng khác là cách một số phương thức được tạo khi jQuery chạy, ví dụ (một trong nhiều), hầu như tất cả event handler shortcutsgenerated in a loop hành vi tương tự cho các phương pháp khác ... JSDoc thế hệ thực sự không hoạt động tốt ở đây.

+1

Tôi nghĩ rằng không có khả năng tài liệu tham số được hoàn toàn chính xác không phải là mối quan tâm lớn nhất. Tôi quan tâm nhiều hơn lý do tại sao các đối tượng và các phương thức không thể được viết ít nhất, do đó JSDoc ít nhất biết chúng tồn tại và nơi để tham chiếu đến. Và một lợi ích tiềm năng của việc tạo ra các tài liệu cho một dự án jQuery là có một thời gian dễ dàng hơn khi nâng cấp nó từ những thay đổi lớn đối với nguồn jQuery. Có một máy phát điện doc tốt hơn không? Tôi đã nghe nói về Docco ... – hlfcoding

+0

@hlfcoding - Tôi không chắc chắn nếu có một lựa chọn tốt hơn, trung thực tôi sống trong Visual Studio hầu hết thời gian, và có một '-vsdos.js' được cung cấp được sử dụng ... một số người hoặc cộng đồng Microsoft tạo ra: http://stackoverflow.com/questions/2323366/jquery-1-4-2-vsdoc Trình soạn thảo phụ thuộc vào tài liệu đó để cho bạn biết các tham số là gì, nếu chúng không chính xác tất cả thời gian (và một số phương thức được tạo ra trên bay ... làm thế nào để bạn tài liệu chúng trong nguồn?) sau đó họ không phải là rất hữu ích. –

+0

@Nick Tôi đã tự hỏi điều tương tự. Tôi sử dụng các tệp '-vsdoc.js' và chỉ nghĩ," Tại sao Microsoft phải làm điều này khác với hầu hết? " Tôi không nghĩ đó là vì các thông số 'kiểm tra kiểu' của jQuery. Ví dụ điển hình về mặt trận đó. Lưu ý phụ: @hlfcoding có các điểm đại diện '666'. –

4

Trong khi tôi không thể thêm bất cứ điều gì khác mà những người khác không liên quan đến câu hỏi ban đầu, tôi có thể cung cấp một liên kết đến một cái gì đó có thể tự động tài liệu jQuery.

Nó thực hiện điều này bằng cách thực hiện nó trong môi trường thời gian chạy, và sau đó phân tích cú pháp cây kết quả. Giống như JSDoc, nó sử dụng Rhino đã được sửa đổi. Đó là trong giai đoạn trứng nước nhưng tôi hy vọng điều này có ích cho một người nào đó. :)

https://bitbucket.org/nexj/njsdoc

+0

JSDoc thực hiện phân tích tĩnh. – kzh

+0

Có. Tôi đã không nói rằng nó đã không, nếu đó là cách bạn đã lấy nó. Tôi nên làm rõ quan điểm của tôi ở đây, đó là NJSDoc thực hiện phân tích thời gian (năng động) thay vì phân tích tĩnh. Cố gắng đạt được cùng một mức độ (hoặc cao hơn) của tài liệu với ít hơn (lý tưởng không có) chú thích gợi ý boilerplate. –

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