camelCase بمقابلہ snake_case بمقابلہ kebab-case
JavaScript کے لیے camelCase، Python اور ڈیٹا بیس کے لیے snake_case، CSS اور URLs کے لیے kebab-case۔ ہر نام کا مناسب طریقہ اور مفت تبدیلی کا ذریعہ۔
شائع شدہ · 6 منٹ کا مطالعہ
camelCase بمقابلہ snake_case بمقابلہ kebab-case کا فیصلہ زیادہ تر اس بات پر ہوتا ہے کہ نام کہاں رہتا ہے۔ JavaScript اور Java میں camelCase استعمال ہوتا ہے (firstName)، Python، Ruby اور SQL میں snake_case (first_name)، اور CSS، HTML کی خصوصیات (attributes) اور URLs میں kebab-case (first-name)۔ زبان کے رواج اور اپنی ٹیم کے اسٹائل گائیڈ پر عمل کریں۔ متن کو ایک کیس سے دوسرے میں بدلنے کے لیے مفت کیس کنورٹر اور مفت URL slug جنریٹر زیادہ تر کام آپ کے براؤزر میں کر دیتے ہیں۔
camelCase بمقابلہ snake_case بمقابلہ kebab-case ایک نظر میں
| اسٹائل | مثال | کہاں نظر آتا ہے |
|---|---|---|
| camelCase | userFirstName |
JavaScript اور TypeScript کے variables اور functions، Java کے methods، بہت سی ویب APIs کا JSON |
| PascalCase | UserFirstName |
زیادہ تر زبانوں میں کلاس کے نام، React components، C# methods |
| snake_case | user_first_name |
Python کے variables اور functions، Ruby، SQL کے کالم کے نام، بہت سی JSON APIs |
| SCREAMING_SNAKE_CASE | USER_FIRST_NAME |
بہت سی زبانوں میں constants، environment variables |
| kebab-case | user-first-name |
CSS properties اور class names، HTML attributes، URLs، فائل کے نام، CLI flags |
ناموں کی بنیاد ان کی شکل سے آتی ہے: camelCase میں بڑے حروف کے ابھار ہوتے ہیں، snake_case انڈر اسکور پر سیدھا لیٹتا ہے، اور kebab-case کے لفظ ہائفن میں پروئے ہوتے ہیں۔

