محول الحالات: تحويل CamelCase، Snake_case، وغيرها من التنسيقات

يعد تسمية المتغيرات أحد أصعب شيئين في البرمجة (بعد إبطال التخزين المؤقت مباشرة). وبمجرد أن تتوصل إلى اسم، يجب عليك كتابته بشكل صحيح. فكل لغة برمجة لها قواعد مختلفة.

إن محول الحالات (Case Converter) الخاص بنا هو سكين سويسرية لتنسيق النص. ما عليك سوى كتابة الاسم مرة واحدة (بأي تنسيق)، وسنقوم “بترجمته” على الفور إلى بناء جملة جميع لغات البرمجة الرئيسية.

نظرة سريعة: متى تستخدم أي حالة؟

إذا كنت مرتبكًا، فإليك دليل سريع لاتفاقيات التسمية القياسية لعام 2025:

🐪 camelCase (ترميز الجمل)

تبدأ بحرف صغير وكل كلمة لاحقة تبدأ بحرف كبير. بدون مسافات.

  • أين تستخدم: JavaScript, Java, Swift, Kotlin, Go.
  • أمثلة: myVariableName, getElementById, iPhone.

🐍 snake_case (ترميز الثعبان)

جميع الأحرف صغيرة ومفصولة بشرطة سفلية.

  • أين تستخدم: Python, Rust, PHP, قواعد بيانات SQL, أسماء الملفات.
  • أمثلة: user_id, first_name, def my_function().

🍢 kebab-case (ترميز الكباب)

أحرف صغيرة مفصولة بشرطة. تبدو كأنها لحم على سيخ.

  • أين تستخدم: فئات CSS، سمات HTML، عناوين URL (slugs)، Kubernetes.
  • أمثلة: font-size, my-cool-article, <div id="main-content">.

📐 PascalCase (UpperCamelCase)

مشابهة لـ camelCase، لكن الحرف الأول كبير.

  • أين تستخدم: أسماء الفئات (Classes) في معظم اللغات (JS, Python, PHP)، C# (الأساليب والمتغيرات)، مكونات React.
  • أمثلة: UserProfile, AppController, ReactComponent.

📢 CONSTANT_CASE (حالة الثعبان الصارخة)

أحرف كبيرة مفصولة بشرطة سفلية. تصرخ في وجهك بأن هذه القيمة لا يجب أن تتغير.

  • أين تستخدم: الثوابت، متغيرات البيئة (ENV)، التكوينات العامة.
  • أمثلة: MAX_RETRIES, API_KEY, DB_PASSWORD.

كيف يعمل محولنا؟

أداتنا “ذكية”. هذا يعني أنها لا تحاول فقط استبدال المسافات بشكل أعمى.

  1. اكتشاف الكلمات: يحدد الخوارزمية الكلمات، سواء كانت مفصولة بمسافات hello world, شرطات سفلية hello_world, واصلات hello-world أو أحرف كبيرة helloWorld.
  2. التحويل القياسي: تحويل الكل إلى شكل أساسي.
  3. التوليد: يقوم بإنشاء جميع المتغيرات دفعة واحدة.

هذا مفيد، على سبيل المثال، عند إعادة هيكلة الكود، عندما تحتاج إلى تحويل متغيرات PHP القديمة ($user_id) إلى JavaScript حديث (userId) أو إنشاء فئة CSS (user-id) من اسم عمود قاعدة البيانات.

أسئلة متكررة

ما هو "الترميز المجري (Hungarian notation)"؟ هو أسلوب كتابة أقدم (شائع في C/C++ في التسعينيات)، حيث يبدأ اسم المتغير باختصار نوع البيانات. على سبيل المثال strName (سلسلة) أو iCount (عدد صحيح). اليوم، لا يستخدم كثيرًا في اللغات الحديثة لأن بيئات التطوير المتكاملة (IDEs) تظهر لنا الأنواع تلقائيًا.
هل يمكنني استخدام kebab-case في JavaScript؟ لا يمكن استخدامه مباشرة كاسم متغير، لأن الشرطة - تعمل في JavaScript كمعامل طرح. var my-variable سيعني "my مطروحًا منه variable". يُستخدم kebab-case في JavaScript فقط كمفاتيح في الكائنات، إذا كانت داخل علامات اقتباس: { "content-type": "json" }.
ما هي الحالة التي يجب استخدامها لـ JSON؟ لا يحدد معيار JSON حالة معينة، ولكن Google ومعظم واجهات برمجة تطبيقات REST تستخدم camelCase (مثال: createdAt). على النقيض، بعض واجهات برمجة التطبيقات القديمة وخلفيات Python تعيد snake_case (مثال: created_at). الأهم هو أن تكون متسقًا.