ควรตั้งชื่อไฟล์ some-with-hyphens.js, camelCased.js หรืออย่างอื่น?
ควรตั้งชื่อไฟล์ some-with-hyphens.js, camelCased.js หรืออย่างอื่น?
คำตอบ:
ระเบียบการตั้งชื่อที่เป็นไปได้ข้อหนึ่งคือใช้สิ่งที่คล้ายกับรูปแบบการตั้งชื่อ jQuery ใช้ มันไม่ได้นำมาใช้ในระดับสากล แต่เป็นเรื่องธรรมดา
product-name.plugin-ver.sion.filetype.js
ที่product-name
+ plugin
คู่ยังสามารถเป็นตัวแทนของnamespaceและโมดูล version
และfiletype
มักจะมีตัวเลือก
filetype
สามารถเป็นสิ่งที่สัมพันธ์กับเนื้อหาของไฟล์ มักจะเห็นคือ:
min
สำหรับไฟล์ที่ย่อเล็กสุดcustom
สำหรับไฟล์ที่สร้างหรือแก้ไขเองตัวอย่าง:
jquery-1.4.2.min.js
jquery.plugin-0.1.js
myapp.invoice.js
ฉันไม่ได้ตระหนักถึงการประชุมเฉพาะสำหรับไฟล์จาวาสคริปต์เพราะพวกเขาไม่ได้เป็นเอกลักษณ์จริง ๆ บนเว็บเมื่อเทียบกับไฟล์ css หรือไฟล์ html หรือไฟล์ประเภทอื่น ๆ เช่นนั้น มีบางสิ่งที่ "ปลอดภัย" ที่คุณสามารถทำได้ทำให้มีโอกาสน้อยที่คุณจะเจอกับปัญหาข้ามแพลตฟอร์ม:
various-scripts.js
กับเครื่องหมายยัติภังค์เป็นตัวคั่นที่ปลอดภัยและมีประโยชน์และใช้กันทั่วไปไม่มีอย่างเป็นทางการเป็นสากลการประชุมสำหรับการตั้งชื่อไฟล์ JavaScript
มีตัวเลือกต่าง ๆ :
scriptName.js
script-name.js
script_name.js
เป็นแบบแผนการตั้งชื่อที่ถูกต้องทั้งหมด แต่ฉันชอบแบบแผนการตั้งชื่อที่แนะนำ jQuery (สำหรับปลั๊กอิน jQuery แม้ว่ามันจะใช้ได้กับ JS ใด ๆ )
jquery.pluginname.js
ความงามที่จะตั้งชื่อนี้เป็นที่ชัดเจนอธิบายมลพิษ namespace โลกที่เพิ่มเข้ามา
foo.js
เพิ่ม window.foo
foo.bar.js
เพิ่ม window.foo.bar
เพราะฉันออกเวอร์ชัน: มันควรมาหลังจากชื่อเต็มคั่นด้วยยัติภังค์โดยมีจุดระหว่างรุ่นหลักและรุ่นรอง:
foo-1.2.1.js
foo-1.2.2.js
foo-2.1.24.js
The beauty to this naming convention is that it explicitly describes the global namespace pollution being added.
ไม่เคยสังเกตว่า
Foo
หรือmyFoo
คุณจะตั้งชื่อไฟล์Foo.js
หรือmyFoo.js
ตามลำดับ?
คำถามในลิงก์ที่คุณพูดถึงเกี่ยวกับการตั้งชื่อตัวแปร JavaScript ไม่ใช่เกี่ยวกับการตั้งชื่อไฟล์ดังนั้นลืมเกี่ยวกับสิ่งนั้นสำหรับบริบทที่คุณถามคำถามของคุณ
สำหรับการตั้งชื่อไฟล์มันเป็นเรื่องของความชอบและรสนิยมอย่างหมดจด ฉันชอบตั้งชื่อไฟล์ด้วยยัติภังค์เพราะฉันไม่ต้องไปถึงปุ่ม shift อย่างที่เคยทำเมื่อจัดการกับชื่อไฟล์ camelCase และเนื่องจากฉันไม่ต้องกังวลเกี่ยวกับความแตกต่างระหว่างชื่อไฟล์ Windows และ Linux (ชื่อไฟล์ Windows ไม่ตรงตามตัวพิมพ์เล็ก - ใหญ่อย่างน้อยต้องผ่าน XP)
ดังนั้นคำตอบก็เหมือนกับ "ขึ้นอยู่กับ" หรือ "ขึ้นอยู่กับคุณ"
กฎข้อหนึ่งที่คุณควรปฏิบัติตามคือให้สอดคล้องในการประชุมที่คุณเลือก
ฉันชอบยัติภังค์ที่มีตัวพิมพ์เล็ก แต่สิ่งหนึ่งที่ยังไม่ได้กล่าวถึงคือบางครั้งมันก็ดีที่มีชื่อไฟล์ตรงกับชื่อของโมดูลเดียวหรือฟังก์ชั่นที่ใช้งานได้ทันทีที่อยู่ภายใน
ตัวอย่างเช่นฉันมีโมดูลที่เปิดเผยพร้อมกับประกาศvar knockoutUtilityModule = function() {...}
ภายในไฟล์ของตัวเองที่ชื่อว่า knockoutUtilityModule.js แม้ว่าในทางวัตถุฉันจะชอบ knockout-utility-module.js
ในทำนองเดียวกันเนื่องจากฉันใช้กลไกการรวมเพื่อรวมสคริปต์ฉันจึงใช้เพื่อกำหนดฟังก์ชั่นที่ใช้งานได้ทันที (ดูรุ่นของเทมเพลตเป็นต้น) ในไฟล์ของตัวเองสไตล์ C # เพื่อการบำรุงรักษา ตัวอย่างเช่น ProductDescriptorViewModel มีชีวิตอยู่ในตัวมันเองภายใน ProductDescriptorViewModel.js (ฉันใช้ตัวพิมพ์ใหญ่สำหรับฟังก์ชันที่ใช้งานได้ทันที)
MyPlugin
ส่วนประกอบตอบสนองจะไปใน devs อื่น ๆ จะต้องนำเข้า / 'ของคุณเย็นโมดูล' และใช้สัญลักษณ์หลายรายการจากมันเพื่อให้ชื่อมัน -MyPlugin.js
MenuItem
MenuItem.js
cool-module.js