سؤال

لماذا العديد من اللغات حساسة لحالة الأحرف؟

هل هي مجرد مسألة ميراث؟C++ حساس لحالة الأحرف لأن C كذلك، Java حساس لحالة الأحرف لأن C++ كذلك، وما إلى ذلك؟أم أن هناك سببًا أكثر واقعية وراء ذلك؟

هل كانت مفيدة؟

المحلول

ويونكس.

وكان يونكس حالة الأحرف، وكان العديد من لغات البرمجة المتقدمة للاستخدام على يونيكس حالة الأحرف.

وأجهزة الكمبيوتر ليست تسامحا - وهو حرف كبير ليس الشيء نفسه كشخصية صغيرة، وانهم مختلف تماما. ومرة أخرى عندما تجهيز دورات، ذاكرة الوصول العشوائي وهكذا دواليك ومكلفة لم يكن ينظر إليه على أنه يستحق كل هذا الجهد لإجبار المجمعين وأجهزة الكمبيوتر ليكون "متسامح"، كان الناس مجرد محاولة للحصول على الأشياء للعمل.

لاحظ كيف حال عدم الاكتراث لم تصبح حقا شيء مفيد حتى أشياء مثل جاء البصرية الأساسية جنبا إلى جنب - مرة واحدة بدأت شركات للحصول على المستثمر في مفهوم أن الحصول على الجماهير لبرنامج كان شيء جيد لبيت القصيد (أي مايكروسوفت يجعل المزيد من المال إذا كان هناك المزيد من البرامج على ويندوز) لم اللغات تبدأ لتكون أكثر ودا وأكثر تسامحا.

نصائح أخرى

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

SomeObject.SomeMethod();
...
SOMEOBJECT.SOMEMETHOD();
...
someObject.someMethod();
...
sOmEoBjEcT.sOmEmEtHoD();

وأنا لا أعتقد أن أي شخص سيكون سعيدا لرؤية هذا ...

واحد الشيء المثير للاهتمام للنظر هو أن اللغة الإنجليزية هي تتحسس أيضا. (وأظن أن هذا صحيح بالنسبة لمعظم اللغات الطبيعية، ولكن قد جيدا لا يكون صحيحا بالنسبة للجميع.)

وهناك فرق كبير (حيث أعيش، على أي حال، بالقرب من بلدة القراءة) بين كل من:

<اقتباس فقرة>   

وأنا أحب القراءة.

و

<اقتباس فقرة>   

وأنا أحب القراءة.

وعلى نحو مماثل، في حين أن الكثير من الناس قيام الاستفادة بشكل غير صحيح، ويمكنك فهم عادة ما هو المقصود، وهذا لا يعني تعتبر هذه الكتابة <م> صحيحة . أنا المتمسك عندما يتعلق الأمر بهذا النوع من الشيء، الذي لا يعني يمكنني الحصول على الحق في كل شيء نفسي، بطبيعة الحال. أنا لا أعرف ما إذا كان هذا جزء من ميراث حساسية القضية لغة البرمجة، ولكن أظن أنه قد يكون.

