إعلان
دورة تطوير التطبيقات باستخدام لغة JavaScript في هذه الدورة ستتعلم لغة جافا سكريبت, استخدام مكتبة React.js, بناء API الموقع بواسطة Node.js, تطوير تطبيق جوال باستخدام React Native, و في نهاية الدورة ستتعلم تطوير تطبيق محادثة شبيه بتطبيق WhatsApp. تعلم الآن
دورة تطوير واجهات المستخدم في هذه الدورة ستتعلم لغة HTML و لغة CSS و لغة JavaScript. من ناحية التطبيق العملي ستتعلم طريقة بناء واجهة متجر إلكتروني مكون من ست صفحات, تحويل خمسة تصاميم PSD إلى صفحات ويب, بناء واجهة مستخدم تشبه موقع يوتيوب, بناء لوحة تحكم إحترافية. تعلم الآن
تطوير تطبيقات باستخدام لغة بايثون في هذه الدورة ستتعلم أساسيات البرمجة بلغة بايثون وصولاً إلى التعامل مع أشهر أطر العمل (Flask و Django) و ستتعلم كيف تبني متجر إلكتروني يمكن للمستخدمين البيع و الشراء من خلاله. تعلم الآن
دورة تطوير تطبيقات الويب باستخدام لغة PHP في هذه الدورة ستتعلم لغة PHP من الصفر, استخدام إطار العمل Laravel بشرح مفصّل و عملي, كيفية تطوير شبكة اجتماعية تشبه Instagram, بناء API لتطبيق جوال وفق أسلوب RESTful, تطوير موقع إعلانات مبوبة, تطوير نظام إدارة محتوى CMS كامل. تعلم الآن
دورة تطوير تطبيقات الويب باستخدام لغة Ruby في هذه الدورة ستتعلم البرمجة بلغة Ruby إنطلاقاً من أبسط المفاهيم وحتى بناء تطبيق حقيقي, إستخدام إطار العمل Ruby on Rails بشرح مفصّل و عملي, بناء تطبيق حقيقي عبارة عن شبكة اجتماعية تشبه تويتر, تطوير مجتمع الكتروني يشبه حسوب I/O. تعلم الآن
دورة علوم الحاسوب هذه الدورة معدة لتكون مدخل لعلوم الحاسوب و لغات البرمجة حيث ستتعرف فيها على أنظمة التشغيل و ستتعمق في نظام لينكس و في كيفية التعامل معه من خلال موجه الأوامر, بالإضافة إلى قواعد البيانات و أساسيات الشبكات و الخوادم و مبادئ الحماية والأمان في الويب. تعلم الآن

    كيف تكتب كود نظيف في لغة جافا

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


    لا تكرر الكود أكثر من مرة

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

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


    أكتب كود قصير و معبّر

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

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


    إختر أسماء مفهومة للأشياء التي تقوم بتعريفها

    في أي لغة برمجة تستخدمها ستجد أنك حتماً تقوم بتعريف الكثير من الأمور مثل المتغيرات, الكلاسات و الدوال و التي لا بد من إعطائها أسماء خاصة بها و هذه الأسماء تسمى معرّفات (Identifier)، و صحيح أنه يمكنك تسمية المتغيرات بإستخدام المزيج الذي تريده من الحروف و الأرقام إلا أن هناك قواعد محددة في تسمية كل شيء يفضّل أو حتى يجب عليك إتباعها دائماً و إلا فالمعرّفات الخاصة بك ستكون أشبه بالطلاسم منها كأسماء، و قد تتسبب طرق التسمية التي لا تتبع هذه القواعد في سوء فهم من يقرأ الكود الخاص بك، فمثلاً إذا قمت تسمية الكلاس getUsername كما نفعل في العادة مع الدوال, فهنا سيظن من يقرأ الكود أن هذا إسم دالة و ليس إسم كلاس و هكذا.

    في لغة جافا قواعد التسمية هي كالتالي:

    • لا تستخدم الرمز $ في تسمية أي معرّف مطلقاً.
    • لا تستخدم الأرقام إلا في حالات الضرورة القصوى عندما تعطي معنى مهم للإسم، فمثلاً لا تقم بتعريف متغير name و name1 فقط لأنك تريد أن تستخدم نفس الإسم name لكن لمتغير آخر.
    • أكتب المعرّف ليعبّر عن معنى وهدف المُعرّف، و لا تقم بتسميته بأسماء عامة مثل data أو SomeFunctions أبداً و ركز بهذه النقطة جيداً.
    • المتغيرات تعرّف بإسم و ليس بفعل، فمثلاً إستخدم name بدلاً من getName كإسم لمتغير، و يجب أن يبدأ إسم المتغير بحرف صغير، و في حال كان الإسم يتألف من أكثر من كلمة نفصل بين الكلمات بكتابة أول حرف من الكلمة التالية بشكله الكبير مثل employesSalary و لا يجب أن تستخدم الرمز _ مطلقاً للفصل بين الكلمات كما نفعل في لغة بايثون.
    • المتغيرات من النوع final يكتب إسمها كله على شكل أحرف كبيرة مفصول بينها بالرمز _ مثل ROOT_PATH.
    • الدوال تعرّف بفعل و ليس بإسم، و يجب أن يبدأ أول حرف من إسمها بحرف صغير، و يفصل بين الكلمات بكتابة أول حرف من الكلمة التالية كبيراً مثل getName.
    • الكلاسات (Classes) و الإنترفيسات (Interfaces) و التعدادات (Enumerations) توضع كأسماء (و ليس أفعال) كاملة بدون إختصارات يبدأ إسمها بحرف كبير، و يفصل بين الكلمات بحروف كبيرة أيضاً مثل AdminAccount.
    • لا تكتب أي إسم على شكل إختصارات سواء لمتغير أو دالة أو صف مثل DB، و اكتب بدلاً منها الإسم كاملاً Database
    • تسمى قيم التعدادات بنفس طريقة تسمية المتغيرات من النوع final فهي أيضاً قيم ثابتة.
    • الحزم (Packages) تكتب أسماؤها بأحرف صغيرة، و لا تكتب بصيغة الجمع مثل control و ليس controls.


    وضع تعليقات عند الحاجة

    تساعدنا التعليقات في شرح الكود للقارئ، و هي مثل الملح فلا تقلل و لا تكثر منها، و تذكر دائماً بأن تتأكد في حال كون الكود غير واضح من كتابة تعليقات تشرح ذلك الكود، و إن أردت شرح طريقة عمل كلاس أو دالة أو فائدة خاصيّة (Property) يمكنك إستخدام javadoc لكتابة ذلك، و يمتلك javadoc ميزة إمكانية عرضه للمبرمج في بيئات التطوير مثل Netbeans حيث تجد أنك حين تكتب إسم الدالة يظهر لك شرح لها, و هذا ما لا يتم في حالة كتابة ملاحظاتك على شكل تعليق.

     

    إستخدم الدوال الخاصة باللغة

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


    النظافة هي قرار صعب بتحديد ما يجب رميه في القمامة

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

     

    صمم برنامجك بشكل واضح و مفهوم

    بإمكان كل منا تصميم برنامج ليقوم بنفس المهمة بطرق مختلفة.

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

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


    الكود الذي لا يتم تنظيفه سيتسخ في النهاية

    تذكر دائماً أن تعديلك و تحديثك للكود البرمجي سيعقّد البرنامج لذلك دائماً ألق نظرة على الكود و حاول تنظيفه و تبسيطه قدر الإمكان، و لا بد من الإشارة هنا لكون بيئات العمل (IDEs) مثل Netbeans توفر أدوات بسيطة لتسهل عليك هذه العملية، فمثلاً يمكنك تغيير إسم متغير أو دالة و سيقوم بتعديله لك في كل الملفات.

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

    آخر تحديث: 24-12-2021

    الكاتب

    رامي عبدالله

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

    تعليقات 1

    أضف تعليق

    يجب تسجيل الدخول حتى تتمكن من إضافة تعليق أو رد.
    إعلان
    دورة تطوير التطبيقات باستخدام لغة JavaScript في هذه الدورة ستتعلم لغة جافا سكريبت, استخدام مكتبة React.js, بناء API الموقع بواسطة Node.js, تطوير تطبيق جوال باستخدام React Native, و في نهاية الدورة ستتعلم تطوير تطبيق محادثة شبيه بتطبيق WhatsApp. تعلم الآن
    دورة تطوير واجهات المستخدم في هذه الدورة ستتعلم لغة HTML و لغة CSS و لغة JavaScript. من ناحية التطبيق العملي ستتعلم طريقة بناء واجهة متجر إلكتروني مكون من ست صفحات, تحويل خمسة تصاميم PSD إلى صفحات ويب, بناء واجهة مستخدم تشبه موقع يوتيوب, بناء لوحة تحكم إحترافية. تعلم الآن
    تطوير تطبيقات باستخدام لغة بايثون في هذه الدورة ستتعلم أساسيات البرمجة بلغة بايثون وصولاً إلى التعامل مع أشهر أطر العمل (Flask و Django) و ستتعلم كيف تبني متجر إلكتروني يمكن للمستخدمين البيع و الشراء من خلاله. تعلم الآن
    دورة تطوير تطبيقات الويب باستخدام لغة PHP في هذه الدورة ستتعلم لغة PHP من الصفر, استخدام إطار العمل Laravel بشرح مفصّل و عملي, كيفية تطوير شبكة اجتماعية تشبه Instagram, بناء API لتطبيق جوال وفق أسلوب RESTful, تطوير موقع إعلانات مبوبة, تطوير نظام إدارة محتوى CMS كامل. تعلم الآن
    دورة تطوير تطبيقات الويب باستخدام لغة Ruby في هذه الدورة ستتعلم البرمجة بلغة Ruby إنطلاقاً من أبسط المفاهيم وحتى بناء تطبيق حقيقي, إستخدام إطار العمل Ruby on Rails بشرح مفصّل و عملي, بناء تطبيق حقيقي عبارة عن شبكة اجتماعية تشبه تويتر, تطوير مجتمع الكتروني يشبه حسوب I/O. تعلم الآن
    دورة علوم الحاسوب هذه الدورة معدة لتكون مدخل لعلوم الحاسوب و لغات البرمجة حيث ستتعرف فيها على أنظمة التشغيل و ستتعمق في نظام لينكس و في كيفية التعامل معه من خلال موجه الأوامر, بالإضافة إلى قواعد البيانات و أساسيات الشبكات و الخوادم و مبادئ الحماية والأمان في الويب. تعلم الآن
      إعلان

      Eqla3Tech.com

      شروحات مكتوبة حول لغات البرمجة و تقنية المعلومات باللغة العربية مقدمة من إقلاع تك.

      لغة جافا لغة ++C قواعد البيانات نظام ويندوز نظام لينكس الشبكات تقنية المعلومات الأمن السيبراني

      تقييم المقال

      لم تقم بتقييم المقال بعد!

      الدورات

      أدوات مساعدة

      الأقسام

      دورات
      مقالات أسئلة مشاريع كتب