أدواتي.

أنماط كتابة المتغيرات: الفرق بين camelCase وsnake_case وkebab-case

أي نمط كتابة تختاره لأسماء المتغيرات والملفات وعناوين الروابط؟ شرح عملي لأنماط camelCase وsnake_case وkebab-case وPascal Case مع قواعد التحويل.

آخر تحديث: (نُشر في: )3 دقائق قراءةالناشر: آية محمود

في رحلة تطوير البرمجيات وتصميم قواعد البيانات وبناء واجهات المستخدم، يتكرر سؤال جوهري مع كل متغير أو جدول أو مسار: هل أكتب هذا الاسم بصيغة `userProfile` أم `user_profile` أم `user-profile` أم `UserProfile`؟ الإجابة لا ترتبط بالذوق الشخصي للمطور، بل بالمعايير الهندسية والاتفاقيات البرمجية (Naming Conventions) المعتمدة في كل لغة وتقنية لضمان قابلية قراءة الكود وصيانته داخل فرق العمل.

تشريح الأنماط البرمجية الأربعة واستخداماتها القياسية

  • camelCase (صيغة السنام الحصانية): تبدأ الكلمة الأولى بحرف صغير، ثم تبدأ كل كلمة تالية بحرف كبير ملتصق دون أي فواصل (مثل `userAccountStatus`). هذا هو النمط القياسي للمتغيرات، وحقول الكائنات، وأسماء الدوال والـ Methods في لغات JavaScript وTypeScript وJava وDart وKotlin.
  • PascalCase (أو UpperCamelCase): تبدأ كافة الكلمات بحرف كبير بما فيها الكلمة الأولى (مثل `UserProfileCard`). هذا النمط مخصص عالميًا لأسماء الأصناف (Classes)، والواجهات البرمجية (Interfaces)، ومكونات React وVue وAngular، وأنواع البيانات (Types).
  • snake_case (الصيغة الثعبانية): تكتب كافة الكلمات بأحرف صغيرة وتُفصل بشرطة سفلية `_` (مثل `order_shipping_address`). هذا هو النمط المعياري المفروض في لغة Python (وفق وثيقة PEP 8)، ولغة Rust، وأسماء الجداول والأعمدة في قواعد بيانات SQL، ومفاتيح كائنات JSON في واجهات الـ REST API التقليدية.
  • kebab-case (صيغة الشواء / الشرطة): تكتب الكلمات بأحرف صغيرة وتُفصل بشرطة أفقية عادية `-` (مثل `blog-post-title`). هذا النمط إلزامي في مسارات الويب وعناوين URL (Slugs)، وخصائص ومعرفات HTML، وأصناف CSS وTailwind CSS، وأسماء حزم npm وملفات المشاريع.

لماذا تفرض محركات البحث وعناوين الويب نمط kebab-case؟

في معايير تحسين محركات البحث (SEO)، تُعامل جوجل ومحركات البحث الشرطة الأفقية `-` كفاصل واضح بين الكلمات المستقلة، بينما قد تُعامل الشرطة السفلية `_` كأداة لدمج كلمتين في كلمة واحدة مبهمة. بالإضافة إلى ذلك، فإن خوادم الويب وأنظمة الملفات المختلفة (خاصة Linux في بيئات الاستضافة) حساسة لحالة الأحرف (Case-Sensitive)، مما يعني أن الرابط `/UserProfile` يختلف تمامًا عن `/userprofile`، مما يسبب أخطاء 404 قاتلة. لذا يُعد kebab-case بالأحرف الصغيرة هو الخيار الأكثر أمانًا واستقرارًا للروابط العالمية.

التفريق بين Title Case و Sentence case في واجهات الاستخدام (UI/UX)

