জাভাস্ক্রিপ্ট ফাইল নামকরণ নামকরণ কী? [বন্ধ]


283

হাইফেনস.জেএস, উট কেস.জেস, বা অন্য কিছুর সাথে ফাইলগুলির নামকরণ করা উচিত?

আমি এই প্রশ্নের উত্তর এখানে পাইনি ।


2
একটি ভাল নামকরণের কনভেনশন হ'ল ফাইলের নামকরণ করা যেমন আপনি কোডটিতে সেই সত্তাটি দেখতে পান। MyPluginক্লাসে যেতে হবে MyPlugin.jsMenuItemযাব উপাদান প্রতিক্রিয়া MenuItem.js। অন্যান্য ডেভগুলিকে 'আপনার-শীতল-মডিউল' প্রয়োজন হবে এবং এটি থেকে একাধিক প্রতীক ব্যবহার করা হবে, সুতরাং এটির নাম দিন cool-module.js। -
ড্যান ড্যাসক্লেস্কু

1
এই পোস্টটি বিকল্প ভিত্তিক নয়। আসলে এটি গুরুত্বপূর্ণ। এখানে আপনার গুগল দ্বারা তৈরি একটি গাইড রয়েছে - google.github.io/styleguide/jsguide.html#file-name । (গুগল জাভাস্ক্রিপ্ট স্টাইল গাইড)
zwitterion

উত্তর:


184

একটি সম্ভাব্য নামকরণ কনভেনশন হ'ল নামকরণ স্কিম jQuery ব্যবহারের অনুরূপ কিছু ব্যবহার করা। এটি সর্বজনীনভাবে গৃহীত হয়নি তবে এটি বেশ সাধারণ।

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

যেখানে product-name+ pluginজুটি একটি নামস্থান এবং একটি মডিউল উপস্থাপন করতে পারে । versionএবং filetypeসাধারণত ঐচ্ছিক।

filetypeফাইলের বিষয়বস্তু কেমন তা সম্পর্কিত কিছু হতে পারে। প্রায়শই দেখা যায়:

  • min Minified ফাইলের জন্য
  • custom কাস্টম বিল্ট বা পরিবর্তিত ফাইলের জন্য

উদাহরণ:

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

31
আপনি যা বলেছিলেন তাতে আমি একমত তবে বর্তমানে একটি জিনিস নিয়ে আমি লড়াই করছি: 'প্লাগইন'-এ দুটি শব্দ থাকলে কী হবে? বিন্দু দ্বারা তাদের পৃথক? jquery.myPlugin-1.0.0.js বা jquery.my.plugin-1.0.0.js বা jquery.my_plugin-1.0.0.js বা jquery.myplugin-1.0.0.js বা সম্ভবত jquery.my- প্লাগইন- 1.0.0.js? সম্ভবত আপনি এটি দিয়ে আপনার উদাহরণগুলি সম্পূর্ণ করতে পারেন, ধন্যবাদ!
মেয়রগণ

4
এএমডি মডিউলগুলি সম্পর্কে কী ? আপনি যদি ফাইলের নামগুলিতে সংস্করণ ব্যবহার করেন তবে সংস্করণ নম্বর পরিবর্তন হলে আপনাকে প্রচুর ফাইল পরিবর্তন করতে হবে।
নট

3
@ জুনিয়র, এটি একটি পুরাতন পোস্ট, তবে একটি দ্রুত তাত্পর্যপূর্ণ অনুসন্ধান অনুসন্ধানগুলি আবিষ্কার করে যে জ্যুচুরি প্লাগইনগুলি কোনও বিশেষ সম্মেলন অনুসরণ করে না। দেখা যাচ্ছে যে (1) শব্দগুলিকে একসাথে ঠেলে দেওয়া, (২) মেরুদণ্ডের কেস ব্যবহার করা এবং (3) উটকেস ব্যবহার করে মোটামুটি সমমানের ফ্রিকোয়েন্সি ব্যবহার করা হয়।
ভোলবেন

