10 اعتراض تي مبني پروگرامنگ اصولن کي هر ڊولپر کي ڄاڻڻ گهرجي

10 اعتراض تي مبني پروگرامنگ اصولن کي هر ڊولپر کي ڄاڻڻ گهرجي

گهڻو ڪري آئون ڊولپرز سان ملندو آهيان جن SOLID اصولن بابت نه ٻڌو آهي (اسان انهن جي باري ۾ هتي تفصيل سان ڳالهايو. (ترجمو) يا اعتراض تي مبني پروگرامنگ (OOP)، يا انهن بابت ٻڌو آهي، پر انهن کي عملي طور استعمال نه ڪيو. هي آرٽيڪل OOP اصولن جا فائدا بيان ڪري ٿو جيڪي ڊولپر کي پنهنجي روزاني ڪم ۾ مدد ڪن ٿا. انهن مان ڪجهه سڃاتل آهن، ٻيا تمام گهڻو نه آهن، تنهنڪري مضمون ٻنهي جي شروعات ڪندڙ ۽ تجربيڪار پروگرامرز لاء مفيد ٿيندو.

اسان توهان کي ياد ڏياريون ٿا: Habr جي سڀني پڙهندڙن لاءِ - هڪ 10 روبل رعايت جڏهن ڪنهن به اسڪل باڪس ڪورس ۾ داخلا لاءِ Habr پروموشنل ڪوڊ استعمال ڪندي.

Skillbox سفارش ڪري ٿو: تعليمي آن لائين ڪورس "جاوا ڊولپر".

DRY (پاڻ کي نه ورجايو)

ھڪڙو سادو اصول، جنھن جو خلاصو نالو مان صاف آھي: "پاڻ کي ورجائي نه ڪريو." هڪ پروگرامر لاء، هن جو مطلب آهي نقلي ڪوڊ کان بچڻ جي ضرورت آهي، انهي سان گڏ انهن جي ڪم ۾ تجريد استعمال ڪرڻ جو موقعو.

جيڪڏهن ڪوڊ ۾ ٻه ورجائيندڙ حصا آهن، انهن کي هڪ طريقي سان گڏ ڪيو وڃي. جيڪڏهن هارڊ ڪوڊ ٿيل قدر هڪ کان وڌيڪ ڀيرا استعمال ڪيو وڃي، اهو ان کي تبديل ڪرڻ جي قابل آهي عوامي مستقل ۾.

اهو ضروري آهي ته ڪوڊ کي آسان ڪرڻ ۽ ان کي برقرار رکڻ آسان بڻائي، جيڪو OOP جو بنيادي مقصد آهي. توهان کي يونين کي وڌيڪ استعمال نه ڪرڻ گهرجي، ڇو ته ساڳيو ڪوڊ آرڊر آئي ڊي ۽ ايس ايس اين ٻنهي سان تصديق نه ڪندو.

تبديل ٿيندڙ تبديليون

گهڻيون ڪمپنيون سافٽ ويئر پروڊڪٽس مسلسل ترقي ڪري رهيا آهن. هن جو مطلب اهو آهي ته تبديلين کي ڪوڊ ڪرڻ جي ضرورت آهي، ان کي سپورٽ ڪرڻ جي ضرورت آهي. توهان encapsulation استعمال ڪندي پنهنجي زندگي آسان بڻائي سگهو ٿا. اهو توهان کي وڌيڪ موثر طريقي سان جانچڻ ۽ توهان جي موجوده ڪوڊ جي بنياد کي برقرار رکڻ جي اجازت ڏيندو. هتي هڪ مثال آهي.

جيڪڏهن توهان جاوا ۾ لکندا آهيو، پوء ڊفالٽ طور نجي طريقن ۽ متغيرن کي تفويض ڪريو.

کليل / بند اصول

ھي اصول ھيٺ ڏنل بيان پڙھڻ سان آساني سان ياد ڪري سگھجي ٿو: "سافٽ ويئر ادارا (ڪلاس، ماڊل، افعال، وغيره) وڌائڻ لاء کليل آھن، پر ترميم لاء بند ٿيل آھن." عملي طور تي، هن جو مطلب اهو آهي ته اهي انهن جي رويي کي تبديل ڪرڻ جي اجازت ڏئي سگھن ٿا بغير سورس ڪوڊ کي تبديل ڪرڻ جي.

اصول اهم آهي جڏهن سورس ڪوڊ ۾ تبديلين جي ضرورت آهي ڪوڊ جي نظرثاني، يونٽ جي جاچ، ۽ ٻيا طريقا. ڪوڊ جيڪو کليل/بند ٿيل اصول جي پيروي ڪري ٿو تبديل نه ٿيندو جڏهن وڌايو ويو، تنهنڪري ان سان تمام گهٽ مسئلا آهن.

هتي ڪوڊ جو هڪ مثال آهي جيڪو هن اصول جي ڀڃڪڙي ڪري ٿو.

10 اعتراض تي مبني پروگرامنگ اصولن کي هر ڊولپر کي ڄاڻڻ گهرجي

جيڪڏهن توهان کي ان ۾ ڪجهه تبديل ڪرڻ جي ضرورت آهي، اهو تمام گهڻو وقت وٺندو، ڇاڪاڻ ته ڪوڊ جي سڀني حصن کي تبديل ڪرڻو پوندو جيڪو گهربل ٽڪرا سان ڳنڍيل آهي.

رستي جي ذريعي، کليل-بندگي SOLID جي اصولن مان هڪ آهي.

اڪيلو ذميواري اصول (SRP)

SOLID سيٽ مان هڪ ٻيو اصول. اهو ٻڌائي ٿو ته "اتي صرف هڪ سبب آهي جيڪو طبقي ۾ تبديلي جو سبب بڻائيندو آهي." ڪلاس صرف هڪ مسئلو حل ڪري ٿو. اهو ٿي سگهي ٿو ڪيترن ئي طريقن سان، پر انهن مان هر هڪ صرف هڪ عام مسئلو حل ڪرڻ لاء استعمال ڪيو ويندو آهي. سڀني طريقن ۽ ملڪيتن کي صرف هن جي خدمت ڪرڻ گهرجي.

10 اعتراض تي مبني پروگرامنگ اصولن کي هر ڊولپر کي ڄاڻڻ گهرجي

هن اصول جو قدر اهو آهي ته اهو انفرادي سافٽ ويئر جزو ۽ ڪوڊ جي وچ ۾ جوڙيندڙ کي ختم ڪري ٿو. جيڪڏهن توهان هڪ طبقي ۾ هڪ کان وڌيڪ ڪارڪردگي شامل ڪريو ٿا، اهو ٻن ڪمن جي وچ ۾ تعلق متعارف ڪرايو آهي. اهڙيء طرح، جيڪڏهن توهان انهن مان هڪ کي تبديل ڪيو، ته ٻئي کي برباد ڪرڻ جو هڪ وڏو موقعو آهي، جيڪو پهرين سان ڳنڍيل آهي. ۽ انهي جو مطلب آهي ٽيسٽنگ چڪر کي وڌائڻ لاءِ سڀني مسئلن کي اڳ ۾ سڃاڻڻ لاءِ.

انحصار جي ڦيرڦار جو اصول (DIP)

10 اعتراض تي مبني پروگرامنگ اصولن کي هر ڊولپر کي ڄاڻڻ گهرجي

مٿيان هڪ ڪوڊ مثال آهي جتي AppManager انحصار ڪري ٿو EventLogWriter، جنهن جي نتيجي ۾ ويجهڙائي سان گڏ آهي AppManager. جيڪڏهن توهان کي نوٽيفڪيشن ڏيکارڻ لاءِ مختلف طريقي جي ضرورت آهي، اهو پش هجي، ايس ايم ايس هجي يا اي ميل، توهان کي AppManager ڪلاس کي تبديل ڪرڻو پوندو.

مسئلو حل ڪري سگھجي ٿو DIP استعمال ڪندي. تنهن ڪري، AppManager جي بدران، اسان هڪ EventLogWriter جي درخواست ڪريون ٿا، جيڪو فريم ورڪ استعمال ڪندي داخل ڪيو ويندو.

DIP ان کي آسان بڻائي ٿو انفرادي ماڊلز کي ٻين سان تبديل ڪرڻ سان انحصار ماڊل کي تبديل ڪندي. اهو ممڪن بڻائي ٿو ته هڪ ماڊل تبديل ڪرڻ کان سواء ٻين کي متاثر ڪرڻ کان سواء.

وراثت جي بدران ساخت

10 اعتراض تي مبني پروگرامنگ اصولن کي هر ڊولپر کي ڄاڻڻ گهرجيڪوڊ کي ٻيهر استعمال ڪرڻ جا ٻه مکيه طريقا آهن: وراثت ۽ ساخت، جن ٻنهي جا پنهنجا فائدا ۽ نقصان آهن. عام طور تي ٻيو پسند ڪيو ويندو آهي ڇاڪاڻ ته اهو وڌيڪ لچڪدار آهي.

ڪمپوزيشن توهان کي رن ٽائم تي ڪلاس جي رويي کي تبديل ڪرڻ جي صلاحيت ڏئي ٿي ان جي ملڪيتن کي ترتيب ڏيندي. جڏهن انٽرفيس کي لاڳو ڪرڻ، پوليمورفيزم استعمال ڪيو ويندو آهي، جيڪو وڌيڪ لچڪدار عملدرآمد ڏئي ٿو.

ايستائين جو جوشوا بلوچ پاران اثرائتو جاوا وراثت تي ترتيب چونڊڻ جو مشورو ڏئي ٿو.

باربي ليسڪوف متبادل اصول (LSP)

SOLID ٽول ڪٽ مان ٻيو اصول. اهو ٻڌائي ٿو ته ذيلي قسم کي سپر ٽائپ لاء متبادل هجڻ گهرجي. اهو آهي، طريقن ۽ افعال جيڪي هڪ سپر ڪلاس سان ڪم ڪن ٿا انهن جي ذيلي ڪلاسن سان مسئلن کان سواء ڪم ڪرڻ جي قابل هوندا.

LSP هڪ واحد ذميواري اصول ۽ گڏيل ذميواري اصول ٻنهي سان لاڳاپيل آهي. جيڪڏهن هڪ ڪلاس ذيلي ڪلاس کان وڌيڪ ڪارڪردگي فراهم ڪري ٿو، ته پوءِ بعد ۾ هن اصول جي ڀڃڪڙي ڪندي، ڪجهه ڪارڪردگي جي حمايت نه ڪندو.

هتي ڪوڊ جو هڪ ٽڪرو آهي جيڪو LSP سان تضاد ڪري ٿو.

10 اعتراض تي مبني پروگرامنگ اصولن کي هر ڊولپر کي ڄاڻڻ گهرجي

علائقي (مستطيل r) طريقو هڪ مستطيل جي علائقي جي حساب سان. پروگرام اسڪوائر تي عمل ڪرڻ کان پوءِ خراب ٿي ويندو ڇو ته اسڪوائر هتي مستطيل نه آهي. LSP اصول جي مطابق، فنڪشن جيڪي بنيادي طبقن جا حوالا استعمال ڪن ٿا، اضافي هدايتن کان سواء نڪتل طبقن جي شين کي استعمال ڪرڻ جي قابل هوندا.

اهو اصول، جيڪو هڪ ذيلي قسم جي هڪ مخصوص تعريف آهي، باربرا ليسڪوف پاران 1987 جي ڪانفرنس جي اهم نوٽ ۾ "ڊيٽا تجزيه ۽ درجي بندي" جي عنوان سان پيش ڪيو ويو، تنهنڪري ان جو نالو.

انٽرفيس ورهائڻ جو اصول (ISP)

ٻيو مضبوط اصول. ان جي مطابق، هڪ انٽرفيس جيڪو استعمال نه ڪيو وڃي ان تي عمل نه ڪيو وڃي. ھن اصول تي عمل ڪرڻ ۾ مدد ملندي آھي سسٽم لچڪدار ۽ ريفيڪٽرنگ لاءِ موزون رھندي جڏھن تبديليون آپريٽنگ منطق ۾ ڪيون وينديون آھن.

گهڻو ڪري، اها صورتحال ٿيندي آهي جڏهن انٽرفيس هڪ ئي وقت ۾ ڪيترن ئي افعال تي مشتمل آهي، ۽ ڪلائنٽ صرف انهن مان هڪ جي ضرورت آهي.

جيئن ته انٽرفيس لکڻ هڪ مشڪل ڪم آهي، ان ڪري ڪم مڪمل ٿيڻ کان پوءِ ان کي تبديل ڪرڻ هڪ چيلنج هوندو.

جاوا ۾ ISP اصول جو فائدو اهو آهي ته سڀني طريقن کي لازمي طور تي لاڳو ڪيو وڃي، ۽ صرف پوء اهي طبقن طرفان استعمال ڪري سگھجن ٿيون. تنهن ڪري، اصول اهو ممڪن بڻائي ٿو ته طريقن جي تعداد کي گهٽائڻ لاء.

10 اعتراض تي مبني پروگرامنگ اصولن کي هر ڊولپر کي ڄاڻڻ گهرجي

انٽرفيس لاءِ پروگرامنگ، نه عمل درآمد

هتي هر شي عنوان مان واضح آهي. هن اصول کي لاڳو ڪرڻ لچڪدار ڪوڊ جي پيدائش ڏانهن وٺي ٿو جيڪو ڪم ڪري سگهي ٿو انٽرفيس جي ڪنهن به نئين عمل سان.

توھان کي استعمال ڪرڻ گھرجي انٽرفيس جو قسم متغيرن لاءِ، موٽڻ جا قسم، يا طريقو دليل جي قسم. ھڪڙو مثال استعمال ڪري رھيو آھي SuperClass بجاءِ SubClass.

اهو آهي:

لسٽ نمبر = حاصل نمبر ()؛

پر نه:

ArrayList نمبر = getNumbers();

هتي هڪ عملي عمل آهي جيڪو مٿي ڄاڻايل آهي.

10 اعتراض تي مبني پروگرامنگ اصولن کي هر ڊولپر کي ڄاڻڻ گهرجي

وفد جو اصول

ھڪڙو عام مثال جاوا ۾ equals() ۽ hashCode() طريقا آھن. جڏهن اهو ضروري آهي ته ٻن شين جو مقابلو ڪرڻ لاء، اهو عمل ڪلائنٽ هڪ جي بدران لاڳاپيل طبقي ڏانهن پهچايو ويندو آهي.

اصول جو فائدو اهو آهي ته ڪوڊ جو ڪو به نقل نه آهي ۽ رويي کي تبديل ڪرڻ نسبتا آسان آهي. اهو پڻ واقعي جي وفد تي لاڳو ٿئي ٿو.

10 اعتراض تي مبني پروگرامنگ اصولن کي هر ڊولپر کي ڄاڻڻ گهرجي

اهي سڀئي اصول توهان کي وڌيڪ لچڪدار، خوبصورت ۽ قابل اعتماد ڪوڊ لکڻ جي اجازت ڏين ٿا اعلي هم آهنگي ۽ گهٽ ملائڻ سان. يقينن، نظريو سٺو آهي، پر هڪ ڊولپر لاء حقيقت ۾ حاصل ڪيل علم کي استعمال ڪرڻ لاء، مشق جي ضرورت آهي. هڪ دفعو توهان OOP اصولن تي عبور حاصل ڪري ورتو آهي، توهان جو ايندڙ قدم ٿي سگهي ٿو ڊيزائن جي نمونن کي سکڻ لاءِ عام سافٽ ويئر ڊولپمينٽ مسئلن کي حل ڪرڻ لاءِ.

Skillbox سفارش ڪري ٿو:

جو ذريعو: www.habr.com

تبصرو شامل ڪريو