এইচটিএমএল / সিএসএস নামকরণ কনভেনশনগুলির জন্য ব্যবহারিক বিবেচনা (সিনট্যাক্স) [বন্ধ]


28

প্রশ্ন: বাক্যবিন্যাস classএবং idমানগুলির জন্য ব্যবহারিক বিবেচনাগুলি কী কী ?

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

আমি এই প্রশ্নটি জিজ্ঞাসা করছি কারণগুলি সংক্ষেপে:

  • নামকরণ সীমাবদ্ধতা উপর আইডি এবং বর্গ স্বাভাবিকভাবেই কোনো নিয়মাবলী হতে না
  • নামকরণ কনভেনশনগুলির অর্থসূচক দিক থেকে প্রচুর সংস্থানগুলি সিনট্যাক্টিক বিবেচনায় অস্পষ্ট অনুসন্ধানগুলি আবিষ্কার করে
  • আমি এটিতে কোনও লেখক উত্স খুঁজে পাইনি
  • এই বিষয়টিতে এখনও এসই প্রোগ্রামারগুলিতে কোনও প্রশ্ন আসেনি :)

আমি কয়েকটি কনভেনশন ব্যবহার করে বিবেচনা করেছি:

  1. UpperCamelCaseসার্ভার সাইড কোডিং থেকে মূলত ক্রস ওভার অভ্যাস হিসাবে
  2. lowerCamelCase, জাভাস্ক্রিপ্ট নামকরণ কনভেনশনগুলির সাথে ধারাবাহিকতার জন্য
  3. css-style-classes, যা CSS বৈশিষ্ট্যগুলির নামকরণের সাথে সামঞ্জস্যপূর্ণ (তবে যখন Ctrl + Shift + পাঠ্যের তীরচিহ্ন নির্বাচন করা হবে তখন বিরক্তিকর হতে পারে)
  4. with_under_scores, যা আমি ব্যক্তিগতভাবে খুব বেশি ব্যবহার করতে দেখিনি
  5. alllowercase, মনে রাখা সহজ তবে দীর্ঘ নামগুলির জন্য পড়া কঠিন
  6. UPPERCASEFTW, আপনার সহকর্মী প্রোগ্রামারদের বিরক্ত করার দুর্দান্ত উপায় হিসাবে (পঠনযোগ্যতার জন্য সম্ভবত 4 বিকল্পের সাথে মিলিত)

এবং সম্ভবত আমি কিছু গুরুত্বপূর্ণ বিকল্প বা সংমিশ্রণও রেখেছি। সুতরাং: সম্মেলনের নামকরণের জন্য কী বিবেচনা রয়েছে এবং তারা কোন সম্মেলনে নেতৃত্ব দেয়?


CamelCaseEverythingInCode
Ryathal

11
BUT_WHY_WOULD_YOU_DO_THAT_IS_THE_QUESTION? ;)
জেরোইন

আমি সাধারণত লোয়ারকেস ক্লাস এবং ক্যামেলকেস সব কিছু করি। কোনও বিশেষ কারণ নেই
আন্তার বাইার্ড

"সিএসএস-স্টাইল-ক্লাসগুলি, যা CSS বৈশিষ্ট্যগুলির নামকরণের সাথে সামঞ্জস্যপূর্ণ (তবে যখন Ctrl + Shift + পাঠ্যের তীরচিহ্ন নির্বাচন করা বিরক্তিকর হতে পারে)" - আপনি কেবলমাত্র একটি সাব-অনুকূল পাঠ্য সম্পাদক ব্যবহার করেন তবে ;-)
টিডামার্স

@ রাইথাল যা প্যাসকেলকেস (বা আপারকামেলকেস), উটকেস (বা লোয়ারকামেলকেস) এই উদাহরণটির মতো দেখায়।
ড্যানি ভারোড

উত্তর:


18

অনুগ্রহযোগ্য বা না কিছুটা হলেও পছন্দটি সর্বদা একটি "পছন্দের বিষয়" হয়ে উঠবে - সর্বোপরি, ডাব্লু 3 সি একটি নির্দিষ্ট কনভেনশনকে যথাযথ বলে মনে করেনি যা আপনি যথাযথ বলে মনে করেন না (বা এমনকি আরোপিত) করার পরে আপনি কেমন অনুভব করবেন?

যদিও আমি ব্যক্তিগতভাবে এই lowerCamelCaseসম্মেলনটি পছন্দ করি এবং আমি নিজের মন তৈরি করার জন্য যে কারণগুলি এবং ব্যবহারিক বিবেচ্য বিষয়গুলি ব্যবহার করব তা বলার পরে - আমি আপনার প্রশ্ন থেকে নম্বরটি ব্যবহার করে নির্মূলকরণের প্রক্রিয়া দ্বারা এটি করব:

(৫.) জাস্টনোটাসিলিরিড্রেডবায়জজ্যউইনডাউনট্রওয়ার্ড স্টোরস্ট্যান্ড্যান্ড।

()) ASABOVEPLUSITSANNOYINGLIKESOMONESHOUTING।

(৪) _তিহাসিক_সংশ্লিষ্টতা_প্লাস_সী: মজিলা দেব ডকুমেন্টেশন

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

সুতরাং এটি যথাক্রমে আপনার (1.) এবং (2.), আপারকামেলকেস এবং লোয়ারকামেলকেস ছেড়ে দেয়। জাভা ক্লাসগুলির মানসিক সংযোগ থাকা সত্ত্বেও (যেগুলি আরও পরিষ্কারভাবে সংজ্ঞায়িত কনভেনশন, আপারকামেলকেসে), সিএসএস ক্লাসের নামগুলি মনে হয়, ছোট হাতের অক্ষর দিয়ে শুরু করা ভাল। সম্ভবত এটি এক্সএইচটিএমএল উপাদান এবং বৈশিষ্ট্যযুক্ত নামগুলির কারণে হয়েছে তবে আমার ধারণা আপনি সিএসএস ক্লাসগুলি আপারকামেলকেস ব্যবহার করে এগুলি আলাদা করতে সহায়তা করবে। আপনার যদি অন্য কোনও কারণে প্রয়োজন হয়, লোয়ারকামেলকেস হ'ল ডাব্লু 3 সি ভাল শ্রেণীর নামের জন্য উদাহরণগুলিতে ব্যবহার করে (যদিও ইউআরএল নিজেই, বিরক্তিকরভাবে, আমার সাথে একমত নয়)।

আমি উপরে বর্ণিত কারণে (4), (5.) এবং (6.) এর বিরুদ্ধে পরামর্শ দেব, তবে মনে করুন যে অন্য তিনটির কোনওটির জন্যই যুক্তি দেওয়া যেতে পারে।

আপনি (বা এই বিষয়ে অন্য কেউ) এই বিষয়ে আমার সাথে একমত হন বা না হন যদিও আপনার উপর নির্ভর করবে। কর্তৃপক্ষের উত্সগুলি উদ্ধৃত করে এখনই আপনি একটি নির্দিষ্ট উত্তর না পেয়েছেন তা এই ইঙ্গিত হিসাবে নেওয়া যেতে পারে যে এই ইস্যুতে একটি নির্দিষ্ট মান হিসাবে কোনও জিনিস নেই (অন্যথায় আমরা সবাই এটি ব্যবহার করব)। আমি নিশ্চিত নই যে এটি অগত্যা খারাপ জিনিস।


ধন্যবাদ! আপনি উল্লেখ করেছেন (অন্যান্য উত্তরগুলির মতো) যে এটি অগ্রাধিকারের বিষয়, তবে এটির জন্য কিছু ব্যবহারিক পরামর্শ এবং আরও গুরুত্বপূর্ণ বিবেচনার জন্য কয়েকটি ভাল লিঙ্ক (যেমন one_on_icompatability) এর সাথে এটি পরিপূরক। যদিও আমি এখনও @tdammers এর উত্তর (ড্যাশ-এর ​​সাথে নামকরণ) এর পরামর্শটি অনুসরণ করে বিবেচনা করি তবে এখানে দেওয়া উত্তরটি হ'ল প্রকৃতপক্ষে আমার জিজ্ঞাসা করা প্রশ্নের উত্তর। সুতরাং: অনুগ্রহ + গৃহীত, আরও অনেকগুলি ধন্যবাদ :)
জেরোইন

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

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

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

7

সিএসএস শ্রেণীর নামের শব্দগুলিকে ড্যাশ ( class-name) দিয়ে পৃথক করা উচিত , যেমন সিএসএস বৈশিষ্ট্য এবং সিউডো-শ্রেণীর শব্দগুলি পৃথক করা হয় এবং তাদের বাক্য গঠন সিএসএস স্পেস দ্বারা সংজ্ঞায়িত করা হয় ।

আইডি নামের শব্দগুলিকে ড্যাশগুলির সাথে পৃথক করা উচিত, বর্গের নামগুলি এবং বাক্স আইডি নামগুলির সিন্ট্যাক্টিক শৈলীর সাথে মেলে বেশিরভাগ ইউআরএল ব্যবহার করা হয় এবং ইউআরএলগুলিতে ড্যাশ মূল এবং সর্বাধিক প্রচলিত শব্দ বিভাজক।