واحد ميزة واضحة لحساسية القضية لغات البرمجة هي أن يصبح النص <م> ثقافيا غير حساس أيضا. انها سيئة وجود ما يكفي لتوضيح بعض الأحيان إلى مترجم الذي يستخدم ترميز النص للملف المصدر - الحاجة إلى تحديد أي <م> الثقافة انها في أن يكون أسوأ من ذلك: (

وانها في الواقع العملي للغاية، سواء بالنسبة للمطور ومواصفات تركيب اللغة: انخفاض / العلوي حالة التمييز يضيف قدرا كبيرا من التعبير لتسمية المعرف

.

من وجهة نظر بناء الجملة اللغوية، يمكنك فرض بعض المعرفات أن تبدأ مع بحروف كبيرة أو صغيرة (على سبيل المثال جافا اسم الفئة). وهذا يجعل تحليل أسهل، وبالتالي يساعد على الحفاظ على تركيب نظيفة.

من وجهة نظر المطور للعرض، وهذا يسمح لعدد كبير من الاتفاقيات الترميز مريحة، مما يجعل الشفرة أكثر وضوحا وأسهل للفهم.

وتخميني سيكون أن حساسية القضية يوسع مساحة الاسم. خدعة لطيفة مثل

MyClass myClass;

وسيكون من المستحيل مع المترجم تحسس حالة الأحرف.

وحالة قابلة للطي بسيط فقط باللغة الإنجليزية (وكافة الأحرف <128). و سهير أو "ليالي حاد" (ß) ليس لديها حالة العلوي البديل في ISO 8859-1 محارف. وتلقى واحد فقط في Unicode بعد نحو عقد من مناقشة (والآن، يجب أن يتم تحديث جميع الخطوط ...). كانجي وهيراغانا (الحروف الهجائية اليابانية) لا أعرف حتى الحالة الأدنى.

لتجنب هذه الفوضى، حتى في هذا العصر من يونيكود، فإنه ليس من الحكمة أن تسمح حالة قابلة للطي <م> و معرفات يونيكود.

عودة عند تحليل وتجميع كان حقيقيا تكلفة وستتخذ كل ليلة كان من المفيد أن المترجم اذا لم يكن لديك ما يدعو للقلق حول القضية.

وعندما جاءت معرفات في لوجود التي كانت فريدة من نوعها فقط عبر قضيتهم أصبح من الصعب جدا أن أعود. العديد من المطورين يرضوا وهناك لا يبدو أن هناك رغبة كبيرة للتراجع عن ذلك.

ExpertSexChange

أعتقد أن هذا منافس لـ Stack Overflow حيث يتعين عليك الدفع مقابل قراءة الإجابات.همم...مع عدم حساسية حالة الأحرف، يكون معنى اسم الموقع غامضًا.

وهذا سبب وجيه لكون اللغات حساسة لحالة الأحرف.غموض أقل!يعتبر الغموض بالنسبة للمبرمجين أمرًا مقززًا.

وحساسية القضية تضيف إلى قراءة لغة عن طريق استخدام اصطلاحات التسمية. لا يمكنك كتابة

Person person = new Person("Bill");

وإذا لغتك هي حالة الأحرف، لأن المترجم لن يكون قادرا على التمييز بين اسم فئة واسم متغير.

وأيضا، بعد شخص، شخص، شخص، شخص، والشخص، تكون جميع الرموز تعادل شأنه أن يعطي لي صداعا. :)

ما هو شكل رأس المال أنا? أنا (ش+0049) أو İ (ش+0130)؟

الكتابة بالأحرف الكبيرة تعتمد على اللغة.

والعديد من (غير البرمجة) لغات (على سبيل المثال الأوروبي باستخدام الأبجدية الرومانية) هي لحالة الأحرف، لذلك فمن الطبيعي الناطقين بتلك اللغات لاستخدام العلوية التمييز / أقل حدة.

والفكرة ذاتها التي لغات البرمجة <م> لن أن يكون حالة الأحرف هو قطعة أثرية تاريخية الناجمة عن القيود المفروضة على أجهزة الجيل المبكر (بما في ذلك آلات المبرقة قبل الكمبيوتر الذي يستخدم حرف 5-بت كود).

والناس الذين يقولون للغات حدة البصر يجب أن يكون قادر على التمييز

IAmNowHere

من

IAmNowhere

(<م> انها مزحة .! -)

ولأنهم ك <م> البكم على شكل مربع من الضفادع ، على وجه التحديد الأسباب التي أعطيت لوجهة نظر الآخر في هذا الموضوع (أنا لست حتى ستعمل نسأل ما هذا حول خشب للأشجار وجميع ذلك).

عند FOOBAR = = FooBar foobar، لك أن تختار الاتفاقية الخاصة بك، ويمكن المبرمجون الأخرى أن تفعل الشيء نفسه <م> ما إذا كانت مشاركة تفضله أو لا . أي التباس.