ভুলে যাবেন না যে কিছু সংস্করণ এবং ফাইল সিস্টেমে লোয়ারকেসে একটি শব্দ এবং একই শব্দটি উচ্চতর বা ক্যামেলকেস একই শব্দ (যেমন: "এই ওয়ার্ড" কিছু পরিবেশে "এই ওয়ার্ডওয়ার্ড" সমান) এর মধ্যে পার্থক্য সনাক্ত করতে সমস্যা রয়েছে। উটকেস কনভেনশন ব্যবহার করার সময় কিছু মনে রাখবেন।
অ্যামিপেলগ্রিনি ২

@ নট আপনি সংস্করণ নামের মাধ্যমে লোড করা উচিত নয়, কিন্তু একটি নির্দিষ্ট সংস্করণ ফাইলে মডিউল নাম ম্যাপিং।
aloreলোর

132

আমি জাভাস্ক্রিপ্ট ফাইলগুলির জন্য কোনও বিশেষ কনভেনশন সম্পর্কে অবগত নই কারণ তারা ওয়েব বনাম CSS ফাইল বা এইচটিএমএল ফাইল বা অন্য কোনও ধরণের ফাইলের তুলনায় সত্যই অনন্য নয়। কিছু "নিরাপদ" জিনিস আপনি করতে পারেন যা এটি দুর্ঘটনাক্রমে ক্রস প্ল্যাটফর্ম ইস্যুতে চালিত হওয়ার সম্ভাবনা কম করে তোলে:

  1. সমস্ত ছোট হাতের ফাইল নাম ব্যবহার করুন। কিছু অপারেটিং সিস্টেম রয়েছে যা ফাইলনামগুলির ক্ষেত্রে সংবেদনশীল নয় এবং সমস্ত ছোট হাতের ব্যবহার অজান্তেই দুটি ফাইল ব্যবহার করা বাধা দেয় যা কেবলমাত্র কিছু অপারেটিং সিস্টেমে কাজ না করার ক্ষেত্রে পৃথক হয়।
  2. ফাইল নেমে ফাঁকা স্থান ব্যবহার করবেন না। যদিও এই প্রযুক্তিগতভাবে কাজ করার জন্য তৈরি করা যেতে পারে সেখানে অনেকগুলি কারণ রয়েছে যে কারণে ফাইলের নামগুলিতে স্থানগুলি সমস্যার কারণ হতে পারে।
  3. একটি হাইফেন শব্দের বিভাজকের জন্য ঠিক আছে। আপনি যদি স্থান হিসাবে বা ক্যামেলকেসের পরিবর্তে একাধিক শব্দের জন্য কিছু ধরণের বিভাজক ব্যবহার করতে চান তবে various-scripts.jsহাইফেন একটি নিরাপদ এবং দরকারী এবং সাধারণত ব্যবহৃত বিভাজক।
  4. আপনার ফাইলের নামগুলিতে সংস্করণ নম্বরগুলি ব্যবহার করার বিষয়ে ভাবুন। আপনি যখন আপনার স্ক্রিপ্টগুলি আপগ্রেড করতে চান, তখন ব্রাউজার বা সিডিএন ক্যাশিংয়ের প্রভাবগুলির জন্য পরিকল্পনা করুন। দীর্ঘমেয়াদী ক্যাচিং (গতি এবং দক্ষতার জন্য) ব্যবহারের সহজ উপায়, তবে আপনি যখন কোনও জেএস ফাইল আপগ্রেড করেন তখন তাত্ক্ষণিক এবং নিরাপদ আপগ্রেডগুলি হ'ল ডিপ্লয়েড ফাইলের নাম বা পথে কোনও সংস্করণ নম্বর অন্তর্ভুক্ত করা (যেমন jQuery jquery-1.6.2.js সহ করে ) এবং তারপরে আপনি যখনই ফাইলটি আপগ্রেড / পরিবর্তন করেন তখন সেই সংস্করণ নম্বরটি ঘাট / বদল করে change এটি গ্যারান্টি দেয় যে নতুন সংস্করণটির জন্য অনুরোধ করা কোনও পৃষ্ঠা কখনও ক্যাশে থেকে পুরানো সংস্করণ পরিবেশন করে না।

56

জাভাস্ক্রিপ্ট ফাইলগুলির নামকরণের জন্য কোনও অফিসিয়াল, সার্বজনীন , কনভেনশন নেই।

কিছু বিভিন্ন বিকল্প রয়েছে:

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

