Skip to content

Latest commit

 

History

History
51 lines (36 loc) · 2.8 KB

File metadata and controls

51 lines (36 loc) · 2.8 KB

Minimize the scope of local variables - قلل النطاق الخاص بالمتغيرات

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

تعريف المتغيرات قبل أوانها لا يجعل نطاقها يبدأ مبكراً فقط بل ينتهي متأخراً أيضا.

ينبغي أن يحتوي تعريف المتغير على قيمة معرفة إذا لم تكن لدينك معلومات كافية لإضافة قيمة تعريفية للمتغير ينبغي أن تُوقف عملية التعريف ريقما تتوفر لديك البيانات الكافية.

prefer for loops to while loops - استخدم تكرايرة الحد المعين بدل تكرارية الحد الغير معين

// Preferred idiom for iterating over a collection or array
for (Element e : c){
    ... // Do something with e
}

ولو كنت تريد استخدام الدوال الداخلية للمكرر مع التكرارية المحددة العادية:

// Idiom for iterating when you need the iterator
for (Iterator<Element> i = c.iterator; i.hasNext();){
    Element e = i.next();
    ... // Do something with e and i
}

لمعرفة سبب تفضيل هذا النوع من التكرارية المحددة عن التكرارية الغير محددة؛ اعتبر الأمثلة التالية والتي تحتوي على اثنين تكرارية غير محددة ومشكلة واحدة:

Iterator<Element> i = c.iterator();
while(i.hasNext()){
    doSomething(i.next());
}
.......
Iterator<Element> i2 = c2.iterator();
while(`i`.hasNext()){ // <-- BUG
    doSomething(i.next());
}

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

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

تقليل نطاق المتغيرات يجعل الدوال صغيرة ومركزة