وكما أنها لا يمكن أن تفلت من السكتة الدماغية من عبقرية هذا هو وجود مستمر، وظيفة ومتغير مع كل نفس الاسم في نفس الملف، ولكن مع قبعات مختلفة. مرة أخرى، أي التباس.

واستدعاء الموقع المتغير الخاص بك، يسمونه لهم موقع، والنظام الذي يحصل الخلط؟ ليس من السهل الصيد سواء، وعندما كنت مسح.

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

... وبعد، كل هذه الإجابات يقولون حالة حساسية يقلل من الارتباك. تحسر

وهناك أيضا اللثغة المشتركة، التي هي لغة لحالة الأحرف التي كثير من الناس يعتقدون خطأ غير حساس لحالة الأحرف. عند كتابة (car x) إلى المستمع، فإنه يتحول إلى (CAR X) للمعالجة. ومن الممكن تحديد حرف مع أسماء أقل حدة، لكنها يجب أن تكون نقلت مع شيء من هذا القبيل |lower-case-symbol|. ولذلك، الكتابة في (car x) أو (CAR X) أو (Car X) كل يعمل نفس الشيء.

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

وحدة العليا من بريد إلكتروني ليس مفهوما عالميا . يستخدم جافا يونيكود، لذلك إذا أردت حالة حساسة جافا، ومعنى البرنامج يمكن أن يتغير اعتمادا على ما لغة جمعت فيها.

ومعظم لغات لا تسمح لك وضع النقاط أو الفواصل (أو الفواصل العليا أو المسافات) في منتصف الحرفية صحيحة، ربما لهذا أيضا لغة التي تعتمد على.

ومن دليل الإطار الصافي المطور اتفاقيات رسملة ، القضية-الحساسية:

<اقتباس فقرة>   

وجود المبادئ التوجيهية القيمة   فقط لجعل معرفات أسهل لل   قراءة والاعتراف بها. غلاف لا يمكن أن يكون   تستخدم كوسيلة لتجنب اسم   اصطدام بين عناصر المكتبة.

     

ولا تفترض أن جميع البرامج   اللغات تتحسس. هم انهم   ليس. أسماء لا يمكن أن تختلف كل حالة على حدة   وحده.

وكيف يصيح إذا لم يكن لديك CAPS ؟! AHHH!

وعليك أن تكون معبرة. ولكن في كل الصدق، وجميع الناس في العالم، وأولئك الذين يعملون مع منطق البرمجة ستكون أول من يصر على أن الاختلافات في الخلافات الواقع.

وحساسية القضية لا تساعد حقا حالة الاتساق.

Foo.Bar  
foo.Bar  
fOO.bAR  

في لغة حساسة الحالة التي يمكن أن تكون ثابتة تلقائيا من قبل المحرر بسهولة. بلغة حساسة حالة تحديد ذلك أنه من الصعب لأنه قد يكون قانونيا. المحرر أولا أن ckeck في حالة وجود foo.Bar وfOO.bAR وأيضا لديها لتخمين الذي كتبته مع حالة الخطأ بدلا من نسيان بتعريف المتغير (كما فو يختلف عن فو).

ولقد قال الكثير من الناس هنا أنه سيكون سيئا لعدة أشكال من رأس المال للإشارة إلى نفس الشيء، ومنها مثلا:

person
perSoN
PERSON

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

يعتمد كل مثال رأيته يدعم حساسية حالة الأحرف على الرغبة في كتابة تعليمات برمجية سيئة وغير وصفية.على سبيل المثال"التاريخ" مقابلوسيطة "myDate" - كلاهما غير وصفي على حد سواء والممارسة السيئة.الممارسة الجيدة هي تسميتها كما هي في الواقع:تاريخ الميلاد، تاريخ التوظيف، تاريخ الفاتورة، أيًا كان.ومن في عقله الصحيح يريد أن يكتب كودًا مثل:

Public Class Person
    Public Shared ReadOnly PERSON As Person
