অতীতে আমি সবসময় এইচটিএমএলে শ্রেণি এবং আইডি বৈশিষ্ট্যগুলি সংজ্ঞায়িত করার জন্য আন্ডারস্কোর ব্যবহার করেছি । গত কয়েক বছর ধরে আমি ড্যাশগুলিতে পরিবর্তিত হয়েছি, বেশিরভাগ ক্ষেত্রে নিজেকে সম্প্রদায়ের ধারার সাথে একত্রিত করার জন্য, অগত্যা নয় যে এটি আমার কাছে বোধগম্য হয়েছিল।
আমি সবসময় ভেবেছিলাম ড্যাশগুলির আরও কমতি রয়েছে এবং আমি এর সুবিধাগুলি দেখতে পাচ্ছি না:
কোড সমাপ্তি এবং সম্পাদনা
বেশিরভাগ সম্পাদকরা ড্যাশগুলি শব্দের বিভাজক হিসাবে বিবেচনা করে, তাই আমি যে প্রতীকটি চাই তার দ্বারা ট্যাব করতে পারি না। ক্লাসটি " featured-product
" বলুন , আমাকে স্বয়ংক্রিয়ভাবে সম্পূর্ণ " featured
" করতে হবে, একটি হাইফেন লিখতে হবে এবং " product
" সম্পূর্ণ করতে হবে ।
আন্ডারস্কোর সহ " featured_product
" একটি শব্দ হিসাবে বিবেচিত হয়, তাই এটি এক ধাপে পূরণ করা যায়।
এটি নথির মাধ্যমে নেভিগেট করতে প্রযোজ্য। শব্দের সাহায্যে জাম্প করা বা শ্রেণীর নামের উপর ডাবল-ক্লিক করা হাইফেন দ্বারা বিভক্ত।
(আরও সাধারণভাবে, আমি ক্লাস এবং আইডিকে টোকেন হিসাবে মনে করি , তাই এটি আমার কাছে বোধগম্য হয় না যে একটি টোকেন হাইফেনগুলিতে এত সহজে বিভক্ত হওয়া উচিত))
পাটিগণিত অপারেটরের সাথে অস্পষ্টতা
ড্যাশ ব্যবহার করে জাভাস্ক্রিপ্টে উপাদান তৈরি করতে অবজেক্ট-প্রোপার্টি অ্যাক্সেস বিরতি দেয় । আন্ডারস্কোর দিয়ে এটিই সম্ভব:
form.first_name.value='Stormageddon';
(স্বীকার করছি যে আমি নিজেই এইভাবে ফর্ম উপাদানগুলিতে অ্যাক্সেস পাই না, তবে সর্বজনীন নিয়ম হিসাবে ড্যাশ বনাম আন্ডারস্কোরগুলি নিয়ে সিদ্ধান্ত নেওয়ার সময় বিবেচনা করুন যে কেউ হয়ত এই হতে পারে))
সাসের মতো ভাষা (বিশেষত কমপাস ফ্রেমওয়ার্ক জুড়ে ) চলক নামের জন্য এমনকি ড্যাশগুলিতে একটি স্ট্যান্ডার্ড হিসাবে স্থির হয়েছে। তারা প্রথমদিকে আন্ডারস্কোর ব্যবহার করেছিল used এটিকে পৃথকভাবে পার্স করা হয়েছে তা আমাকে বিজোড় হিসাবে আঘাত করেছে:
$list-item-10
$list-item - 10
ভাষাগুলিতে পরিবর্তনশীল নামকরণের সাথে অসঙ্গতি
আগের দিন, আমি underscored_names
পিএইচপি, রুবি, এইচটিএমএল / সিএসএস এবং জাভাস্ক্রিপ্টে ভেরিয়েবলের জন্য লিখতাম। এটি সুবিধাজনক এবং সামঞ্জস্যপূর্ণ ছিল, তবে আবার "ফিট করার জন্য" আমি এখন ব্যবহার করি:
dash-case
এইচটিএমএল / সিএসএসেcamelCase
জাভাস্ক্রিপ্টেunderscore_case
পিএইচপি এবং রুবি মধ্যে
এটি সত্যই আমাকে খুব বেশি বিরক্ত করে না, তবে আমি অবাক হই যে এগুলি কেন এত ভুল পথে চালিত হয়েছিল, আপাতদৃষ্টিতে উদ্দেশ্য হিসাবে। কমপক্ষে আন্ডারস্কোর দিয়ে ধারাবাহিকতা বজায় রাখা সম্ভব ছিল:
var featured_product = $('#featured_product'); // instead of
var featuredProduct = $('#featured-product');
পার্থক্যগুলি এমন পরিস্থিতিতে তৈরি করে যেখানে বাগের সম্ভাবনার পাশাপাশি আমাদের অকারণে স্ট্রিং অনুবাদ করতে হবে।
সুতরাং আমি জিজ্ঞাসা করছি: কেন সম্প্রদায়টি প্রায় সর্বজনীনভাবে ড্যাশগুলিতে বসতি স্থাপন করেছিল, এবং এমন কোনও কারণ আছে যা আন্ডারস্কোরকে ছাড়িয়ে যায়?
এটি শুরু হওয়ার প্রায় কাছাকাছি থেকেই একটি সম্পর্কিত প্রশ্ন রয়েছে , তবে আমি মনে করি এটি স্বাদের বিষয় নয় (বা হওয়া উচিত হয়নি )। আমি যদি বুঝতে পারি যে কেন আমরা সকলেই এই সম্মেলনে স্থির হয়েছি যদি এটি সত্যিই স্বাদের বিষয় ছিল।