كل المقالات

camelCase وsnake_case وkebab-case: متى نستخدم كل صيغة

لا توجد في اللغة العربية فكرة الأحرف الكبيرة والصغيرة أصلًا — فالحرف العربي له شكل واحد يتغيّر رسمه فقط حسب موضعه في الكلمة (منفصل، أول، وسط، آخر)، وليس حسب "حالة" كبيرة أو صغيرة. هذا التمييز بين الحالتين خاصية تنفرد بها أساسًا الأبجديات اللاتينية والسيريلية واليونانية، لذلك أي كود بأسماء متغيرات عربية فعليًا يستخدم حروفًا لاتينية (transliteration) لتطبيق أنماط مثل camelCase عليها.

الأنماط الرئيسية

  • camelCase — الكلمة الأولى بأحرف صغيرة، وكل كلمة تالية تبدأ بحرف كبير، دون فواصل: userName. المعيار للمتغيرات والدوال في JavaScript وJava وC#.
  • PascalCase — نفس الشيء، لكن الكلمة الأولى أيضًا تبدأ بحرف كبير: UserName. يُستخدم للأصناف والمكوّنات في كل مكان تقريبًا.
  • snake_case — الكلمات مفصولة بشرطة سفلية، وكلها بأحرف صغيرة: user_name. المعيار في بايثون وأسماء أعمدة قواعد البيانات.
  • kebab-case — الكلمات مفصولة بشرطة: user-name. المعيار للروابط وأصناف CSS وسمات HTML، لأن الشرطة السفلية أقل شيوعًا في الروابط.

لماذا هذا التحويل لا معنى له في نص عربي صرف

بما أن الحروف العربية لا تملك صيغتين (كبيرة وصغيرة)، فإن أداة تحويل الحالة لا تُطبَّق فعليًا إلا على المعرّفات المكتوبة بأحرف لاتينية داخل الكود — حتى لو كانت الكلمة نفسها مستعارة من العربية أو منقولة صوتيًا عنها. النص العربي الفعلي (مثل تسميات واجهة المستخدم) لا "حالة أحرف" له لتُحوَّل من الأساس.

لماذا نحتاج هذا التحويل

  • ربط حقول من واجهة برمجة تطبيقات JSON (عادة camelCase) بأسماء أعمدة قاعدة بيانات (عادة snake_case).
  • إعادة تسمية المتغيرات عند نقل الكود من لغة إلى أخرى بأعراف مختلفة.
  • توليد روابط أو أصناف CSS متوافقة من نص عنوان منقول صوتيًا عن العربية.

الغموض مع الاختصارات

معرّف مثل userID أو XMLParser يضع أداة التحويل أمام خيار: هل تُعامل الاختصار ككلمة واحدة أم تقسّمه إلى أحرف منفصلة؟ الأدوات المختلفة تحل هذا بطرق مختلفة — هذه الأداة تتعرف على سلسلة من الأحرف الكبيرة المتتالية ككلمة مستقلة (XMLParserXML + Parser)، لكن يُستحسن التحقق من النتيجة يدويًا إذا كان الاسم سيُستخدم مباشرة في كود الإنتاج.

جرّب الأداة