End Class
Public Class Employee
    Public person As Person = person.PERSON
End Class

ومن المثير للدهشة أن هذه حالة صحيحة تمامًا فيكود VB.Net الحساسإن فكرة أن حساسية حالة الأحرف تسمح لك بعصيان ممارسات البرمجة الجيدة بشكل صارخ هي حجة ضدها، وليس لها.

ولأن الكثير من الناس يجدون employeeSocailSecurityNumber مجرد قراءة مثل employee_social_security_number وأنه أقصر.

وأعتقد أن وجود لغة لحالة الأحرف يشجع الناس على كتابة التعليمات البرمجية الفقراء.

Const SHOESIZE = 9

Class ShoeSize

ShoeSize.shoesize = SHOESIZE

call shoeSize(ShoeSize);

function shoeSize(SHOEsize)
{
   int ShoeSIZE = 10
   return ShoeSize
}

ودوه. لا يمكن أن نفكر في اسم متغير أفضل من "ShoeSize" لأغراض مختلفة؟ هناك مليار الكلمات المختلفة التي يمكن استخدامها، ولكن اخترت الاحتفاظ فقط باستخدام ShoeSize بدلا من ذلك؟

ويمكنك أيضا أن (بحماقة) مجرد استخدام-خطابات واحدة ( "أ" و "ب" و "ج") لجميع الطبقات، والمتغيرات، وظائف، والأساليب.

ولكن لماذا هل ترغب في ذلك؟

استخدام الأسماء التي من المنطقي ، أو لا:

function a(a)
{
    int a = a.a;
    return a
}

وهناك سبب آخر لغات هي حالة الأحرف. قد يتم تخزين معرفات في جدول تجزئة والجداول التجزئة تعتمد على تجزئة المهام التي من شأنها أن تعطي تجزئات مختلفة لاختلاف الحال. وأنه قد لا تكون مريحة لتحويل جميع معرفات لجميع العلوي أو السفلي جميعا قبل تشغيلها من خلال وظيفة التجزئة. جئت عبر هذه المشكلة عندما كنت أكتب مترجم بلدي. وكان أبسط من ذلك بكثير (أشد كسلا) ليعلن لغتي كما حالة حساسة.

ولقد قرأت هذا الموضوع بأكمله. يجب أعتقد أن تلك التي يقدم لها قيمة وجدت في حساسية القضية قد برمجت أبدا في لغة عالية المستوى الحقيقية (التي بحكم تعريفها هي قضية حساسة). K & R أعترف أن C هو المستوى المتوسط. بعد البرمجة في باسكال، دلفي، لازاروس، ADA، وما إلى ذلك، يتعلم المرء هذا الرمز جد مقروء بسيط لكتابة وللوصول الى تشغيل بسرعة دون التوجس على البنى الحساسة حالة مقتضب. بعد كل شيء، القراءة هي الكلمة الأولى والأخيرة في هذا الموضوع. وكتابة التعليمات البرمجية للكمبيوتر الإنسان، لا. لا مشاكل لتصحيح مع حالة كود حساسة. عندما يتحرك احد لأسفل إلى لغة من المستوى المتوسط، يجد المرء أن هناك NO المزايا للحالة الحساسية. غير أن هناك عددا كبيرا من الساعات التي يقضيها التصحيح حساسية القضية تسبب المشاكل. وخصوصا عندما الترقيع معا وحدات من المبرمجون مختلفة. ويبدو أيضا أن عددا كبيرا من أفراد العينة لا يفهمون ما هو المقصود من حالة عدم الاكتراث. فقط الأحرف تتأثر من الألف إلى الياء. هذه هي مجموعة فرعية متسلسلة من الحروف ASCII. ثلاثة أو أربعة بايت من رمز الجهاز تجعل المترجم غير مبال الحال في هذا النطاق من الأحرف. وهو لا يغير تحت بار، الأرقام، أو أي شيء آخر. نقاط عن لغات أخرى ومجموعات الأحرف ببساطة لا تنطبق على هذه المناقشة. إن المترجم أو قاطع تكون مشفرة لتحويل مؤقتا أو يتم تحويل حرف للتحليل في وقت الترجمة على أساس ASCII الوجود أم لا.