عند كتابة المحتوى والترجمات، يبرز نمطان رئيسيان للنصوص الإنجليزية:

  • Title Case (حالة العناوين): يُرفع أول حرف من كل كلمة رئيسية إلى حرف كبير (مثل: `Smart Currency Converter & Calculator`). يُستخدم تقليديًا في عناوين الكتب، المقالات الصحفية، وأزرار التنقل الرئيسية في أنظمة Apple.
  • Sentence case (حالة الجملة): يُرفع فقط الحرف الأول من بداية الجملة وما بعد علامات الترقيم (. ! ؟) وتبقى بقية الكلمات صغيرة (مثل: `Smart currency converter and calculator`). هذا هو النمط الحديث المعتمد في معظم أنظمة التصميم العالمية (Design Systems) مثل Google Material Design لأنها أسهل وأسرع في القراءة بالعين المجردة.

خصوصية اللغة العربية مع حالات الأحرف

أبجدية اللغة العربية بطبيعتها الفطرية متصلة ولا تعرف مفهوم الأحرف الكبيرة (Capital) أو الصغيرة (Small). لذلك، عند تمرير نص عربي لمحول الحالات، تتجاهل خوارزميات الأحرف الكبيرة والصغيرة الحروف العربية وتحافظ على رسمها، بينما تتفاعل الخيارات البرمجية (مثل snake_case وkebab-case) مع المسافات البيضاء فتحولها إلى شرطات أفقية أو سفلية، وهو أمر مفيد جدًا عند توليد معرّفات برمجية أو وسوم (Tags) عربية متوافقة مع الروابط.

حالات تطبيقية شائعة للتحويل الفوري

  1. تحويل عناوين المقالات التحريرية إلى وسوم روابط (URL Slugs) بضغطة زر واحدة.
  2. توحيد أعمدة ملفات Excel وCSV العشوائية إلى صيغة `snake_case` متوافقة مع قواعد بيانات PostgreSQL.
  3. تحويل مفاتيح واجهات برمجية مهيأة بـ snake_case إلى `camelCase` لتناسب بيئات React وTypeScript دون كتابة شفرات تحويل يدوية مضنية.

جرّب بنفسك: محول حالة الأحرف والنصوص (Case Converter)

طبّق ما قرأته مباشرة عبر الأداة المجانية — الحساب يتم محليًا في متصفحك.

افتح الأداة

أسئلة شائعة

هل يمكنني التحويل بأمان بين camelCase و snake_case؟

نعم، تكتشف الأداة الانتقال بين الأحرف الصغيرة والكبيرة (مثل `userName`) وتستبدله بفاصل شرطة سفلية (`user_name`) تلقائيًا مع خفض الحروف. في حال وجود اختصارات متتالية مثل `getHTTPResponse`، يُفضل إدخالها ككلمات مفصولة لتفادي أي التباس نحوي.

لماذا تمنع معظم لغات البرمجة استخدام kebab-case في أسماء المتغيرات؟

لأن لغات البرمجة (مثل JS وPython وC) تعتبر الشرطة الأفقية `-` إشارة الطرح الرياضية (Subtraction Operator)، فإذا سميت متغيرًا `user-id` سيفسره المترجم البرمجي على أنه عملية طرح بين المتغير `user` والمتغير `id` ويتوقف الكود فورًا عن العمل.

ما هو النمط المعتمد عند كتابة ثوابت البيئة (Constants)؟

النمط القياسي للثوابت البرمجية وإعدادات البيئة (.env) هو SCREAMING_SNAKE_CASE، حيث تُكتب كافة الأحرف كبيرة وتُفصل بشرطة سفلية (مثل: `API_SECRET_KEY` أو `MAX_RETRY_COUNT`).

هل يؤثر تحويل النص إلى kebab-case على معايير السيو (SEO)؟

نعم، يُعد kebab-case بالأحرف الصغيرة المعيار الرسمي الموصى به من قبل إرشادات جوجل لمحركات البحث في بنية الروابط، حيث يساعد على قراءة وفهرسة كل كلمة مفتاحية بشكل مستقل وصحيح.

مقالات ذات صلة