أدوات النص واليومية · مجموعة أدوات النص
CamelCase وsnake_case وkebab-case وPascalCase: حيث يتم استخدام كل منهم
· خلفية
تحويل الحالة معرفات سير عمل المطور
جولة في اصطلاحات التسمية - من أين أتت، وما هي اللغات والأنظمة البيئية التي تتوقعها، ولماذا تسير أسماء الملفات وعناوين URL وأعمدة قاعدة البيانات ومفاتيح JSON في اتجاه مختلف.
خمسة أسماء لشيء واحد — userProfileId وuser_profile_id وuser-profile-id وUserProfileId وUSER_PROFILE_ID
يمكن أن تصبح عبارة "معرف ملف تعريف المستخدم" `userProfileId`، أو `UserProfileId`، أو `user_profile_id`، أو `user-profile-id` دون تغيير كلماتها. الفرق الواضح هو مكان ظهور الحدود وما إذا كانت الكلمة الأولى تبدأ بحرف كبير. ToolAcre ينشئ هذه النماذج الأربعة مباشرة من نفس المدخلات، مما يجعل من السهل مقارنة الاختلافات الهيكلية بينها.
تعتبر الأحرف الكبيرة `USER_PROFILE_ID` من اصطلاحات المشروع المفيدة الأخرى، ولكنها ليست خيارًا مدمجًا منفصلاً في مصدر محول الحالة. تعرض مجموعة الأدوات تحويلات حالة الثعبان والأحرف الكبيرة بشكل مستقل. إذا كانت قاعدة التعليمات البرمجية تستخدم ثوابت كبيرة، فقم بالتحويل إلى حالة الثعبان ثم أحرف كبيرة بدلاً من المطالبة بأن قائمة الحالة تنفذ كلا الخطوتين في وقت واحد.
أربعة تحويلات أظهرتها مجموعة أدوات النص، بالإضافة إلى نموذج ثابت كبير تم تجميعه بشكل منفصل
`camelCase` يبدأ بكلمة صغيرة ويستخدم الأحرف الكبيرة في بداية كل كلمة تالية. `PascalCase` يطبق نفس شكل الكلمة المرتبطة مع تكبير الكلمة الأولى أيضًا. في ToolAcre، يبدأ كلا التحويلين بنفس مقسم الكلمات، لذلك يتم تفسير علامات الترقيم وحدود الحالة الموجودة قبل تجميع المخرجات.
تقوم العديد من الفرق بتعيين النموذجين لأنواع مختلفة من الأسماء، لكن المستودع لا ينشئ قاعدة لغة عالمية أو تاريخًا لهذا الانقسام. تعامل مع دليل النمط المحلي، أو linter، أو إطار العمل API، أو الكود القريب باعتباره المرجع. يقوم المحول بتغيير شكل التهجئة؛ ولا يحدد ما إذا كان الاسم يمثل فئة أو وظيفة أو متغيرًا أو مكونًا.
يختلف CamelCase وPascalCase حسب الحرف الأول؛ تاريخ لغتهم خارج دليل المستودع
`snake_case` يخفض كل كلمة يتم اكتشافها ويربط النتائج بشرطات سفلية. بالنسبة إلى `User Profile ID`، تقوم ToolAcre بإرجاع `user_profile_id`. تظل الفواصل مرئية، وهو ما يمكن أن يساعد عندما تمر الأسماء عبر أنظمة لا تحافظ على الأحرف الكبيرة بشكل موثوق، ولكن هذه الفائدة العملية ليست دليلاً على أن كل قاعدة بيانات أو لغة أو خدمة تتوقع الشرطة السفلية.
استخدم الاصطلاح المحدد بالفعل في الوجهة. قد تحتوي خدمة Python على سياسة واحدة، ومخطط SQL آخر، وحمولة متسلسلة ثالثة. لا يستطيع ToolAcre فحص تلك العقود. وعدها الموثوق به أضيق: `toSnakeCase` يكتشف الكلمات، ويكتب كل كلمة بأحرف صغيرة، ويدرج `_` بينها دون تحديد ما إذا كانت الوجهة تسمح بهذه النتيجة أو تفضلها.
يتم دعم إخراج Snake_case مباشرة؛ تعتمد توقعات النظام البيئي وSQL على كل مشروع
يستخدم `kebab-case` نفس الكلمات الصغيرة ولكنه يجمعها بواصلات، مما يؤدي إلى إنتاج `user-profile-id`. يكون هذا الشكل واضحًا بصريًا في الأماكن التي يتم فيها قبول الواصلة كبيانات، مثل مقطع مسار مكون أو اسم ملف محدد بواسطة المشروع. إنه ليس معرف JavaScript لأن المحلل اللغوي يمكنه قراءة الواصلة كعامل بدلاً من جزء من اسم واحد.
يسرد المخطط التفصيلي CSS الفئات، HTML السمات، وإشارات سطر الأوامر، والارتباطات الثابتة URL، إلا أن مكتبة النصوص لا تحدد قواعد هؤلاء المستهلكين. قم بتأكيد بناء الجملة الهدف قبل التحويل. يحتوي ToolAcre أيضًا على وظيفة `slugify` منفصلة مع طي مميز، واختيار فاصل، وتشذيب، ومعالجة اختيارية للطول، لذلك لا ينبغي تقديم تحويل الكباب العادي كتحقق كامل من صحة URL-slug.
يتم دعم إخراج حالة الكباب مباشرة؛ تعتمد الاستخدامات الصالحة على بناء الجملة المحيط
الحدود هي المكان الذي تصبح فيه اصطلاحات التسمية عملية وليست تجميلية. يمكن لكائن المتصفح استخدام تهجئة واحدة بينما تستخدم الحمولة API أو عمود قاعدة البيانات طريقة أخرى. اجعل هذا التعيين واضحًا في محول واحد بدلاً من تشتيت التحويلات عبر طرق العرض والاستعلامات ومنطق الأعمال. تحافظ الحافة التي يمكن التنبؤ بها على اتساق كل نموذج داخلي وتسهل تحديد موقع عدم التطابق.
تجنب تحويل القيم التعسفية لمجرد أنها تبدو كمعرفات. يتعامل مقسم الكلمات مع علامات الترقيم كحدود ويتعرف على التحولات المحددة بين الأحرف الصغيرة والأحرف الكبيرة والأرقام. وهذا مفيد بالنسبة للأسماء، ولكنه يمكن أن يغير المفاتيح التي تم إصلاح تهجئتها خارجيًا. احتفظ بمفاتيح العقد تمامًا ما لم توثق واجهة الاستقبال تعيينًا تحت سيطرتك.
مثال عملي - تحويل معرف واحد من خلال جميع الاتفاقيات وتحديد المكان الذي ينتمي إليه في مشروع صغير
فكر في تطبيق صغير يحتوي على العبارة `user profile ID`. ToolAcre تنتج `userProfileId` لعلبة الجمل، `UserProfileId` لعلبة باسكال، `user_profile_id` لعلبة الثعبان، و`user-profile-id` لعلبة الكباب. يحمل كل مخرج نفس الكلمات الثلاث المكتشفة، بينما تقوم الكتابة بالأحرف الكبيرة والفاصل المدرج بتشفير الشكل المحدد.
قد يحتفظ مشروع عملي بـ `userProfileId` في كائن JavaScript، ويعينه بشكل صريح إلى `user_profile_id` عند حدود الثبات، ويحتفظ بـ `user-profile-id` لموقع تقبل قواعده النحوية الواصلات. الاختيارات الدقيقة تنتمي إلى هذا المشروع. الجزء المهم هو توثيق كل حدود واختبار التعيين بدلاً من التخمين المتكرر من المظهر.
ما لا يغطيه هذا - التدوين الهنغاري والمناقشات حول الاختصارات داخل المعرفات
هذه المقارنة لا تحل الاختصار الإملائي. يحول التنفيذ الكلمات المكتشفة إلى أجزاء صغيرة قبل إعادة بنائها، لذلك قد يظهر الإدخال الذي يحتوي على `HTTP` على شكل `Http` داخل مخرجات Pascal أو Camel. ما إذا كان الفريق يفضل `Http`، أو `HTTP`، أو `Id`، أو `ID` هي سياسة تسمية تحتاج إلى استثناء صريح خارج هذه التحولات العامة.
كما أنه لا يغطي تاريخ التدوين أو معايير اللغة أو كل قواعد معرفية صالحة. تتطلب هذه المطالبات مصادر تتجاوز ملفات الأداة المستخدمة في هذه المقالة. ToolAcre يوضح تحويلات النص الحتمية ويوثق أحد القيود الرئيسية: لا يمكن دائمًا تقسيم المركب المكتوب بدون أي حدود يمكن اكتشافها إلى الكلمات التي يقصدها الشخص.
سياسة الاختصارات وتاريخ التدوين خارج دليل المحول
لا توجد حالة واحدة صحيحة عالميًا. يكون الاسم مفيدًا عندما يتبع العقد ويظل معروفًا للأشخاص الذين يحافظون على تلك الطبقة. ابدأ بالاتفاقية الموجودة بالفعل، واحتفظ بنموذج واحد داخل الحدود، وقم بالترجمة فقط عندما تتطلب واجهة أخرى ذلك. يقلل الاتساق من الاختلافات العرضية دون التظاهر بأن كل نظام بيئي يشترك في قاعدة واحدة.
عندما يتطلب الحد شكلاً آخر، الصق المعرف في محول حالة مجموعة أدوات النص وافحص المخرجات الأربعة قبل تطبيق أحدها. يتم تشغيل العملية في المتصفح وينص البيان على عدم إرسال النص إلى الخادم أو حفظه تلقائيًا. استخدم النتيجة كتخطيط متعمد، ثم دع اختبارات المشروع وعمليات فحص النمط المحلي تؤكد الاختيار النهائي.