ولقد صدمت في لغات جديدة مثل بايثون التي يخرج تكرار الخطأ الذي K & R بها. نعم أنها أنقذت عشرات بايت نصف في بيئة حيث كان RAM الإجمالي لمترجم، والمصدر، ورمز الكائن 1000 بايت. التي كانت آنذاك. الآن الذاكرة ليست مشكلة. الآن، لا لسبب معقول، حتى الكلمات الاحتياطي في بيثون هي قضية حساسة! أنا لا أعتقد أنني سوف تحتاج إلى استخدام "من أجل" من "طباعة" كاسم متغير أو وظيفة. ولكن هذا الاحتمال قد تم الحفاظ عليه من قبل باهظة الثمن من الوقت الذي يقضيه مكتفيا مع قاطع على الحالة بالضبط من كل معرف. صفقة سيئة على ما أعتقد.

وأقرب ما قرأت حتى الآن في دعم حساسية الحالة هو تعليقات على تجزئة. ولكن هذه الأحداث الترميز النادرة التي يمكن التعامل معها مع الاهتمام الدقيق بالتفاصيل لا يبدو أن ليكون من المفيد التدقيق طائل المبرمج يجب أن تستخدم لكتابة كود قضية حساسة. وجهتا نظر لهذه المشكلة. تشجع واحد الترميز سيئة، والفخاخ تعيين في رمز، ويتطلب المزيد من الاهتمام لتحويلها بعيدا عن مفاهيم أكبر. الآخر ليس لديه الجانب السلبي، وقد عمل لا تشوبه شائبة في اللغات عالية المستوى، ويسمح كانت المرونة فإنه لا ضرر ولا ضرار. يبدو لي وكأنه حالة أخرى من VHS يفوز على BETA. انها مجرد بلدي اثنين سنتا يستحق هنا.

والتعلم هو دائما أسهل من خلال المثال حتى هنا المثل:

وC # (القضية الحساسة ولكن يمكن استخدامها من VB.NET وهي قضية حساسة):

CONSTANT_NAME
IInterfaceName // Uses I prefix in all case sensitive and insensitive languages
ClassName      // Readable in both case sensitive and insensitive languages
_classMember   // sometimes m_classMember or just classMember
DoSomething(someParam) // Method with action name, params can be _someParam
PropertyName   // Same style in case sensitive and insensitive languages
localVariable  // Never using prefix

وجافا وJS استخدام أسلوب مماثل لC # ولكن أعلن الطرق / وظائف / أحداث مثل المتغيرات تنفيذ DoSomething، onEvent.

وأوبجكت باسكال (دلفي ولعازر / الشركة العامة للفوسفات هي حالة الأحرف، مثل ADA وVB.NET)

CConstantName     // One can use Def or no prefix, not a standard
IInterfaceName
TClassName        // Non-atomic types/classes have T prefix e.g. TStructRecordName
PSomePointer      // Pointers have types, safer low level stuff
FClassFieldMember // F means Field member similar to m
DoSomething(Parameter) // Older code uses prefix A for parameters instead
PropertyName
LLocalVariable    // Older code uses prefix for parameters not local vars

وفقط باستخدام OneCase والبادئات لكل نوع من المنطقي في جميع اللغات. حتى اللغات التي بدأت دون البادئات لها بنيات أحدث مثل واجهات التي لا تعتمد على الحالة ولكن استخدام بادئة بدلا من ذلك.

وهكذا انها حقا ليس مهما إذا لغة حساسة لحالة الأحرف أم لا. تم إضافة مفاهيم جديدة للحالة اللغات الحساسة التي كانت مربكة جدا أن يتم التعبير عنها كل حالة على حدة وحده، ويتطلب استخدام بادئة.