আহ +1, আমি ইউআরএল এর আইডির উল্লেখ পছন্দ করি। যদিও মজার বিষয়টি হ'ল, এই সম্পর্কে কিছু পোকিং করার জন্য, আমি উইকিপিডিয়া এটি কীভাবে এটি পরীক্ষা করে তা দেখতে গিয়েছিলাম। উদাহরণস্বরূপ উইকিপিডিয়া সিএসএস নিবন্ধের ব্রাউজার সমর্থন বিভাগটি দিয়েছে <span id="Browser_support" class="mw-headline">Browser support</span>: ও
জেরোইন

3

এটি বেশিরভাগ পছন্দের বিষয়; কোনও প্রতিষ্ঠিত মান নেই, বিষয়টি সম্পর্কে কোনও অনুমোদনযোগ্য উত্স দিন। আপনি সবচেয়ে স্বাচ্ছন্দ্য বোধ করেন যা ব্যবহার করুন; শুধু ধারাবাহিক হতে।

ব্যক্তিগতভাবে, আমি ব্যবহার করি css-style-with-dashes, তবে আমি বহু-শব্দ শ্রেণীর নামগুলি এড়াতে চেষ্টা করি এবং যেখানে সম্ভব সেখানে একাধিক ক্লাস ব্যবহার করি ( button important defaultতার চেয়ে বরং button-important-default)। আমার অভিজ্ঞতা থেকে এটি উচ্চ মানের ওয়েবসাইট এবং ফ্রেমওয়ার্কগুলির মধ্যে সর্বাধিক জনপ্রিয় পছন্দ বলে মনে হয়।

nowordseparatorswhatsoeverকমপক্ষে মার্কিন কীবোর্ডগুলিতে, অন্যান্য বিকল্পগুলির চেয়ে (হার্ড-টু রিডিং কনভেনশন বাদে ) ড্যাশযুক্ত ছোট ছোট অক্ষরগুলি টাইপ করা সহজ is কারণ এটিতে শিফট কী ব্যবহার করার প্রয়োজন নেই।

আইডির জন্য, অতিরিক্ত ব্যবহারিক বিবেচনা রয়েছে যে আপনি যদি সরাসরি তাদের জাভাস্ক্রিপ্টে আইডি দ্বারা রেফারেন্স করতে চান (উদাহরণস্বরূপ document.forms[0].btn_ok), ড্যাশগুলি এত ভাল কাজ করবে না - তবে আপনি যদি jQuery ব্যবহার করেন তবে আপনি সম্ভবত যাচ্ছেন এগুলি যে $()কোনও উপায়েই ব্যবহার করুন , যাতে আপনি ঠিক তখনই থাকতে পারেন $('#btn-ok')যা এই পয়েন্টটিকে বেশিরভাগ ক্ষেত্রে মোটা করে তোলে।

রেকর্ডের জন্য, আরেকটি সম্মেলন আমি নিয়মিতভাবে জুড়ে আসা আইডি এর হাঙ্গেরীয় warts উপাদান টাইপ ইঙ্গিত, বিশেষ করে ফর্ম নিয়ন্ত্রণের জন্য ব্যবহার করে - যাতে আপনি আছে চাই #lblUsername, #tbUsername, #valUsernameব্যবহারকারীর নাম লেবেল, ইনপুট, এবং যাচাইকারী জন্য।


উত্তর করার জন্য ধন্যবাদ! যদিও আমি কারও কাছে একটি অনুগ্রহ বজায় রাখছি আশা করি কারওর একটি উত্তর রয়েছে যা এটি "পছন্দসই বিষয়" কে কম করে তোলে। যদি কেউ না দেখায় তবে আমি আপনার উত্তরটি মেনে নেব নিশ্চিত।
জেরোইন

2

আমি যে বিষয়টিকে সর্বাধিক গুরুত্বপূর্ণ তা দৃ strongly়ভাবে বিশ্বাস করি ধারাবাহিকতা।

