2011-09-01 43 views

Trả lời

130

Quy ước đặt tên có thể là sử dụng một cái gì đó tương tự như lược đồ đặt tên mà jQuery sử dụng.Nó không được chấp nhận rộng rãi nhưng nó khá phổ biến.

product-name.plugin-ver.sion.filetype.js 

nơi cặp product-name + plugin cũng có thể đại diện cho một namespace and a module. versionfiletype thường là tùy chọn.

filetype có thể liên quan đến nội dung của tệp. Thường thấy là:

  • min cho các tập tin được rút gọn
  • custom cho các tập tin tùy chỉnh được xây dựng hoặc sửa đổi

Ví dụ:

  • jquery-1.4.2.min.js
  • jquery.plugin-0.1.js
  • myapp.invoice.js
+25

Tôi đồng ý với những gì bạn nói. Nhưng có một điều tôi đang đấu tranh với: nếu 'plugin' chứa hai từ thì sao? Tách chúng bằng dấu chấm? jquery.myPlugin-1.0.0.js hoặc jquery.my.plugin-1.0.0.js hoặc jquery.my_plugin-1.0.0.js hoặc jquery.myplugin-1.0.0.js hoặc thậm chí là jquery.my-plugin- 1.0.0.js? Có lẽ bạn có thể hoàn thành các ví dụ của bạn với điều đó, cảm ơn! – mayrs

+3