ومنذ أن بدأت حالة اللغات الحساسة باستخدام البادئات، فمن المعقول فقط على التوقف عن استخدام قضية بنفس الاسم المعرف someIdentifier SomeIdentifier SOME_IDENTIFIER، ISomeIdentifier ومجرد استخدام البادئات حيث أنه من المنطقي.

والنظر في هذه المشكلة: لديك أحد أفراد فئة تسمى شيء، وهي طريقة / وظيفة المعلمة دعا شيء ومتغير محلي يسمى شيء، ما اتفاقية الحالة يمكن استخدامها للتمييز بسهولة بين هؤلاء؟ أليس من الأسهل لمجرد استخدام معظم ConsistentCaseStyle في كل مكان وإضافة بادئة؟

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

وكل حالة اللغات الحساسة وغير الحساسة تتطلب الانضباط الصارم، فإنه من المنطقي أن يكون نمط واحد فقط في كل مكان. سيكون من الأفضل إذا كان لدينا اللغة التي تستخدم StrictCase فقط، نمط واحد في كل مكان والبادئات.

وهناك الكثير من الفقراء كود C، حساسية القضية لا يجعل من قراءتها وأنت لا تستطيع أن تفعل أي شيء حيال ذلك. بلغة لا تراعي الحالة هل يمكن فرض اسلوب جيد في التعليمات البرمجية الخاصة بك دون إعادة كتابة المكتبة. بلغة StrictCase التي لا توجد حتى الآن، فإن كل رمز لديها نوعية لائقة:)

ويبدو الناس يتفقون في الغالب أن حساسية قضية مهمة وأنا أتفق.

ومع ذلك، يمكن أن تكون مزعجة عندما يكون لديك لكتابة شيء في الحالة الصحيحة لذلك أعتقد أن IDE يجب أن تسمح لك اكتب في حالة الخطأ، ولكن إذا كنت أصاب الاختصار الإكمال التلقائي يجب أن تفعل حالة مطابقة الأحرف. هذا يعطينا أفضل ما في العالمين.

<اقتباس فقرة>   

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

وهكذا، إذا كان لديك ثلاثة موظفين في عملك كل دعا روبرت، كنت أشير إليها بوصفها روبرت، روبرت وسوف ROBERT لك؟ والاعتماد على الناس أن تعرف بالضبط أي واحد منكم يعني؟

ومنحهم عناوين البريد الإلكتروني مثل Robert@widgets.com، robert@widgets.com، وROBERT@widgets.com إذا كان نظام البريد الإلكتروني الخاص بك القضية حساسة؟

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

وأفضل أن أسميها بوب، روبي، وروبرت. والأفضل من ذلك أن تسميها روبرت A، B روبرت وروبرت C إذا كانت ألقابهم مثل آرثر، البنوك، وكلارك

وحقا - لماذا على وجه الأرض لديها اصطلاح التسمية التي تدعو الأخطاء أو الارتباك، والتي تعتمد على الناس التزام الحذر جدا؟ هل أنت قصيرة جدا من الكلمات في volcabulary بك؟

وبالنسبة للشخص الذي يذكر خدعة يفترض يدوية "MyClass myClass" - لماذا، لماذا لماذا؟ كنت عمدا تجعل من الصعب أن نرى في لمحة ما إذا كانت الطريقة المستخدمة هي طريقة فئة أو أسلوب مثيل.

وبالإضافة إلى ذلك كنت فقدت فرصة لنقول للشخص القادم قراءة الشفرة المزيد عن الحالة بالذات الطبقة.

وعلى سبيل المثال.

والعملاء PreviousCustomer

والعملاء NewCustomer

والعملاء CorporateCustomer

واسم المثيل الخاص بك يحتاج إلى معرفة مثالي زميلك أكثر من مجرد الطبقة أنها تقوم على!

