سؤال

يحتوي MFC على جميع أسماء الفصول التي تبدأ بـ C. على سبيل المثال ، CFILE و CGDIOBject. هل رأى أي شخص استخدامه في مكان آخر؟ هل يوجد دليل مؤتمر رسمي لتسمية من Microsoft يوصي بهذا النمط؟ هل نشأت الفكرة مع MFC أم أنها مشروع آخر؟

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

المحلول

يتم استخدام شيء مشابه قليلاً في Symbian C ++ ، حيث تكون الاتفاقية هي:

فئات T هي "قيم" ، على سبيل المثال tchar ، tint32 ، tdes

فصول R هي مقابض لموارد kernel (أو غيرها) ، على سبيل المثال rfile ، rsocket

فئات M هي Mixins ، والتي تتضمن واجهات (تم تفسيرها على أنها مزيج بدون تطبيقات وظيفية). المبدأ التوجيهي هو أن الميراث المتعدد يجب أن ينطوي على أكثر من 1 فئة غير م.

فصول C هي كل شيء آخر إلى حد كبير ، وتستمد من CBASE ، والتي لديها بعض الأشياء للمساعدة في التعامل مع الموارد.

يوجد HBUFC في المقام الأول لإنشاء منشورات مشوشة في منتديات Symbian ، والحصول على بادئة خاصة به هو مجرد البداية. تعني H لـ "Huh؟" ، أو ربما "Haw ، Haw! ليس لديك STL!" ؛-)

هذا قريب من الروح للتطبيقات التدوين الهنغاري بدلاً من التدوين المجري. يخبرك البادئة بشيء عن الفصل الذي يمكنك البحث عنه في الوثائق ، لكنك لن تعرف خلاف ذلك. الهدف الكامل من تسمية أي شيء في البرمجة هو توفير مثل هذه التلميحات والتذكيرات, ، وإلا فإنك يمكنك فقط الاتصال بالفصول الدراسية "class001" ، "class002" ، إلخ.

يخبرك الأنظمة الهنغارية فقط بنوع المتغير ، وهو ما لا يستحثه المنظمة البحرية الدولية ، خاصة بلغة مثل C ++ حيث تميل الأنواع إلى التكرار باستمرار أو مخفية تمامًا بواسطة معلمات القالب. إن التناظرية عندما تكون أنواع التسمية هي ممارسة Java لتسمية جميع الواجهات مع I. ، بالإضافة إلى الواجهات التي يتم استخدامها بالفعل في تعدد الأشكال في المواقف غير الاختبار ، فأنت بحاجة إلى طريقة لتمييز الاثنين.

نصائح أخرى

إنه شرير. لا تستخدم التدوين المجري لأي شيء سوى الأشياء المستخرجة.

على سبيل المثال، btnSubmit على ما يرام لوصف زر يسمى إرسال (والذي سيكون له مصاحب lblSubmit للتسمية بجانب الزر)

لكن أشياء مثل CMyClass للطبقة و uiCount بالنسبة إلى عدد صحيح غير موقّع لا يساعد المبرمجين ، ويؤدي فقط إلى كتابة إضافية.

كان هذا أسلوب ترميز C ++ قديم ، وربما كان MFC أحد آخر الأشياء لاستخدامه.

كانت عادةً مجرد اتفاقية لـ C ++ (وربما بعض اللغات الأخرى) ، وبالتالي بدأت في السقوط في التفضيل لأن اللغات أصبحت أكثر قابلية للتشغيل ، من خلال COM ثم .NET.

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

أتذكر أن مجمعي بورلاند كانوا يتصدرون المكتبات حيث بدأت أسماء الفصل بـ "T". ربما من أجل "النوع" :)

منذ سنوات ، يعد تسمية الاتفاقية أمرًا بالغ الأهمية للمساعدة في تحديد الفئة ، حتى نوع تجميع الفصل. لا تنسى في ذلك الوقت لم يكن هناك مساحة اسم و NO/محدودة Intellisense المتاحة. C هو شكل من أشكال التدوين المجري ولكن بالتأكيد جعل شعبية من قبل MFC. كان Borland و Delphi يستخدمان T - كبادئة للنوع

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

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

انظر هنا : http://www.jelovic.com/articles/stupid_naming.htm لمقال طويل حول هذه القضية.

هذه الاتفاقيات للمتغيرات مفيدة للغات مثل Fortran حيث لا تحتاج إلى إعلان أنواع المتغيرات الخاصة بك قبل استخدامها. يبدو أنني أتذكر أن المتغيرات التي بدأت أسماء "I" أو "J" تعرضت للتخلي عن الأعداد الصحيحة ، والمتغيرات التي بدأت الأسماء مع "R" وغيرها من الرسائل المتخلفة عن القيم الحقيقية (تعويم).

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

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

نستخدمه في العمل ، مثل العديد من اتفاقيات التسمية الأخرى

من خلال العديد من الفصول ، P للمؤشر ، M_ للأعضاء ، S_ للأعضاء الثابتة ، n للعدد الصحيح ... وليس العديد من المستندات

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

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