Còn các mô-đun [AMD] (http://en.wikipedia.org/wiki/Asynchronous_module_definition) thì sao? Nếu bạn sử dụng phiên bản trong tên tập tin, bạn phải thay đổi rất nhiều tập tin nếu số phiên bản thay đổi. – knut

+3

@junior, đây là một bài đăng cũ, nhưng [tìm kiếm bower nhanh] (http://bower.io/search/?q=jquery-) cho thấy các plugin jquery không tuân theo bất kỳ quy ước cụ thể nào. Có vẻ như (1) đẩy các từ lại với nhau, (2) sử dụng cột sống, và (3) sử dụng camelCase đều được sử dụng với tần suất tương đương gần. – bholben

46

Không có chính thức, phổ quát, quy ước đặt tên tệp JavaScript.

Có một số tùy chọn khác nhau:

  • scriptName.js
  • script-name.js
  • script_name.js

đều quy ước đặt tên hợp lệ, tuy nhiên tôi thích jQuery đề nghị quy ước đặt tên (đối với jQuery plugin, mặc dù nó hoạt động cho mọi JS)

  • jquery.pluginname.js

Vẻ đẹp để quy ước đặt tên này là nó rõ ràng mô tả tình trạng ô nhiễm không gian tên toàn cầu được bổ sung.

  • foo.js thêm window.foo
  • foo.bar.js thêm window.foo.bar

Bởi vì tôi rời ra phiên bản: nó phải đến sau khi tên đầy đủ, tốt nhất là ngăn cách bởi dấu gạch ngang, với thời gian giữa lớn và nhỏ phiên bản:

  • foo-1.2.1.js
  • foo-1.2.2.js
  • ...
  • foo-2.1.24.js
+7

+1 cho 'Vẻ đẹp đối với quy ước đặt tên này là nó mô tả rõ ràng ô nhiễm không gian tên toàn cầu đang được thêm vào.', không bao giờ để ý rằng –

+1

Câu hỏi duy nhất của tôi là phải làm gì nếu bạn có tệp tạo 'Foo' hoặc' myFoo', bạn chỉ cần đặt tên tệp là 'Foo.js' hoặc' myFoo.js' tương ứng? – semicolon

9

Các câu hỏi trong liên kết mà bạn đã nói về cách đặt tên của các biến JavaScript, không phải về cách đặt tên tệp, vì vậy quên rằng đối với bối cảnh trong đó bạn đặt câu hỏi của bạn.

Để đặt tên tệp, đó hoàn toàn là vấn đề về sở thích và sở thích. Tôi thích đặt tên tập tin với dấu gạch ngang vì sau đó tôi không phải tiếp cận với phím shift, như tôi làm khi giao dịch với tên tập tin camelCase; và bởi vì tôi không phải lo lắng về sự khác biệt giữa tên tệp Windows và Linux (tên tệp Windows phân biệt chữ hoa chữ thường, ít nhất là thông qua XP).

Vì vậy, câu trả lời, giống như rất nhiều, là "nó phụ thuộc" hoặc "tùy thuộc vào bạn".

Quy tắc bạn nên tuân theo là nhất quán trong quy ước bạn chọn.

+3

+1 cho lý do dấu gạch ngang so với camelCase. – cellepo

84

Tôi không biết về bất kỳ quy ước cụ thể nào cho tệp javascript vì chúng không thực sự độc đáo trên web so với tệp css hoặc tệp html hoặc bất kỳ loại tệp nào khác như vậy. Có một số điều "an toàn" mà bạn có thể làm khiến bạn ít có khả năng gặp phải sự cố nền tảng chéo:

  1. Sử dụng tất cả tên tệp chữ thường. Có một số hệ điều hành không phân biệt chữ hoa chữ thường cho tên tệp và sử dụng tất cả các ngăn chữ thường bằng cách sử dụng hai tệp chỉ khác nhau trong trường hợp có thể không hoạt động trên một số hệ điều hành.
  2. Không sử dụng dấu cách trong tên tệp. Trong khi kỹ thuật này có thể được thực hiện để làm việc có rất nhiều lý do tại sao không gian trong tên tập tin có thể dẫn đến các vấn đề.
  3. Dấu gạch ngang là OK cho dấu tách từ. Nếu bạn muốn sử dụng một số loại dấu phân tách cho nhiều từ thay vì dấu cách hoặc camelcase như trong various-scripts.js, dấu gạch ngang là dấu tách an toàn và hữu ích và thường được sử dụng.
  4. Suy nghĩ về việc sử dụng số phiên bản trong tên tệp của bạn. Khi bạn muốn nâng cấp tập lệnh, hãy lên kế hoạch cho các hiệu ứng của trình duyệt hoặc bộ nhớ đệm CDN. Cách đơn giản nhất để sử dụng bộ nhớ đệm dài hạn (cho tốc độ và hiệu quả), nhưng nâng cấp ngay lập tức và an toàn khi bạn nâng cấp tệp JS là bao gồm số phiên bản trong tên tệp hoặc đường dẫn được triển khai (như jQuery thực hiện với jquery-1.6.2.js) và sau đó bạn bump/thay đổi số phiên bản đó bất cứ khi nào bạn nâng cấp/thay đổi tập tin. Điều này sẽ đảm bảo rằng không có trang nào yêu cầu phiên bản mới hơn được cung cấp phiên bản cũ hơn từ bộ nhớ cache.
5

Tôi thường thích dấu gạch nối có chữ thường, nhưng có một điều chưa được đề cập là đôi khi thật tuyệt khi có tên tệp khớp chính xác với tên của một mô-đun đơn hoặc chức năng có thể chứa bên trong.

Ví dụ: tôi có mô-đun tiết lộ được khai báo với var knockoutUtilityModule = function() {...} trong tệp riêng có tên knockoutUtilityModule.js, mặc dù khách quan tôi thích knockout-utility-module.js.

Tương tự, vì tôi đang sử dụng cơ chế bó để kết hợp các tập lệnh, tôi đã thực hiện để xác định các hàm tức thời (mô hình xem theo khuôn mẫu, v.v.) trong mỗi tệp riêng của chúng, kiểu C#, để bảo trì. Ví dụ, ProductDescriptorViewModel sống riêng bên trong ProductDescriptorViewModel.js (tôi sử dụng chữ hoa trên cho các hàm tức thời).

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