إذا كلمة الفصل ليس مهما بعد ذلك لماذا لا نضع مسافات بين الكلمات؟ لذلك أعتقد أن يؤكد بين الكلمات في اسم تفعل زيادة سهولة القراءة. أقل أيضا الحال مع رسملة الأحرف المناسبة هي أسهل للقراءة. وأخيرا، فمن المؤكد أسهل بكثير إذا كان يمكن نقل كل الكلمات بكلمة من فمه - "الشركة تؤكد العملاء" بدلا من "حالة السفلى كابيتال C س ص ص س ص تي ه تسطير كابيتال C السفلى حالة ش ق ر س م ه ص"! - في السابق يمكن ان تحدث "في واحدة من رئيس 'هذه الأخيرة لا يمكن - وأتساءل كيف يمكن للناس الذين هم سعداء مع حساسية قضية التعامل مع هذه الأسماء حساسة لحالة الأحرف في أدمغتهم - أكافح حقا. لذلك أشعر أن حساسية القضية ليست في كل متعاون - خطوة retrogade من COBOL في رأيي

لأن الناس يفكرون بجدية في الأشياء.

تعمل عدم حساسية حالة الأحرف بشكل أفضل عندما يتم أيضًا الحفاظ على حالة الأحرف ودمجها مع الفصل بين النوع ومساحات الأسماء المتغيرة.هذا يعني ذاك:

  • إذا قمت بإعلان فئة كـ "TextureImage" ثم حاول استخدامه كـ "textureImage"، يمكن لـ IDE تصحيحك تلقائيًا.يمنحك هذا ميزة أنك لن تضطر أبدًا إلى الضغط على مفتاح Shift إلا إذا كنت تعلن عن معرف أو تستخدم شرطة سفلية.

  • تمامًا كما هو الحال في Java والعديد من اللغات الأخرى؛إنه صالح تمامًا للكتابة "MyClass myClass".يجب ألا يواجه IDE والمترجم أي مشكلة في التمييز بين استخدام النوع واستخدام المتغير.

بالإضافة إلى ذلك، تضمن عدم حساسية حالة الأحرف أن 'o' و 'Oلن يشير أبدًا إلى كائنات مختلفة.تشمل الحجج الشائعة ما يلي:

  • "sOmEoNe wIlL tYpE cOdE lIkE tHiS"; => وأنه لن يُسمح أبدًا لأي شخص بالانضمام إلى فريق البرمجة، لذا فهذه حجة رجل القش.حتى لو تمكنوا من القيام بذلك، فإن عدم حساسية حالة الأحرف هو الحل أكثر من المشكلة، لأنه يعني أنه ليس عليك أن تتذكر أي مجموعة مجنونة من الأحرف الكبيرة/الصغيرة يستخدمونها.

  • "لا يمكنك تدويل عدم حساسية حالة الأحرف بسهولة!";=> أكثر من 95% من لغات البرمجة مكتوبة باللغة الإنجليزية لسبب وجيه جدًا.لا توجد ترميزات أحرف منافسة والغالبية العظمى من لوحات المفاتيح على وجه الأرض تعتمد على اللغة الإنجليزية (جزئيًا أو كليًا).ربما يكون دعم معرفات Unicode هو أغبى فكرة توصل إليها أي شخص في القرن الحادي والعشرين؛نظرًا لأن جزءًا كبيرًا من أحرف يونيكود عبارة عن بديلات غير مرئية، فإن قراءة التعليمات البرمجية صعبة بما يكفي دون الحاجة إلى استخدام ترجمة جوجل، وكتابة التعليمات البرمجية صعبة بما يكفي دون الحاجة إلى نسخ ولصق المعرفات أو استخدام خريطة الأحرف.

  • "لكن اللغات الحساسة لحالة الأحرف لديها معرفات أكثر!";=> لا، لديهم معرفات مثقلة نحويًا، وهو أسوأ بكثير.

أنا لا أستخدم أي لغة حساسة لحالة الأحرف، لكن المزايا واضحة بشكل صارخ إذا فكرت في هذا النوع من الأشياء بجدية.

وربما يكون الجواب معقولة أن المصممين للغة يعتقد أنه من شأنها أن تجعل لغة أسهل للفهم التفكير في المستقبل:)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top