এটি দেখার দুটি উপায় রয়েছে:

  1. alllowercaseবা css-style-clauses(সম্ভবত আরও ভাল পছন্দ) এর জন্য একটি ভাল যুক্তি তৈরি করা যেতে পারে কারণ তারা যে কোডটিতে থাকবে সেগুলির সাথে তারা সর্বাধিক সামঞ্জস্যপূর্ণ হবে It এটি সামগ্রিকভাবে কোডটিতে আরও প্রাকৃতিক প্রবাহকে ধার দেবে এবং কিছুই জারিং বা স্থানের বাইরে থাকবে না ।

  2. এইচটিএমএল ট্যাগের নাম বা সিএসএস ক্লজগুলির থেকে আলাদা এমন স্টাইলের জন্যও সমানভাবে ভাল যুক্তি তৈরি করা যেতে পারে, যদি এটি পাঠযোগ্যতার জন্য এইডগুলিতে আইডি এবং ক্লাসকে আলাদা করে দেয়। উদাহরণস্বরূপ, আপনি যদি UpperCamelCaseআইডি এবং ক্লাসের জন্য ব্যবহার করেন , এবং অন্য কোনও নির্মাণ বা উদ্দেশ্যে এটি ব্যবহার না করেন তবে আপনি জানবেন যে আপনি যখনই সেই ফর্ম্যাটে একটি টোকেন দেখেছিলেন তখনই আপনি একটিতে আঘাত পেয়েছেন। এটির জন্য একটি বিধিনিষেধ আরোপ করতে পারে যে প্রতিটি আইডি বা শ্রেণি যদি 2+ শব্দের নাম হয় তবে এটি সবচেয়ে কার্যকর হবে তবে এটি বেশিরভাগ ক্ষেত্রেই যুক্তিযুক্ত।

এই উত্তরটি লেখার সময় আমি জানতে পেরেছিলাম যে আমি দ্বিতীয় পছন্দটির দিকে অনেক বেশি ঝোঁক, তবে আমি উভয়ই ছেড়ে দেব কারণ আমি মনে করি উভয় ক্ষেত্রেই যোগ্যতা রয়েছে।


-1

এটি সবই পছন্দসই বিষয়, বা অলসতার বিষয়। ক্যামেলকেসিং টাইপ করা সহজ, তবে আমি আন্ডারস্কোর নোটেশনটি ব্যবহার করতে পছন্দ করি কারণ ক্যামেলকেসের চেয়ে ব্যক্তিগতভাবে পড়া এবং ডিবাগ করা আমার কাছে সহজ মনে হয়। মেনে চলার জন্য কোনও সেট কোডিং কনভেনশন নেই, আমি কখনও এমন জায়গায় কাজ করিনি যেখানে এর আগের জায়গার মতো কোডিং গাইডলাইন ছিল।

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


-3

আপনি একটি সাধারণ বিষয় সম্পর্কে অবজ্ঞাহীন বলে মনে করছেন: বেশিরভাগ সিএসএস প্রোগ্রামারদের দ্বারা করা হয় না

এটি গ্রাফিক ডিজাইনাররা করেছেন।

তারা আমাদের সম্পাদনা যুদ্ধের বিষয়ে চিন্তা করে না এবং শিফট কী দিয়ে আমরা কী করি সে সম্পর্কে কম চিন্তা করতে পারে না।
তারা সম্ভবত জানেন না যে সেই অভিনব _কীটি । (বা এর নাম কী)

তারা কোড নান্দনিকতা সম্পর্কে চিন্তা করে না , তারা নান্দনিক নান্দনিকতার বিষয়ে যত্নশীল ।

(এবং তাদের সেখানে একটি বক্তব্য থাকতে পারে)

তারা অনুমানটি পড়েন না , তারা টিউটোরিয়াল পান।
এবং তারপরে ডাব্লু 3 স্কুলে রেফারেন্সগুলি ডাবল-চেক করুন।

তাদের মধ্যে কেউ কেউ সম্ভবত বিশ্বাস করে যে বড় কারণে তারা বড় বড় অক্ষর ব্যবহার করতে পারে না।
এগুলি অদ্ভুত, বেশিরভাগ অপ্রাসঙ্গিক ভুল ধারণা দ্বারা পরিপূর্ণ।


3
আমি অনুমান করি যে আপনি কোথায় কাজ করেন তার উপর নির্ভর করে, আমি এমন ডিজাইনারদের সাথে কাজ করেছি যারা মান সম্পর্কে মোটামুটি জঙ্গি; অনভিজ্ঞ ফ্রন্ট-এন্ড বিকাশকারীদের সাথে কাজ করার জন্য বা ওয়েব ডিজাইনার হিসাবে প্রিন্ট ডিজাইনারদের মুখোমুখি করা জিনিসগুলির শব্দ দ্বারা By এছাড়াও, আমি আমার প্রকল্পগুলিতে যুক্তিসঙ্গত পরিমাণ সিএসএস করি, যেমন কর্মক্ষেত্রে আমার বেশ কয়েকজন সহকর্মীও করি, আমি মনে করি যে ডিজাইন / প্রোগ্রামিং বিভাজনটি আসলে কোম্পানির গতিশীলতার উপর নির্ভর করে।
এড জেমস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.