লেখাকে snake_case এ রূপান্তর underscore_case বিনামূল্যে অনলাইন নিরাপদ
একটি লাইন পেস্ট করুন, সঙ্গে সঙ্গে snake_case এ পড়ুন। সবকিছু আপনারই ব্রাউজারে ঘটে — আপনি যা লেখেন তা কোথাও পাঠানো হয় না — আর নিয়মগুলি ইংরেজির নয়, এই পাতার ভাষার।
অন্যভাবে লিখুন
কিছুই আপলোড হয় না
একই লাইন, সাতটি লেখাতেই
| লেখা | একই লাইন, সেভাবে লেখা |
|---|---|
| বড় হাতের অক্ষর | CRÈME BRÛLÉE ২ জনের — STRASSE 17, FOOBAR |
| ছোট হাতের অক্ষর | crème brûlée ২ জনের — straße 17, foobar |
| Title Case | Crème Brûlée ২ জনের — Straße 17, Foobar |
| snake_case | crème_brûlée_২_জন_র_straße_17_foo_bar |
| kebab-case | crème-brûlée-২-জন-র-straße-17-foo-bar |
| camelCase | crèmeBrûlée২জনরStraße17FooBar |
| একটি URL ঠিকানা | creme-brulee-২-জন-র-strasse-17-foobar |
এই রূপগুলি কোথা থেকে এসেছে
বড় হাতের আর ছোট হাতের অক্ষর এককালে দুটি আলাদা বর্ণমালা ছিল। বড় হাতের অক্ষর রোমান, বাটালি দিয়ে পাথরে খোদাই করা; ছোট হাতের অক্ষর নেমে এসেছে ক্যারোলিঞ্জীয় ছোট লিপি থেকে, যা চামড়ার পাতায় দ্রুত ছোটা কলমে গড়া। মুদ্রকেরা দুটিকে আলাদা বাক্সে রাখতেন — উপরের বাক্স আর নিচের বাক্স — আর বাক্স হারিয়ে যাওয়ার বহু পরেও নামগুলি রয়ে গেল। প্রোগ্রামিংয়ের রূপগুলি অনেক নবীন এবং একটিমাত্র সমস্যা মেটাতে উদ্ভাবিত: নামের মধ্যে ফাঁকা জায়গা রাখা চলে না। snake_case এসেছে গোড়ার দিকের C থেকে, camelCase স্মলটক থেকে, kebab-case লিস্প থেকে, আর ঠিকানার slug এসেছে এই প্রয়োজন থেকে যে মানুষের পড়ার শিরোনামকে এমন এক ঠিকানায় বসাতে হবে যেখানে ফাঁক আর কার-চিহ্ন চলে না।
কোথায় এদের দেখা পাবেন
প্রতিটি শব্দের প্রথম অক্ষর বড় করা শিরোনাম আর বইয়ের মলাটের কাজ; কেবল বাক্যের প্রথম অক্ষর বড় করা বাকি প্রায় সবকিছুর, আর ক্রমে ইন্টারফেসেরও, কারণ তা দ্রুত পড়া যায়। snake_case নাম দেয় ডেটাবেসের কলামকে আর পাইথনের চলকে; camelCase জাভাস্ক্রিপ্টের চলক আর জাভার পদ্ধতিকে; kebab-case সিএসএস শ্রেণি আর ওয়েব প্রকল্পের ফাইলের নামকে। slug সেটিই, যা কোনো লেখার শিরোনামকে তার ঠিকানার শেষ অংশে পরিণত করে, আর এখানকার রূপান্তরগুলির মধ্যে কেবল সেটিই অনুসন্ধান যন্ত্র পড়ে।
প্রায়ই জিজ্ঞাসিত প্রশ্ন
বড় হাতের অক্ষরে বদলালে কখনও কখনও অক্ষরসংখ্যা বদলায় কেন?
কারণ অক্ষরের ছোট-বড় হওয়া ভাষার ধর্ম, বর্ণের নয়। জার্মান ß বড় হাতের অক্ষরে SS হয়, ফলে একটি অক্ষর দুটি হয়ে যায়। তুর্কিতে বিন্দুযুক্ত আর বিন্দুহীন দু-রকম i আছে, আর i-এর বড় রূপ I নয়, İ — এখানে ভুল হলে একটি তুর্কি শব্দ অন্য শব্দ হয়ে যায়। এখানকার রূপান্তর পাতার নিজস্ব ভাষার নিয়ম মেনে চলে, সেজন্যই একই লেখা তুর্কি পাতায় ইংরেজি পাতার চেয়ে আলাদা ফল দিতে পারে।
slug কার-চিহ্ন আর যতিচিহ্ন সরিয়ে দেয় কেন?
কারণ একটি ঠিকানাকে টিকে থাকতে হয় বার্তায় নকল হওয়ার পরেও, কাগজে ছাপা হওয়ার পরেও, হাতে আবার টাইপ হওয়ার পরেও। কার-চিহ্নযুক্ত অক্ষর আজকের ঠিকানায় বৈধ, কিন্তু নকল করার সময় শতাংশ-সংকেতে বদলে যায়, আর পড়ার যোগ্য একটি ঠিকানা চিহ্নের সারিতে পরিণত হয়। সেগুলিকে সাধারণ অক্ষর, অঙ্ক আর হাইফেনে নামিয়ে আনলে ঠিকানা পড়ার যোগ্য থাকে, ভাগ করে নেওয়া সহজ থাকে, আর যেখানেই দেখা যাক একই রকম থাকে।
উত্তরটি কি নির্ভুল?
যেখানে দুটি একক পূর্ণসংখ্যায় একে অপরের মাধ্যমে সংজ্ঞায়িত, সেখানে হ্যাঁ — পাতাটি সংখ্যার উপরেই তা বলে, আর একমাত্র পূর্ণাঙ্কন হলো কত অঙ্ক দেখানো হবে তাতে। যেখানে অনুপাতের দশমিক শেষ হয় না, পাতাটি বারোটি সার্থক অঙ্ক দেখায় এবং বলে সম্পর্কটি আসন্ন, অন্য কিছুর ভান করে না।
আমি যা লিখি তা কি আমার যন্ত্র ছেড়ে যায়?
না। হিসাব আপনারই ব্রাউজারে হয়; কিছুই আপলোড হয় না, আর হওয়ার মতো কোনো সার্ভারও নেই। পাতাটি একবার খুললে নেটওয়ার্ক বন্ধ থাকলেও কাজ করে।
কেন আপনি টেক্সটকে snake_case-এ রূপান্তর করেন
একজন প্রোগ্রামার একটি চলকের নাম annual report total দিতে পারেন না, কারণ একটি নামে ফাঁক থাকতে পারে না। একটি ডেটাবেস কলামকে Customer First Name বলা যায় না। Final Draft (2).docx নামের একটি ফাইল শিগগিরই হোক বা দেরিতে একটি স্ক্রিপ্টকে বিরক্ত করবে। কোনো এক জায়গায় মানুষের বাক্যাংশকে একটিমাত্র শব্দ হয়ে উঠতে হয়, আর অনেক সম্প্রদায় যে রূপে থিতু হয়েছে তা snake_case: সব অক্ষর ছোট হাতের, শব্দগুলো আন্ডারস্কোরে জোড়া, annual_report_total, customer_first_name, final_draft_2। টেক্সটকে snake_case-এ রূপান্তর করা মানে যেকোনো অবস্থার যেকোনো বাক্যাংশ নিয়ে এক ধাপে তাকে সেই রূপে বদলানো।
একটি লাইন পেস্ট করুন আর snake_case-এ ফেরত পড়ুন। রূপান্তর আপনার ব্রাউজারেই ঘটে, আপনার টাইপ করা কিছুই কোথাও পাঠানো হয় না, এবং নিয়ম অনুসরণ করে এই পাতার ভাষাকে, ইংরেজিকে নয়। এটি লাইনটিকে শব্দে কাটে, ছোট হাতের করে এবং আন্ডারস্কোর দিয়ে জোড়ে। আগে থেকে camelCase-এ লেখা একটি লাইনও তার বড় হাতের অক্ষরে কাটা হয়, তাই fooBar হয় foo_bar। নিচে পাবেন ঠিক তার অর্থ কী, কী বাদ পড়ে, বিভিন্ন ভাষার জটিল অক্ষর পাতাটি কীভাবে সামলায়, কোথায় snake_case রীতি আর কোথায় নয়, এবং তাড়াহুড়োয় টেক্সটকে snake_case-এ রূপান্তর করা মানুষদের যে ফাঁদ ধরে।
রূপান্তর কী করে
কাটা, ছোট হাতের করা, জোড়া
পাতাটি প্রথমে লাইনটিকে শব্দে কাটে। তারপর প্রতিটিকে ছোট হাতের করে এবং আন্ডারস্কোর দিয়ে জোড়ে। Crème brûlée for 2 — straße 17, fooBar লাইনটি ফেরত আসে crème_brûlée_for_2_straße_17_foo_bar হয়ে। অ্যাকসেন্ট রাখা হয়েছে, সংখ্যাগুলো নিজস্ব শব্দ হিসেবে থেকেছে, ড্যাশ ও কমা গেছে, আর fooBar দুই ভাগে কাটা হয়েছে, কারণ তার ভেতরের বড় হাতের অক্ষর একটি সীমানা চিহ্নিত করে।
কাটা কোথায় পড়ে
শব্দের সীমানা হলো একটি ফাঁক, একটি বিরামচিহ্ন, একটি ড্যাশ, একটি প্রতীক বা শব্দের ভেতরে ছোট হাতের অক্ষর থেকে বড় হাতের অক্ষরে বদল। তাই customerFirstName বাক্যাংশ, Customer First Name বাক্যাংশ এবং customer-first-name বাক্যাংশ সবই হয় customer_first_name। এটাই রূপান্তরের ব্যবহারিক শক্তি: এটি প্রায় যেকোনো শুরুর বিন্দু গ্রহণ করে আর সব সময় একই জায়গায় পৌঁছায়।
ফল কপি করা
ফলের পাশের একটি বোতাম তা ক্লিপবোর্ডে কপি করে। এডিটর, স্কিমা বা ফাইল ডায়ালগ যেখানে নামটি দরকার সেখানে পেস্ট করুন।
রূপান্তর যা করে না
এটি বিরামচিহ্ন রাখে না
কমা, বিন্দু ও ড্যাশ শব্দের মধ্যে সীমানা, বহন করার অক্ষর নয়। একটি ফাইলের নাম বা ডেটাবেস কলামের জন্য আপনি তাই চান, গদ্যের জন্য নয়। একটি বাক্য পাতার মধ্য দিয়ে চালালে সেটি একটি নাম হয়ে ফেরে, বাক্য হয়ে নয়, আর আসল বিরামচিহ্ন চলে যায়।
এটি অ্যাকসেন্ট সরায় না
লাইনটি তার অ্যাকসেন্টযুক্ত অক্ষর রাখে: crème_brûlée। অনেক সিস্টেম সেগুলো গ্রহণ করে, কিন্তু কিছু করে না, আর সেগুলো থাকা একটি নাম পুরোনো টুলে ঝামেলা করতে পারে। সাদা অক্ষর দরকার হলে URL স্লাগ পাতা ব্যবহার করুন, যা ল্যাটিন অক্ষর থেকে চিহ্ন সরায়।
এটি যাচাই করে না নামটি আপনার ভাষায় বৈধ কি না
প্রোগ্রামিং ভাষার নিজস্ব নিয়ম আছে। কিছু ভাষা অঙ্ক দিয়ে শুরু হওয়া নাম নিষিদ্ধ করে, কিছু class বা return-এর মতো শব্দ সংরক্ষিত রাখে। পাতাটি টেক্সটকে সঠিক আকারের একটি নামে বদলায়, আর আপনি যেখানে ব্যবহার করবেন সেখানে নামটি বৈধ কি না তা নিশ্চিত করা আপনারই কাজ। 2 for 1 offer-এর মতো একটি বাক্যাংশ হয় 2_for_1_offer, যাকে বেশির ভাগ ভাষা শুরুতেই প্রত্যাখ্যান করে।
ভাষা গুরুত্বপূর্ণ
ফাঁক ছাড়া লেখা লিপি
শব্দে কাটতে সীমানা লাগে। চীনা ও জাপানি লেখা হয় ফাঁক ছাড়া, তাই সেসব লিপির একটি লাইন একটিমাত্র শব্দ হয়ে ফেরে। পাতাটি আন্দাজ করা কোনো জায়গায় কাটার চেয়ে সে কথা বলাই পছন্দ করে, কারণ ভুল কাট এমন একটি নাম বানাবে যা বিশ্বাসযোগ্য দেখায় অথচ ভুল অর্থ বহন করে।
তুর্কি আর বিন্দুযুক্ত i
ছোট হাতের করা পাতার ভাষার নিয়ম অনুসরণ করে। তুর্কিতে I-এর ছোট রূপ বিন্দুহীন ı, আর İ-এর ছোট রূপ i। যে কনভার্টার ইংরেজি নিয়ম প্রয়োগ করে সে শব্দ বদলে দেয়। এই পাতা যে ভাষায় লেখা সেই ভাষা অনুসরণ করে।
জার্মান আর তীক্ষ্ণ s
জার্মান ß ইতিমধ্যে একটি ছোট হাতের অক্ষর এবং রাখা হয়, যেমন straße_17-এ। বড় হাতের STRASSE ফেরত আসে strasse হয়ে, কারণ বড় হাতের রূপ মনে রাখে না এটি ß থেকে এসেছে না দুটি অক্ষর থেকে।
ডান-থেকে-বাম আর ভারতীয় লিপি
আরবি, হিব্রু ও ভারতীয় লিপিতে শব্দের মধ্যে ফাঁক আছে কিন্তু বড়-ছোট হাতের অক্ষরের ভেদ নেই, তাই পাতাটি তাদের শব্দ আন্ডারস্কোর দিয়ে জোড়ে এবং অক্ষরগুলো যেমন আছে তেমন রাখে। কোনো টুল এমন নাম গ্রহণ করে কি না সেটি অন্য প্রশ্ন।
যেখানে snake_case রীতি
Python আর Ruby
Python স্টাইল গাইড ফাংশন, চলক ও মডিউলের জন্য snake_case সুপারিশ করে, আর Ruby একই অভ্যাস মানে। আপনি এর যেকোনো একটিতে কোড লিখলে আপনার নাম প্রায় সব সময় এই রূপে।
ডেটাবেস
SQL-এ টেবিল ও কলামের নাম সাধারণত snake_case: customer_id, created_at, order_total। এটি নামে উদ্ধৃতিচিহ্ন দেওয়ার দরকার এড়ায় এবং ডেটাবেস সিস্টেম জুড়ে নিরাপদ, যাদের কিছু উদ্ধৃতিহীন নামকে এক হাতে ভাঁজ করে আর camelCase-কে অপাঠ্য অক্ষরের সারিতে বদলে দেবে।
ডেটা ফাইল আর API
অনেক ওয়েব সেবা তাদের JSON-এ snake_case কী ব্যবহার করে, আর আরও প্রক্রিয়ার জন্য এক্সপোর্ট করা স্প্রেডশিটে প্রায়ই snake_case হেডার থাকে। আপনার ডেটা CSV থেকে JSON-এর মধ্য দিয়ে যাচ্ছে হলে হেডার সারি কী হয়, আর গোছানো snake_case হেডার ফল ব্যবহার সহজ করে।
ধ্রুবক আর পরিবেশ চলক
ধ্রুবক ও পরিবেশ চলক রীতিগতভাবে আন্ডারস্কোরসহ বড় হাতের অক্ষরে লেখা হয়: MAX_RETRIES, DATABASE_URL। সেগুলো পাওয়ার উপায় হলো আগে টেক্সটকে snake_case-এ রূপান্তর করা, তারপর টেক্সটকে বড় হাতের অক্ষরে রূপান্তর করুন দিয়ে ফল বড় করা।
ফাইলের নাম
আন্ডারস্কোরসহ ছোট হাতের অক্ষর প্রতিটি সিস্টেমে নিরাপদ ফাইলের নাম, এবং এটি অনুমানযোগ্যভাবে সাজে ও খোঁজে। ঠিক সেই কারণেই অনেক ফটোগ্রাফার, গবেষক ও প্রশাসক এটি ব্যবহার করেন।
যেখানে এটি রীতি নয়
JavaScript আর Java
এই ভাষাগুলো চলক ও ফাংশনের জন্য camelCase এবং ক্লাসের জন্য PascalCase পছন্দ করে। একটি Python স্ক্রিপ্টের নাম JavaScript ফাইলে আসার আগে রূপান্তরের দরকার হতে পারে। তার জন্য দেখুন camelCase।
CSS আর ওয়েব ঠিকানা
CSS ক্লাসের নাম ও ওয়েব ঠিকানা সাধারণত আন্ডারস্কোর নয়, হাইফেন ব্যবহার করে। তার টুল kebab-case। সার্চ ইঞ্জিন হাইফেনকে শব্দ বিভাজক এবং আন্ডারস্কোরকে জোড়ক হিসেবে গণ্য করে, একটি ছোট পার্থক্য যা হাইফেনযুক্ত ঠিকানার অভ্যাসের পেছনে।
গদ্য আর শিরোনাম
snake_case নামের জন্য, পড়ার জন্য নয়। এতে লেখা শিরোনাম বা বাক্য চোখের জন্য কঠিন। মানুষের টেক্সটের জন্য শব্দ ও ফাঁক রাখুন, আর একটি শিরোনামের জন্য Title Case ভেবে দেখুন।
এখানে কীভাবে টেক্সটকে snake_case-এ রূপান্তর করবেন
আপনার টেক্সট পেস্ট করুন বা টাইপ করুন
বাক্যাংশটি প্রথম ঘরে লিখুন। ফল দ্বিতীয় ঘরে সঙ্গে সঙ্গে আসে, তাই টাইপ করার সময় তা বদলাতে দেখতে পারেন।
কাট দেখুন
শব্দগুলো কোথায় ভাগ হয়েছে দেখুন। iPhone বা eBay-র মতো একটি শব্দ বড় হাতের অক্ষরে কাটা হয়, আর HTTPServer-এর মতো একটি সংক্ষিপ্ত রূপ আপনি যা চেয়েছিলেন তাই হয়েছে কি না এক নজরে দেখে নিতে হয়।
কপি করুন
কপি বোতাম চাপুন আর ফল যেখানে দরকার সেখানে পেস্ট করুন। একই লাইনের অন্য রূপের জন্য নিচে দেখুন।
পুরো একটি প্রকল্প জুড়ে snake_case ব্যবহার
পুরো স্ট্যাকের জন্য একটি রীতি
নামকরণের শৈলী মেশানো একটি প্রকল্প সামান্য কুৎসিত কিন্তু সঙ্গতিপূর্ণ প্রকল্পের চেয়ে পড়া কঠিন। ডেটাবেস snake_case ব্যবহার করলে তার সঙ্গে কথা বলা কোডও প্রায়ই করে, আর দুইয়ের মধ্যে চলা ফাইলগুলো অনুসরণ করে। একটি নতুন কলাম বা নতুন ক্ষেত্রের জন্য টেক্সটকে snake_case-এ রূপান্তর করার সময় আপনি এমন নাম বাছছেন যার সঙ্গে প্রতিটি অন্য স্তরকে বাঁচতে হবে, তাই একবার বাছুন এবং সবখানে বহন করুন।
রীতির মধ্যে নাম সরানো
শিগগিরই হোক বা দেরিতে, এক রীতির একটি নাম অন্যটিতে আসতে হয়। একটি ডেটাবেস কলাম customer_first_name একটি JavaScript অবজেক্টে customerFirstName এবং একটি CSS ক্লাস বা URL-এ customer-first-name হয়ে যায়। প্রতিটি হাতে আবার টাইপ করার বদলে মূলটি সেই পাতায় পেস্ট করুন যা আপনার দরকারি রূপ বানায়: C ও JavaScript পরিবারের কোডের জন্য camelCase এবং স্টাইল ও ঠিকানার জন্য kebab-case। একই নামের তিনটি রূপ পরস্পরের সঠিক অনুবাদ, আর একটি কনভার্টার সেগুলো সঙ্গতিপূর্ণভাবে বানায়।
কনফিগারেশন ফাইল
সেটিংসের ফাইল প্রায়ই snake_case কী ব্যবহার করে, বিশেষ করে অনেক টুলের ব্যবহৃত YAML-এ। JSON হিসেবে রাখা ডেটা থেকে এমন ফাইল তৈরি করার সময় JSON থেকে YAML কী-গুলো আপনি যেভাবে লিখেছেন তেমনই রাখে, আর YAML থেকে JSON উল্টোটা করে। শুরুর আগে কী-র জন্য snake_case ঠিক করুন, আর ফরম্যাটের মধ্যে রূপান্তর সেগুলোকে বিরক্ত করবে না।
একসঙ্গে অনেক নাম বদলানো
উত্তরাধিকারে পাওয়া একটি ডেটা ফাইলের হেডার শৈলীর মিশ্রণ হলে এই পাতা দিয়ে প্রতিটি হেডার রূপান্তর করুন এবং এক পাসে বদলান। আগে একটি ছোট নমুনা দিয়ে পরীক্ষা করুন, কারণ হেডার ধরে ফাইল পড়া স্ক্রিপ্ট কেবল কিছু জায়গায় নাম বদলালে ভেঙে যাবে। ফাইলের পাশে পুরোনো ও নতুন নামের একটি তালিকা রাখুন যাতে একজন সহকর্মী দেখতে পান কী বদলেছে।
যে নাম টিকে থাকে তা লেখা
জিনিসটি কী তা বলুন, কীভাবে সংরক্ষিত তা নয়
একটি ভালো নাম বিষয়বস্তু বর্ণনা করে। order_total বলে সংখ্যাটির অর্থ কী; col7 বলে না। টেক্সটকে snake_case-এ রূপান্তর করার সময় নিশ্চিত করুন আপনার শুরুর বাক্যাংশ আপনার লিখতে পারা সবচেয়ে স্পষ্ট, কারণ কনভার্টার তার স্পষ্টতা বা গোলমাল বিশ্বস্তভাবে বজায় রাখবে।
কেবল আপনি বোঝেন এমন সংক্ষেপ এড়ান
cust_fn_dt-এর মতো একটি নাম অন্য যে কারও কাছে, এবং ছয় মাস পরে আপনার কাছেও, একটি ধাঁধা। আন্ডারস্কোর সস্তা, বাড়তি শব্দও। বাক্যের মতো পড়া যায় এমন একটি লম্বা নাম একটি ব্যাখ্যাসূচি লাগা ছোট নামের চেয়ে পরের মানুষের জন্য ভালো উপহার।
একবচন আর বহুবচনে সঙ্গতি রাখুন
ঠিক করুন টেবিলের নাম একবচনে, customer, হবে না বহুবচনে, customers, এবং তাতেই থাকুন। রীতির চেয়ে তার একরূপতা বেশি গুরুত্বপূর্ণ। snake_case-এ বদলানো একটি বাক্যাংশ আপনার দেওয়া বচনই রাখে।
কাজে লাগলে উপসর্গ দিন
একটি বড় স্কিমায় একটি ছোট উপসর্গ সম্পর্কিত নামগুলো গোছায়: billing_address, billing_city, billing_country। উপসর্গসহ বাক্যাংশ টাইপ করে রূপান্তর করলে সঙ্গতিপূর্ণ ফল মেলে, আর একটি বর্ণানুক্রমিক তালিকা তখন নিজে নিজে গুচ্ছ বাঁধে।
প্রতিশ্রুতি দেওয়ার আগে নামগুলো পরীক্ষা করুন
একটি নাম স্কিমা বা API-তে যাওয়ার আগে সেটি যেখানে যেখানে আসবে সেখানে চেষ্টা করুন: একটি কোয়েরি, একটি চলক, একটি ফাইল তালিকা। তিন জায়গাতেই স্বাভাবিক পড়ালে তা কাজ দেবে। অস্বস্তিকর লাগলে বাক্যাংশটি ছোট করুন বা নতুন করে লিখুন এবং আবার টেক্সটকে snake_case-এ রূপান্তর করুন। শুরুতে এক মিনিটের পরীক্ষা পরে শত শত ফাইলে নাম বদলানো এড়ায়।
একই লাইন সাতটি লেখায়
রূপের একটি সারণি
কনভার্টারের নিচে একটি সারণি সাইটের দেওয়া সাতটি রূপেই উদাহরণ লাইনটি দেখায়: বড় হাতের, ছোট হাতের, Title Case, snake_case, kebab-case, camelCase এবং একটি URL স্লাগ। প্রতিটিতে একই শব্দ কেমন দেখায় তা দেখার এটি দ্রুত উপায়।
এই রূপগুলো কোথা থেকে আসে
দুটি বর্ণমালা
বড় ও ছোট হাতের অক্ষর একসময় দুটি আলাদা বর্ণমালা ছিল। বড়গুলো রোমান, ছেনি দিয়ে পাথরে কাটা; ছোটগুলো Carolingian minuscule থেকে এসেছে, চর্মপত্রে দ্রুত চলা কলমে গড়া। ছাপাখানার লোকেরা দুটিকে আলাদা ট্রেতে রাখত, upper case আর lower case, এবং ট্রে চলে যাওয়ার অনেক পরেও নামগুলো রয়ে গেছে।
ফাঁকহীন নাম
প্রোগ্রামিং রূপগুলো অনেক নবীন এবং একটি সমস্যা সমাধানে উদ্ভাবিত: একটি নামে ফাঁক থাকতে পারে না। snake_case এসেছে প্রথম দিকের C থেকে, camelCase Smalltalk থেকে, kebab-case Lisp থেকে, আর URL স্লাগ এসেছে মানুষের শিরোনামকে এমন একটি ঠিকানায় বসানোর প্রয়োজন থেকে যেখানে ফাঁক ও অ্যাকসেন্ট অনুমোদিত নয়। আন্ডারস্কোর তখনকার কীবোর্ডে একটি সুবিধাজনক অক্ষর ছিল, আর দেখতে লাইনের ওপর বসে থাকা একটি ফাঁকের মতো।
টেক্সটকে snake_case-এ রূপান্তরের সময় ফাঁদ
অঙ্ক দিয়ে নাম শুরু করা
বেশির ভাগ ভাষা ও ডেটাবেস সংখ্যা দিয়ে শুরু হওয়া নাম প্রত্যাখ্যান করে। বাক্যাংশ একটি সংখ্যায় শুরু হলে সামনে একটি অক্ষর বা শব্দ যোগ করুন।
আশা করা যে সংরক্ষিত শব্দ সামলানো হবে
class বা order-এর মতো একটি বাক্যাংশ আপনার ভাষায় বা SQL-এ সংরক্ষিত শব্দ হতে পারে। পাতাটি জানে না, আর আপনাকে দেখে নিতে হবে।
সংক্ষিপ্ত রূপ
parseHTMLString-এর মতো একটি camelCase নামের ভেতরের সংক্ষিপ্ত রূপ নিয়ম অনুযায়ী parse_h_t_m_l_string বা parse_html_string-এ কাটা হতে পারে। ফল আপনার চাওয়া মতো কি না দেখে নিন।
খুব লম্বা নাম
ডেটাবেস ও ফাইল সিস্টেম দৈর্ঘ্যের সীমা চাপায়। একটি লম্বা বাক্যাংশ নামে বদলালে তাতে ঠেকতে পারে। রূপান্তরের আগে শব্দ ছোট করুন।
রূপান্তরের আগে মানুষ যা জিজ্ঞাসা করে
বিরামচিহ্নের কী হয়?
এটি শব্দের মধ্যে সীমানা হিসেবে গণ্য হয় এবং বহন করা হয় না।
সংখ্যা কি রাখা হয়?
হ্যাঁ, নিজস্ব শব্দ হিসেবে, আন্ডারস্কোরে আলাদা।
camelCase ইনপুট কি সামলায়?
হ্যাঁ। শব্দের ভেতরের একটি বড় হাতের অক্ষর কাট চিহ্নিত করে, তাই fooBar হয় foo_bar।
অন্য ভাষার জন্য কি ব্যবহার করতে পারি?
হ্যাঁ, পাতার ভাষার নিয়মসহ। চীনা ও জাপানির মতো ফাঁকহীন লিপি একটিমাত্র শব্দ হয়ে ফেরে।
আমার টেক্সট কি আপলোড হয়?
না। আপনি এখানে যা টাইপ করেন তা কখনও কোথাও পাঠানো হয় না, তাই একটি খসড়া, একটি পাসওয়ার্ড বা একজন ক্লায়েন্টের নাম এখানে একটি টেক্সট এডিটরের মতোই নিরাপদ।
বদলে হাইফেন চাইলে কীভাবে পাব?
টেক্সটকে kebab-case-এ রূপান্তর করুন দিয়ে।
একটি কাজের উদাহরণ
ধরুন আপনি একটি লাইব্রেরির জন্য ছোট ডেটাবেস বানাচ্ছেন আর কর্মীরা তাদের স্প্রেডশিট থেকে কলামের শিরোনাম পাঠিয়েছেন: Book Title, Author's Last Name, Year Published (YYYY), ISBN-13। আপনি প্রতিটি পরপর রূপান্তর করেন আর পড়েন book_title, author_s_last_name, year_published_yyyy এবং isbn_13। অ্যাপোস্ট্রফি লেখক কলামকে অগোছালো কিছু বানিয়েছে, তাই আপনি মূলটি ছেঁটে Author Last Name করেন এবং আবার রূপান্তর করেন: author_last_name। বছরের কলাম ফরম্যাট-নোট ছাড়া স্পষ্টতর, তাই আপনি year_published রাখেন। চারটি গোছানো কলামের নাম, এক মিনিটে লেখা, আর প্রতিটিই এমন নাম যা ডেটাবেস গ্রহণ করবে।
একটি সংক্ষিপ্ত চেকলিস্ট
রূপান্তরের আগে
বন্ধনীর টীকা ছাড়া বাক্যাংশটি সাদা কথায় লিখুন। দেখুন লক্ষ্য আন্ডারস্কোর ও অ্যাকসেন্ট গ্রহণ করে কি না।
রূপান্তরের সময়
বাক্যাংশটি পেস্ট করুন, কাটগুলো দেখুন এবং নিশ্চিত করুন নামটি একটি অক্ষর দিয়ে শুরু।
রূপান্তরের পর
দৈর্ঘ্য দেখুন, সংরক্ষিত শব্দের বিপরীতে যাচাই করুন এবং মূল বাক্যাংশের একটি রেকর্ড রাখুন, যাতে নামটি তার অর্থ পর্যন্ত খুঁজে পাওয়া যায়।
সাধারণ ভুল
মানুষ যা পড়বে সেই টেক্সটের জন্য snake_case ব্যবহার
এটি নামের জন্য, গদ্যের জন্য নয়।
লক্ষ্য কী অনুমতি দেয় তা ভুলে যাওয়া
শুরুর অঙ্ক, অ্যাকসেন্ট ও দৈর্ঘ্যের সীমা সিস্টেমভেদে আলাদা।
না দেখে সংক্ষিপ্ত রূপ রূপান্তর
তাদের আশপাশের কাট দেখে নিন।
আপনার টেক্সট আপনার ডিভাইসেই থাকে
রূপান্তর স্থানীয়ভাবে ঘটে। আপনার টেক্সট আপনার নিজের ব্রাউজার সামলায় এবং কিছুই কোথাও পাঠানো হয় না। পরে মোছার কিছু নেই আর তৈরি করার মতো কোনো অ্যাকাউন্টও নেই। টেক্সটকে snake_case-এ রূপান্তর করার এটাই সরল উপায়।
সারসংক্ষেপ
এখানে টেক্সটকে snake_case-এ রূপান্তর করতে একটি লাইন পেস্ট করুন আর শব্দগুলো কাটা, ছোট হাতের করা এবং আন্ডারস্কোরে জোড়া অবস্থায় ফেরত পড়ুন। camelCase-এ আগে থেকে লেখা একটি লাইনও সেখানে কাটা হয়, তাই fooBar হয় foo_bar। পাতাটি বিরামচিহ্ন রাখে না: কমা, বিন্দু ও ড্যাশ শব্দের মধ্যে সীমানা, বহন করার অক্ষর নয়, যা একটি ফাইলের নাম বা ডেটাবেস কলামের জন্য আপনি চান কিন্তু গদ্যের জন্য নয়। শব্দে কাটতে সীমানা লাগে, তাই ফাঁক ছাড়া লেখা চীনা ও জাপানি একটিমাত্র শব্দ হয়ে ফেরে। ছোট হাতের করা পাতার ভাষা অনুসরণ করে। কিছুই আপলোড হয় না।