كيف تختار أسماء المعرّفات في جافا للفئات والمتغيرات والدوال

عندما تراجع شفرةً مصدرية كتبها مبرمجٌ محترفٌ من الصين وشفرةً مصدرية كُتبت من مبرمجٍ محترفٍ من المغرب العربي ستجد أن هنالك تشابها كبيراً في طريقة التسمية! هل هو توارد خواطر؟!

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

لم أقل لك أن المبرمج يملك الحرية المطلقة في التسمية أليس كذلك؟ بل حرية محدودة! لماذا؟ لأن هنالك شروطاً إذا لم يراعها المبرمج في التسمية لن يعمل برنامجه، كما توجدُ شروطٌ أخرى له فيها حرية الإستخدام.

فلنكن واقعيين، لا يوجد حل سحري لحل هذه المشكلة 100%

مع وجود أكثر من 10 مليون مبرمج جافا حول العالم تُطوّر العديد من البرامج بصورة يومية ويتم إصدارها. تخيّل برنامجاً يتم تطويره في أندنوسيا ويحتاج إلى صيانة في السعودية، نرى هنا أن مطوري وصائني هذا البرنامج يأتون من ثقافات مختلفة وطرق تعبير مختلفة ومفاهيم مختلفة.

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

حيرة مبرمج

معرفةُ هذه المعايير مهمةٌ لجميع المبرمجين، وهذا ما سنتطرق إليه في هذه التدوينة، سنرى ما يجعلُ الشفرات المصدرية أكثر قابليّة للقراءة والصيانة، بمقياس آخر يوفّر على مالك البرنامج وقتاً ومالاً ينفقه في الصيانة. هذا المالك قد يكون أنت أيضاً.


يطلق على الأسماء في لغة البرمجة “مُعرّفات” Identifiers ، ومفردها “مُعرّف” Identifier 

ما هي الحروف والعلامات التي تستطيع استخدامها في اسم المعرف؟ لوحة المفاتيح ممتلئة!

كما ترى أمامك فإن لوحة المفاتيح ملئى بالعديد من العلامات المعروفة وأخرى ربما لم ترها من قبل قط!

لوحة مفاتيح

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

المسموح باستخدامه في المُعرّف

  • يُسمح باستخدام جميع أحرف اليونيكود (بما فيها العربيّة) وجميع الأرقام.
  • من العلامات يُسمح بإستخدام علامتي الدولار ($) والشرطة السفلية (_) فقط

إذا استوفيت الشروط السابقة في المُعرّف، يجب أن تراعي الممنوعات التالية كذلك

الممنوعات في اختيار المُعرّف

  • غيرُ مسموحٍ بدءُ اسم المُعرّف برقم.
  • غيرُ مسموحٍ استخدامُ المسافات بين الكلمات.
  • غيرُ مسموحٍ استخدامُ الكلمات المحجوزة من قبل جافا.
  • ابتداءً من جافا 9، غيرُ مسوحٍ استخدامُ الشرطة السفلية فقط (_) كإسم للمعرّف

أمثلة لمعرّفات ممنوعة

        int 1person; 
        int _ ; // starts from Java9
        String monthly income; 
        double double;

أمثلة لمعرّفات مسموحة

        int A12ba;
        double aaaaaaA;
        String Mooda_hh99999;
        short $RRR;

والآن نأتي إلى المشكلة الكبيرة… تأمّل أمثلة المعرّفات المسموحة جيّداً..

تخيل أنك تعمل على حل مشكلة موجودة ببرنامجٍ يحتوي على ملايين الأسطر البرمجية، وكانت تسميةُ المتغيرات كما هو بالمثال أعلاه، هل فهمت شيئاً من هذه المسميات؟ هل ساعدتك أسماءُ المعرّفات على فهم مهمة المتغير أو الفائدة منه؟

إطلاااااقاً !

هنا نأتي إلى أهم معيار من المعايير التي تفرق فعلاً بين مبرمجٍ مبتدئ ومبرمج متقدّم أو محترف. وفقاً لما رأيته وتجربتي وجدتُ أن المبرمجين المبتدئين لا يعيرون هذا الأمر إهتماماً في الغالب، هل تعلم ما هو هذا الأمر؟ انظر إلى العُرف أو القاعدة التالية

حتى تكون الشفرةُ المصدرية أسهل في للصيانة والتعديل، ولزيادة قابلية مقروئيتها يجب أن تُسمى المُعرّفات في الشفرة المصدرية بأسماء معبّرة عن مهامها

الآن انظر إلى الأمثلة التالية لنفس المتغيرات السابقة.

        int monthlyIncome;
        double successPercentage;
        String firstName_temp;
        short age;

ألم يُمثّل ذلك فرقاً كبيراً؟ إذاً تحاشى من اليوم استخدام المعُرّفات مثل abc و i و غيرها 🙂

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

تسمية الفئات Classes والدوال Methods والمُتغيّرات Variables

برمجة

معرّفات الفئات Classes

  • يوصى بأن يبدأ الحرف الأول من كل كلمة في معرّف الفئة بحرف كبير، وبقيّة الأحرى صغيرة.
        Class Hello;
        Class HelloWorld;

معرّفات الدوال Methods

  • يوصى بأن تبدأ بحرف صغير، وبتدأ كل كلمة بعد ذلك بحرف كبير، وبقيّة الأحرف صغيرة.
    public void execute(){
        //some coe      
    }
    
    int getAge(){
        //some code
    }

معرّفات المتغيرات Variables

للمتغيّرات حالتين:

المتغيّرات الثابتة final variables
  • يوصى بأن تكون جميع الأحرف كبيرة، ويفصل بين الكلمات بعلامة شرطة سفلية.
        static final GLOBAL_COUNTER;
المتغيّرات غير الثابتة non-final variables
  • يوصى بأن تبدأ بحرف صغير، وتكون جميع الأحرف صغيرة ما عدا بداية الكلمات أحرف كبيرة.
        String procedure;
        char firstLetter;
        long firstQuarterIncome;

 

الخاتمة

من الممكن تسمية المعرّفات بأسماء مختلفة، للمبرمج مطلقُ الحريّة في التسمية طالما أن التسمية متوافقة مع الشروط الإجبارية من لغة جافا.

ولكن من أجل مفاهيم هندسة البرمجيّات (المقروئية وقابلية الصيانة) يجب أن يُراعي المبرمج المحترف بعض المعايير الأخرى التي تُسهّل له ولغيره العمل في المشاريع البرمجية وكتابة الشفرات المصدرية.


قد يعجبك أيضا

21+ بيئة تطوير متكاملة (IDE) و محررات لشفرات جافا المصدرية [من أجل برمجة أفضل]

21+ بيئة تطوير متكاملة (IDE) و محررات لشفرات جافا المصدرية [من أجل برمجة أفضل]

ما هو الصنف أو الفئة Class؟ وما هو الكائن Object؟ مع نظرة على الوراثة Inheritance

ما هو الصنف أو الفئة Class؟ وما هو الكائن Object؟ مع نظرة على الوراثة Inheritance
ما رأيك؟ اترك تعليقاً أدناه


{"email":"البريد الالكتروني غير صحيح","url":"رابط الموقع غير صحيح","required":"بعض الحقول المطلوبة لم تتم تعبئتها"}

نجاح!

تنبيه!

خطأ!