زبان کے لحاظ سے
JavaScript اور TypeScript۔ variables اور functions camelCase میں ہوتے ہیں (getUserName)، classes اور React components PascalCase میں (UserCard)، اور constants اکثر SCREAMING_SNAKE_CASE میں (MAX_RETRIES)۔ زبان کے اپنے built-ins بھی اسی پر چلتے ہیں، جیسے getElementById اور toLowerCase۔
Python۔ PEP 8، Python کا اسٹائل گائیڈ، functions، variables اور module names کے لیے snake_case، classes کے لیے CapWords (PascalCase)، اور constants کے لیے بڑے حروف اور انڈر اسکور استعمال کرتا ہے۔ Python میں getUserName لکھنا کام کرتا ہے، لیکن ہر Python ڈویلپر کو یہ عجیب لگے گا جو اسے پڑھتا ہے۔
CSS اور HTML۔ CSS properties kebab-case میں ہوتی ہیں (background-color، font-size)، اور زیادہ تر class-naming نظام بھی یہی پیروی کرتے ہیں (.nav-item، .card-title)۔ HTML کے data- attributes بھی kebab-case میں ہوتے ہیں، اور براؤزر انہیں JavaScript کے لیے بدل دیتا ہے: data-user-id بن جاتا ہے element.dataset.userId۔ یہ ایک سطر بتاتی ہے کہ دونوں رواج کیوں موجود ہیں۔
SQL اور ڈیٹا بیس۔ کالم اور ٹیبل کے نام عام طور پر snake_case میں ہوتے ہیں (created_at، order_items)۔ بہت سے ڈیٹا بیس بغیر quotes والے ناموں کو ایک ہی کیس میں بدل دیتے ہیں، تو createdAt خاموشی سے createdat بن سکتا ہے، جب تک آپ ہر بار اسے quote نہ کریں۔ snake_case یہ مسئلہ نہیں آنے دیتا۔
URLs اور فائل کے نام۔ kebab-case استعمال کریں۔ Google کی URL ساخت کی رہنمائی الفاظ کو الگ کرنے کے لیے انڈر اسکور کے بجائے ہائفن کی سفارش کرتی ہے، کیونکہ ہائفن الفاظ کی حدود واضح کرتے ہیں۔ چھوٹے حروف سرور پر ٹوٹے لنکس سے بھی بچاتے ہیں، جو About.html اور about.html کو مختلف فائلیں سمجھتے ہیں۔ دیکھیں URL slug کیا ہوتا ہے اور ہمارے URL slug کے بہترین طریقے۔
JSON اور APIs۔ کوئی ایک اصول نہیں۔ JavaScript کے ماحول کی بہت سی APIs camelCase استعمال کرتی ہیں اور بہت سے Python یا Ruby بیک اینڈ snake_case واپس دیتے ہیں۔ ہر API کے لیے ایک طریقہ چنیں اور ایک ہی ردعمل (response) میں کبھی نہ ملائیں۔
کون سا پڑھنا آسان ہے؟
تینوں کی عادت ہو جائے تو سب پڑھنے میں آسان ہیں۔ چند عملی فرق:
- snake_case اور kebab-case الفاظ کے درمیان واضح خالی جگہ رکھتے ہیں، جو لمبے ناموں اور مخففات میں مدد دیتا ہے (
html_parserبمقابلہhtmlParserبمقابلہHTMLParser)۔ - camelCase چھوٹا ہوتا ہے اور اضافی حروف کی ضرورت نہیں۔
- kebab-case زیادہ تر زبانوں میں variable names کے لیے استعمال نہیں ہو سکتا، کیونکہ
user-nameکوuser minus nameپڑھا جائے گا۔ - ڈبل کلک زیادہ تر ایڈیٹرز میں پورا snake_case یا camelCase نام منتخب کر دیتا ہے، لیکن kebab-case میں اکثر ہائفن پر رک جاتا ہے۔
اصل اصول مستقل مزاجی ہے۔ ایک فائل جو userName، user_name اور UserName ملا کر استعمال کرتی ہے، کسی بھی ایک اسٹائل کے مقابلے میں پڑھنا مشکل ہے۔
کیسز کے درمیان تبدیلی
جب ڈیٹا کی تہوں کے درمیان منتقل ہو تو تبدیلی کی ضرورت پڑتی ہے: Python API کے created_at کا JavaScript میں createdAt بننا، صفحے کے عنوان کا URL بننا، یا سیٹنگ کے نام کا environment variable بننا۔
kebab-case یا snake_case کے لیے: slug جنریٹر استعمال کریں۔ الفاظ چسپاں کریں، ہر نام ایک لائن میں، اور kebab-case کے لیے Hyphens (-) یا snake_case کے لیے Underscores (_) چنیں۔ یہ سب کچھ چھوٹے حروف میں بدل دیتا ہے، لہجوں والے حروف کو سادہ حروف میں لے آتا ہے اور علامتیں ہٹا دیتا ہے۔ یہ کسی بھی علامت کو لفظ کی حد مانتا ہے، اس لیے user_first_name کو user-first-name اور پھر واپس بنا دیتا ہے۔ البتہ یہ camelCase کو الگ نہیں کرتا: userFirstName کا نتیجہ userfirstname ہوتا ہے۔ اس لیے پہلے الفاظ کے درمیان خالی جگہ رکھیں۔
SCREAMING_SNAKE_CASE کے لیے۔ slug جنریٹر میں snake_case والا ورژن بنائیں، پھر اسے مفت کیس کنورٹر میں چسپاں کریں اور UPPERCASE پر کلک کریں۔ اس کے برعکس، lowercase MAX_RETRIES کو max_retries بنا دیتا ہے۔
camelCase یا PascalCase کے لیے۔ ایک کلک والا بٹن موجود نہیں۔ سب سے تیز طریقہ: الفاظ خالی جگہ کے ساتھ لکھیں، کیس کنورٹر میں Capitalized Case پر کلک کریں (user first name بن جاتا ہے User First Name)، پھر PascalCase کے لیے خالی جگہیں ہٹا دیں، یا camelCase کے لیے پہلا حرف چھوٹا کر دیں۔
کوڈ کے اندر بہت سے نام ایک ساتھ۔ بڑے rename کے لیے اپنے ایڈیٹر کا find-and-replace regular expression کے ساتھ استعمال کریں۔ پہلے pattern کو مفت regex tester میں آزمائیں: مثال کے طور پر _([a-z]) ہر انڈر اسکور کو اس کے بعد والے حرف کے ساتھ ڈھونڈتا ہے، یعنی وہ جگہ جہاں snake_case کو camelCase کے لیے بڑا حرف چاہیے۔ بہت سے ایڈیٹر پکڑے گئے حرف کو replacement میں بڑا کر سکتے ہیں؛ نحو کے لیے اپنے ایڈیٹر کی دستاویزات دیکھیں۔
تبدیلی کرتے وقت کن باتوں کا خیال رکھیں
- مخففات۔ فیصلہ کریں کہ
userIdہوگا یاuserID،HtmlParserہوگا یاHTMLParser، اور اسی پر قائم رہیں۔ - اعداد۔
address_line_2آسانی سے بدل جاتا ہے؛addressLine2بھی ٹھیک ہے؛ بس ہندسہ نہ گرائیں۔ - عوامی نام۔ JSON فیلڈ یا URL بدلنے سے اس کے استعمال کرنے والے ٹوٹ جاتے ہیں۔ URLs کے لیے redirect شامل کریں اور APIs میں پرانے فیلڈ کے نام کچھ عرصہ کام کرتے رکھیں۔
اپنا متن بدلیں
UPPERCASE، lowercase اور Capitalized Case کے لیے مفت کیس کنورٹر استعمال کریں، اور kebab-case اور snake_case کے لیے slug جنریٹر۔ دونوں آپ کے براؤزر میں چلتے ہیں، اور جو آپ چسپاں کریں وہ آپ کے آلے سے باہر نہیں جاتا۔
اکثر پوچھے جانے والے سوالات
- camelCase اور snake_case میں کیا فرق ہے؟
- camelCase الفاظ کو جوڑتا ہے اور پہلے کے بعد ہر لفظ کا پہلا حرف بڑا کرتا ہے (
firstName)۔ snake_case الفاظ کو چھوٹے حروف میں رکھتا ہے اور انڈر اسکور سے جوڑتا ہے (first_name)۔ - کیا JSON میں camelCase یا snake_case استعمال کریں؟
- دونوں ٹھیک ہیں۔ جس زبان کے زیادہ تر کلائنٹ استعمال کرتے ہیں اس سے میل کھائیں، اور ایک API کے اندر مستقل رہیں۔
- CSS میں kebab-case کیوں استعمال ہوتا ہے؟
- CSS کو ہائفن والے property ناموں جیسے
font-sizeکے ساتھ ڈیزائن کیا گیا تھا، اور class names عام طور پر اسی اسٹائل کی پیروی کرتے ہیں۔ ہائفن زیادہ تر پروگرامنگ زبانوں کے variable ناموں میں نہیں چل سکتا، اسی لیے JavaScript وہی properties camelCase میں لکھتا ہے۔ - کیا URLs کے لیے kebab-case اچھا ہے؟
- ہاں۔ Google الفاظ کو الگ کرنے کے لیے URLs میں ہائفن کی سفارش کرتا ہے، اور چھوٹے حروف حروف کے کیس سے متعلق مسائل سے بچاتے ہیں۔
- کیا کیس کنورٹر camelCase بنا سکتا ہے؟
- ایک کلک میں نہیں۔ Capitalized Case استعمال کریں، پھر خالی جگہیں ہٹائیں اور پہلا حرف چھوٹا کریں۔ kebab-case اور snake_case کے لیے URL slug جنریٹر استعمال کریں۔
متنی ٹولز
کیس کنورٹر آزمائیں
مفت، سائن اپ کی ضرورت نہیں، آپ کے براؤزر میں چلتا ہے۔ متن پیسٹ کریں اور ایک کلک سے بڑے حروف، چھوٹے حروف، جملہ کیس یا ٹائٹل کیس میں بدلیں، پھر کاپی کریں۔ کیپس لاک کا متن درست کریں یا سرخیاں سیکنڈوں میں ٹھیک کریں۔