সমস্ত বৈধ নামকরণের সম্মেলন, তবে আমি jQuery প্রস্তাবিত নামকরণ কনভেনশন পছন্দ করি (jQuery প্লাগইনগুলির জন্য, যদিও এটি কোনও জেএসের জন্য কাজ করে)

  • jquery.pluginname.js

এই নামকরণ কনভেনশনটির সৌন্দর্য হ'ল এটি বিশ্বব্যাপী নামকরণ জায়গার দূষণ যুক্ত হওয়ার বিষয়টি স্পষ্টভাবে বর্ণনা করে।

  • 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

10
+1 এর জন্য The beauty to this naming convention is that it explicitly describes the global namespace pollution being added., এটি কখনই লক্ষ্য করা যায়নি
অ্যাড্রিয়েন

2
আমার একমাত্র প্রশ্নটি হল আপনার যদি এমন একটি ফাইল তৈরি হয় যা আপনি তৈরি করেন Fooবা myFooআপনি কেবল ফাইলটির নাম রাখবেন Foo.jsবা myFoo.jsযথাক্রমে?
সেমিকোলন

13

লিঙ্কের যে প্রশ্নটি আপনি জাভাস্ক্রিপ্ট ভেরিয়েবলের নামকরণের বিষয়ে কথা বলেছেন, ফাইল নামকরণ সম্পর্কে নয়, তাই আপনি যে প্রসঙ্গে আপনার প্রশ্ন জিজ্ঞাসা করছেন সেই প্রসঙ্গে ভুলে যান।

নামকরণ ফাইল করার ক্ষেত্রে এটি নিখুঁতভাবে পছন্দ এবং স্বাদের বিষয়। আমি হাইফেনের সাথে ফাইলগুলির নামকরণ পছন্দ করি কারণ এরপরে আমাকে শিফট কী-তে পৌঁছতে হবে না, যেমনটি আমি উটকেস ফাইলের নাম ব্যবহার করার সময় করি; এবং যেহেতু আমাকে উইন্ডোজ এবং লিনাক্স ফাইলের নামের মধ্যে পার্থক্য সম্পর্কে চিন্তার দরকার নেই (উইন্ডোজ ফাইলের নামগুলি কেস-সংবেদনশীল, কমপক্ষে এক্সপির মাধ্যমে)।

সুতরাং অনেকের মত উত্তরটিও "এটি নির্ভর করে" বা "এটি আপনার উপর নির্ভর করে।"

আপনার যে নিয়মটি অনুসরণ করা উচিত তা হ'ল আপনার চয়ন করা সম্মেলনে সামঞ্জস্যতা বজায় রাখা।


6
হাইফেন বনাম উটকেস যুক্তির জন্য +1।
cellepo

6

আমি সাধারণত লোয়ার কেস সহ হাইফেনগুলি পছন্দ করি তবে একটি জিনিস যা এখনও উল্লেখ করা হয়নি তা হ'ল কখনও কখনও ফাইলের নামটির সাথে একক মডিউল বা অস্থায়ী ফাংশনটির সাথে সঠিকভাবে মিল থাকা ভাল।

উদাহরণস্বরূপ, var knockoutUtilityModule = function() {...}নকআউট ইউটিলিটিমডিউল.জেএস নামের নিজস্ব ফাইলের মধ্যে আমার কাছে একটি প্রকাশক মডিউল ঘোষিত হয়েছে , যদিও উদ্দেশ্যমূলকভাবে আমি নকআউট-ইউটিলিটি-মডিউল.জেএস পছন্দ করি।

একইভাবে, যেহেতু আমি স্ক্রিপ্টগুলি একত্রিত করার জন্য একটি বান্ডিলিং মেকানিজম ব্যবহার করছি, তাই রক্ষণাবেক্ষণের জন্য আমি প্রতিটি তাদের নিজস্ব ফাইল, সি # স্টাইলের মধ্যে ইনস্ট্যানটেবল ফাংশন (টেম্প্লেটেড ভিউ মডেল ইত্যাদি) সংজ্ঞায়িত করেছি। উদাহরণস্বরূপ, ProductDescriptorViewModel তার নিজস্ব ProductDescriptorViewModel.js এর অভ্যন্তরে বাস করে (আমি তাত্পর্যপূর্ণ ফাংশনগুলির জন্য আপার কেস ব্যবহার করি)।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.