CodeGym /جاوا بلاگ /Random-SD /جاوا ۾ ريفيڪٽرنگ ڪيئن ڪم ڪري ٿي
John Squirrels
سطح
San Francisco

جاوا ۾ ريفيڪٽرنگ ڪيئن ڪم ڪري ٿي

گروپ ۾ شايع ٿيل
جئين توهان سکو ته پروگرامنگ ڪيئن ڪجي، توهان ڪوڊ لکڻ ۾ گهڻو وقت گذاريو. گھڻا شروعاتي ڊولپر مڃيندا آھن ته اھو اھو آھي جيڪو اھي مستقبل ۾ ڪندا. اهو جزوي طور تي سچ آهي، پر هڪ پروگرامر جي نوڪري ۾ پڻ شامل آهي برقرار رکڻ ۽ ريفڪٽرنگ ڪوڊ. اڄ اسان refactoring بابت ڳالهائڻ وارا آهيون. جاوا ۾ ريفيڪٽرنگ ڪيئن ڪم ڪري ٿي - 1

Refactoring CodeGym تي

Refactoring CodeGym ڪورس ۾ ٻه ڀيرا ڍڪيل آهي: وڏو ڪم مشق ذريعي حقيقي ريفيڪٽرنگ کان واقف ٿيڻ جو موقعو فراهم ڪري ٿو، ۽ IDEA ۾ ريفڪٽرنگ تي سبق توهان کي خودڪار اوزارن ۾ غوطه ڏيڻ ۾ مدد ڪري ٿو جيڪي توهان جي زندگي کي ناقابل يقين حد تائين آسان بڻائي ڇڏيندا.

refactoring ڇا آهي؟

اهو ان جي ڪارڪردگي کي تبديل ڪرڻ کان سواء ڪوڊ جي جوڙجڪ کي تبديل ڪري رهيو آهي. مثال طور، فرض ڪريو اسان وٽ ھڪڙو طريقو آھي جيڪو 2 انگن جو مقابلو ڪري ٿو ۽ صحيح موٽائي ٿو جيڪڏھن پھريون وڏو آھي ۽ ٻي صورت ۾ غلط آھي :
public boolean max(int a, int b) {
    if(a > b) {
        return true;
    } else if (a == b) {
        return false;
    } else {
        return false;
    }
}
هي هڪ بلڪه اڻ وڻندڙ ​​​​ڪوڊ آهي. جيتوڻيڪ شروعات ڪندڙ به گهٽ ۾ گهٽ ڪجهه لکندا آهن، پر هڪ موقعو آهي. هڪ if-elseبلاڪ ڇو استعمال ڪريو جيڪڏهن توهان لکي سگهو ٿا 6-لائن جو طريقو وڌيڪ اختصار سان؟
public boolean max(int a, int b) {
     return a > b;
}
ھاڻي اسان وٽ ھڪڙو سادو ۽ خوبصورت طريقو آھي جيڪو مٿي ڏنل مثال وانگر ساڳيو آپريشن انجام ڏئي ٿو. اهو ڪيئن آهي ريفڪٽرنگ ڪم ڪري ٿو: توهان ڪوڊ جي جوڙجڪ کي تبديل ڪريو بغير ان جي جوهر کي متاثر ڪرڻ جي. اتي ڪيترائي ريفڪٽرنگ طريقا ۽ ٽيڪنڪ آھن جن کي اسين ويجھي نظر ڪنداسين.

توهان کي ڇو refactoring جي ضرورت آهي؟

ان جا ڪيترائي سبب آهن. مثال طور، ڪوڊ ۾ سادگي ۽ اختصار حاصل ڪرڻ لاء. هن نظريي جا حامي يقين رکن ٿا ته ڪوڊ کي ممڪن طور تي جامع هجڻ گهرجي، جيتوڻيڪ ان کي سمجهڻ لاء ڪيترن ئي درجن جي تبصرن جي ضرورت آهي. ٻيا ڊولپرز قائل آهن ته ڪوڊ کي ريفيڪٽر ڪيو وڃي ته جيئن ان کي گهٽ ۾ گهٽ تبصرن سان سمجهي سگهجي. هر ٽيم پنهنجو موقف اختيار ڪري ٿي، پر ياد رکو ته ريفيڪٽرنگ جو مطلب گهٽتائي نه آهي . ان جو بنيادي مقصد ڪوڊ جي جوڙجڪ کي بهتر ڪرڻ آهي. هن مجموعي مقصد ۾ ڪيترائي ڪم شامل ڪري سگھجن ٿا:
  1. Refactoring ٻين ڊولپرز پاران لکيل ڪوڊ جي سمجھ کي بهتر بڻائي ٿو.
  2. اهو بگ ڳولڻ ۽ درست ڪرڻ ۾ مدد ڪري ٿو.
  3. اهو سافٽ ويئر جي ترقي جي رفتار کي تيز ڪري سگهي ٿو.
  4. مجموعي طور تي، اهو سافٽ ويئر ڊيزائن کي بهتر بڻائي ٿو.
جيڪڏهن ريفيڪٽرنگ ڊگهي وقت تائين نه ڪئي وئي، ترقي ۾ مشڪلاتن کي منهن ڏئي سگهي ٿو، بشمول ڪم کي مڪمل طور تي روڪيو.

"ڪوڊ بوء"

جڏهن ڪوڊ کي ريفيڪٽرنگ جي ضرورت آهي، ان کي چيو ويندو آهي "بو آهي". يقينن، لفظي طور تي نه، پر اهڙي ڪوڊ حقيقت ۾ تمام گهڻي اپيل نظر نٿو اچي. هيٺ اسين ابتدائي اسٽيج لاءِ بنيادي ريفيڪٽرنگ ٽيڪنڪ کي ڳوليندا سين.

غير معقول طور تي وڏا طبقا ۽ طريقا

ڪلاس ۽ طريقا مشڪل ٿي سگهن ٿا، انهن جي وڏي سائيز جي ڪري مؤثر نموني سان ڪم ڪرڻ ناممڪن آهي.

وڏو طبقو

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

ڊگهو طريقو

هي ”بو“ تڏهن پيدا ٿئي ٿو جڏهن هڪ ڊولپر هڪ طريقي ۾ نئين ڪارڪردگي شامل ڪري ٿو: ”جيڪڏهن مان هتي ڪوڊ لکي سگهان ٿو ته هڪ الڳ طريقي سان پيراميٽر چيڪ ڇو رکان؟“، ”وڌ کان وڌيڪ ڳولڻ لاءِ مون کي الڳ ڳولا واري طريقي جي ضرورت ڇو آهي؟ عنصر هڪ صف ۾؟ اچو ته ان کي هتي رکون. ڪوڊ هن طريقي سان صاف ٿي ويندو" ۽ ٻيون اهڙيون غلط فهميون.

ھڪڙي ڊگھي طريقي کي ريفيڪٽر ڪرڻ لاء ٻه قاعدا آھن:

  1. جيڪڏهن توهان محسوس ڪيو ته هڪ تبصرو شامل ڪرڻ وقت هڪ طريقو لکڻ، توهان کي ڪارڪردگي کي الڳ طريقي سان رکڻ گهرجي.
  2. جيڪڏهن ڪو طريقو 10-15 کان وڌيڪ لائنون ڪوڊ وٺي ٿو، توهان کي انهن ڪمن ۽ ذيلي ڪمن جي نشاندهي ڪرڻ گهرجي جيڪي اهو انجام ڏئي ٿو ۽ ذيلي ڪمن کي الڳ طريقي سان رکڻ جي ڪوشش ڪريو.

ڊگھي طريقي کي ختم ڪرڻ لاء ڪجھ طريقا آھن:

  • طريقي جي ڪارڪردگي جو حصو الڳ طريقي سان منتقل ڪريو
  • جيڪڏهن مقامي متغير توهان کي ڪارڪردگي جي حصي کي منتقل ڪرڻ کان روڪيو، توهان سڄي اعتراض کي ٻئي طريقي سان منتقل ڪري سگهو ٿا.

ڪيترن ئي پراڻي ڊيٽا جي قسمن کي استعمال ڪندي

اهو مسئلو عام طور تي ٿئي ٿو جڏهن هڪ طبقي ۾ فيلڊ جو تعداد وقت سان وڌي ٿو. مثال طور، جيڪڏهن توهان هر شيءِ (ڪرنسي، تاريخ، فون نمبر، وغيره) کي ننڍين شين جي بدران ابتدائي قسمن يا مستقلن ۾ ذخيرو ڪريو ٿا. انهي صورت ۾، هڪ سٺو عمل اهو هوندو ته فيلڊ جي منطقي گروهه کي الڳ ڪلاس ۾ منتقل ڪيو وڃي (اقتباس ڪلاس). توھان ڊيٽا کي پروسيس ڪرڻ لاءِ ڪلاس ۾ طريقا پڻ شامل ڪري سگھو ٿا.

تمام گھڻا پيرا ميٽر

اهو هڪ عام غلطي آهي، خاص طور تي هڪ ڊگهو طريقو سان ميلاپ ۾. عام طور تي، اهو ٿئي ٿو جيڪڏهن هڪ طريقو تمام گهڻو ڪارڪردگي آهي، يا جيڪڏهن هڪ طريقو ڪيترن ئي الگورتھم کي لاڳو ڪري ٿو. پيرا ميٽرن جي ڊگھي لسٽن کي سمجھڻ تمام ڏکيو آھي، ۽ اھڙين لسٽن سان طريقن کي استعمال ڪرڻ مشڪل آھي. نتيجي طور، اهو بهتر آهي ته هڪ مڪمل اعتراض پاس ڪرڻ. جيڪڏهن هڪ اعتراض ڪافي ڊيٽا نه آهي، توهان کي وڌيڪ عام اعتراض استعمال ڪرڻ گهرجي يا طريقي جي ڪارڪردگي کي ورهائڻ گهرجي ته جيئن هر طريقو منطقي طور تي لاڳاپيل ڊيٽا کي پروسيس ڪري.

ڊيٽا جا گروپ

منطقي طور تي لاڳاپيل ڊيٽا جا گروپ اڪثر ڪري ڪوڊ ۾ ظاهر ٿيندا آهن. مثال طور، ڊيٽابيس ڪنيڪشن پيٽرولر (URL، يوزرنيم، پاسورڊ، اسڪيما جو نالو، وغيره). جيڪڏهن فيلڊ جي فهرست مان هڪ به فيلڊ ختم نه ٿي سگهي، ته پوءِ انهن فيلڊن کي الڳ ڪلاس (extract class) ۾ منتقل ڪيو وڃي.

حل جيڪي OOP اصولن جي ڀڃڪڙي ڪن ٿا

اهي "بوء" ٿينديون آهن جڏهن هڪ ڊولپر مناسب OOP ڊيزائن جي ڀڃڪڙي ڪري ٿو. اهو تڏهن ٿئي ٿو جڏهن هو يا هوءَ OOP صلاحيتن کي مڪمل طور تي نه سمجهي ۽ انهن کي مڪمل يا صحيح طريقي سان استعمال ڪرڻ ۾ ناڪام ٿئي.

وراثت استعمال ڪرڻ ۾ ناڪامي

جيڪڏھن ھڪڙو ذيلي ڪلاس صرف والدين طبقي جي ڪمن جو ھڪڙو ننڍڙو ذيلي سيٽ استعمال ڪري ٿو، پوء اھو غلط درجي جي بوء آھي. جڏهن اهو ٿئي ٿو، عام طور تي غير معمولي طريقا صرف ختم نه ڪيا ويا آهن يا اهي استثنا اڇلائي ڇڏيندا آهن. ھڪڙو طبقو وراثت ۾ ٻئي جو مطلب آھي ته ٻار ڪلاس تقريبن سڀني والدين طبقي جي ڪارڪردگي کي استعمال ڪري ٿو. هڪ صحيح درجه بندي جو مثال: جاوا ۾ ريفيڪٽرنگ ڪيئن ڪم ڪري ٿي - 2هڪ غلط درجه بندي جو مثال: جاوا ۾ ريفيڪٽرنگ ڪيئن ڪم ڪري ٿي - 3

بيان تبديل ڪريو

هڪ بيان سان ڇا غلط ٿي سگهي ٿو switch؟ اهو خراب آهي جڏهن اهو تمام پيچيده ٿي ويندو آهي. هڪ لاڳاپيل مسئلو nested ifبيانن جو هڪ وڏو تعداد آهي.

مختلف انٽرفيس سان متبادل ڪلاس

ڪيترائي طبقا ساڳيا ڪم ڪن ٿا، پر انهن جا طريقا مختلف نالا آهن.

عارضي ميدان

جيڪڏهن هڪ طبقي وٽ عارضي ميدان آهي ته ڪنهن شئي کي صرف ڪڏهن ڪڏهن ضرورت آهي جڏهن ان جي قيمت مقرر ڪئي وئي آهي، ۽ اهو خالي آهي، يا خدا نه ڪري، nullباقي وقت، پوء ڪوڊ بوندو آهي. اهو هڪ قابل اعتراض ڊزائن جو فيصلو آهي.

بوء جيڪي تبديل ڪرڻ ڏکيو ڪن ٿا

اهي بوء وڌيڪ سنجيده آهن. ٻيون بوء بنيادي طور تي ڪوڊ کي سمجهڻ ڏکيو بڻائي ٿو، پر اهي توهان کي ان کي تبديل ڪرڻ کان روڪيندا آهن. جڏهن توهان ڪا به نئين خاصيتون متعارف ڪرائڻ جي ڪوشش ڪندا آهيو، اڌ ڊولپرز ڇڏي ويندا آهن، ۽ اڌ چريو ٿي ويندا آهن.

متوازي وراثت وارو سلسلو

اهو مسئلو تڏهن ظاهر ٿئي ٿو جڏهن هڪ طبقي کي ذيلي ڪلاس ڪرڻ لاءِ توهان کي مختلف طبقي لاءِ ٻيو ذيلي ڪلاس ٺاهڻ جي ضرورت آهي.

هڪجهڙائي سان ورهايل انحصار

ڪنهن به تبديليءَ لاءِ توهان کي ڪلاس جي سڀني استعمالن (انحصارن) کي ڳولڻ جي ضرورت آهي ۽ تمام گهڻيون ننڍيون تبديليون ڪرڻ گهرجن. ھڪڙي تبديلي - ڪيترن ئي طبقن ۾ تبديليون.

تبديليءَ جو پيچيده وڻ

هي بوء پوئين هڪ جي ابتڙ آهي: تبديليون هڪ طبقي ۾ وڏي تعداد ۾ طريقن کي متاثر ڪن ٿا. ضابطي جي طور تي، اهڙي ڪوڊ کي cascading انحصار آهي: هڪ طريقي کي تبديل ڪرڻ جي ضرورت آهي ته توهان کي ڪنهن ٻئي ۾ ڪجهه درست ڪرڻ جي ضرورت آهي، ۽ پوء ٽيون ۽ پوء تي. ھڪڙو طبقو - ڪيتريون ئي تبديليون.

”ڪچري جي بوءِ“

بدبوءَ جو هڪ بدران اڻ وڻندڙ ​​قسم جيڪو سر درد جو سبب بڻجندو آهي. بيڪار ، غير ضروري ، پراڻو ڪوڊ. خوشقسمتيءَ سان، جديد IDEs ۽ linters سکي ويا آهن ته اهڙي خوشبوءَ کان ڊيڄارين.

ھڪڙي طريقي سان تبصرن جو ھڪڙو وڏو تعداد

ھڪڙو طريقو تقريبا ھر لائن تي تمام گھڻو وضاحتي تبصرو آھي. اهو عام طور تي هڪ پيچيده الگورتھم جي ڪري آهي، تنهنڪري اهو بهتر آهي ته ڪوڊ کي ڪيترن ئي ننڍن طريقن ۾ ورهايو وڃي ۽ انهن کي وضاحتي نالا ڏيو.

نقل ٿيل ڪوڊ

مختلف طبقن يا طريقا استعمال ڪن ٿا ساڳيا بلاڪ ڪوڊ جا.

سست ڪلاس

ھڪڙو طبقو تمام ٿورڙي ڪارڪردگي تي وٺندو آھي، جيتوڻيڪ اھو وڏو ٿيڻ جي رٿابندي ڪئي وئي ھئي.

اڻ استعمال ٿيل ڪوڊ

هڪ ڪلاس، طريقو يا متغير ڪوڊ ۾ استعمال نه ڪيو ويو آهي ۽ مرده وزن آهي.

زيادتي رابطي

odors جي هن درجي جي ڪوڊ ۾ غير منصفانه رشتا جي هڪ وڏي تعداد جي characterized آهي.

خارجي طريقا

هڪ طريقو ڪنهن ٻئي شئي مان ڊيٽا استعمال ڪري ٿو گهڻو ڪري پنهنجي ڊيٽا کان.

نامناسب قربت

هڪ طبقي جو دارومدار ٻئي طبقي جي عمل درآمد جي تفصيل تي آهي.

ڊگهو ڪلاس ڪالون

هڪ طبقو ٻئي کي سڏي ٿو، جيڪو ٽئين کان ڊيٽا جي درخواست ڪري ٿو، جيڪو چوٿين کان ڊيٽا حاصل ڪري ٿو، وغيره. ڪالن جي اهڙي ڊگهي زنجير جو مطلب آهي موجوده طبقاتي ڍانچي تي اعليٰ انحصار.

ٽاسڪ ڊيلر ڪلاس

ھڪڙي ڪلاس جي ضرورت آھي صرف ھڪڙي ڪم کي ٻئي طبقي ڏانھن موڪلڻ لاءِ. ٿي سگهي ٿو ته ان کي ختم ڪرڻ گهرجي؟

Refactoring ٽيڪنڪ

هيٺ اسان بنيادي ريفيڪٽرنگ ٽيڪنڪ تي بحث ڪنداسين جيڪي بيان ڪيل ڪوڊ بوء کي ختم ڪرڻ ۾ مدد ڪري سگھن ٿيون.

ڪلاس ڪڍو

ھڪڙو ڪلاس تمام گھڻن ڪمن کي انجام ڏئي ٿو. انهن مان ڪجهه کي ڪنهن ٻئي طبقي ڏانهن منتقل ڪيو وڃي. مثال طور، فرض ڪريو اسان وٽ ھڪڙو Humanڪلاس آھي جيڪو گھر جي ايڊريس کي پڻ ذخيرو ڪري ٿو ۽ ھڪڙو طريقو آھي جيڪو پورو پتو موٽائي ٿو:
class Human {
    private String name;
    private String age;
    private String country;
    private String city;
    private String street;
    private String house;
    private String quarter;

    public String getFullAddress() {
        StringBuilder result = new StringBuilder();
        return result
                        .append(country)
                        .append(", ")
                        .append(city)
                        .append(", ")
                        .append(street)
                        .append(", ")
                        .append(house)
                        .append(" ")
                        .append(quarter).toString();
    }
 }
ايڊريس جي معلومات ۽ لاڳاپيل طريقو (ڊيٽا پروسيسنگ رويي) کي الڳ ڪلاس ۾ رکڻ لاءِ اهو سٺو عمل آهي:
class Human {
   private String name;
   private String age;
   private Address address;

   private String getFullAddress() {
       return address.getFullAddress();
   }
}
class Address {
   private String country;
   private String city;
   private String street;
   private String house;
   private String quarter;

   public String getFullAddress() {
       StringBuilder result = new StringBuilder();
       return result
                       .append(country)
                       .append(", ")
                       .append(city)
                       .append(", ")
                       .append(street)
                       .append(", ")
                       .append(house)
                       .append(" ")
                       .append(quarter).toString();
   }
}

هڪ طريقو ڪڍيو

جيڪڏهن هڪ طريقي ۾ ڪجهه ڪارڪردگي آهي جيڪا الڳ ٿي سگهي ٿي، توهان کي ان کي الڳ طريقي سان رکڻ گهرجي. مثال طور، هڪ طريقو جيڪو حساب ڪري ٿو هڪ quadratic مساوات جي جڙ:
public void calcQuadraticEq(double a, double b, double c) {
    double D = b * b - 4 * a * c;
    if (D > 0) {
        double x1, x2;
        x1 = (-b - Math.sqrt(D)) / (2 * a);
        x2 = (-b + Math.sqrt(D)) / (2 * a);
        System.out.println("x1 = " + x1 + ", x2 = " + x2);
    }
    else if (D == 0) {
        double x;
        x = -b / (2 * a);
        System.out.println("x = " + x);
    }
    else {
        System.out.println("Equation has no roots");
    }
}
اسان ٽن ممڪن اختيارن مان هر هڪ کي الڳ الڳ طريقن سان ڳڻيو ٿا:
public void calcQuadraticEq(double a, double b, double c) {
    double D = b * b - 4 * a * c;
    if (D > 0) {
        dGreaterThanZero(a, b, D);
    }
    else if (D == 0) {
        dEqualsZero(a, b);
    }
    else {
        dLessThanZero();
    }
}

public void dGreaterThanZero(double a, double b, double D) {
    double x1, x2;
    x1 = (-b - Math.sqrt(D)) / (2 * a);
    x2 = (-b + Math.sqrt(D)) / (2 * a);
    System.out.println("x1 = " + x1 + ", x2 = " + x2);
}

public void dEqualsZero(double a, double b) {
    double x;
    x = -b / (2 * a);
    System.out.println("x = " + x);
}

public void dLessThanZero() {
    System.out.println("Equation has no roots");
}
هر طريقي جو ڪوڊ تمام ننڍو ۽ سمجھڻ آسان ٿي ويو آهي.

هڪ سڄي شئي کي پاس ڪرڻ

جڏهن هڪ طريقو پيٽرولر سان سڏيو ويندو آهي، توهان ڪڏهن ڪڏهن هن طرح ڪوڊ ڏسي سگهو ٿا:
public void employeeMethod(Employee employee) {
    // Some actions
    double yearlySalary = employee.getYearlySalary();
    double awards = employee.getAwards();
    double monthlySalary = getMonthlySalary(yearlySalary, awards);
    // Continue processing
}

public double getMonthlySalary(double yearlySalary, double awards) {
     return (yearlySalary + awards)/12;
}
ھن employeeMethod۾ 2 پوريون لائينون آھن جيڪي قدر حاصل ڪرڻ لاءِ وقف ڪيون ويون آھن ۽ انھن کي ابتدائي متغيرن ۾ محفوظ ڪيون ويون آھن. ڪڏهن ڪڏهن اهڙيون اڏاوتون 10 لائينون وٺي سگهن ٿيون. اهو تمام آسان آهي اعتراض پاڻ کي پاس ڪرڻ ۽ ضروري ڊيٽا ڪڍڻ لاءِ استعمال ڪريو:
public void employeeMethod(Employee employee) {
    // Some actions
    double monthlySalary = getMonthlySalary(employee);
    // Continue processing
}

public double getMonthlySalary(Employee employee) {
    return (employee.getYearlySalary() + employee.getAwards())/12;
}

سادو، مختصر ۽ مختصر.

منطقي طور تي فيلڊن کي گروپ ڪرڻ ۽ انهن کي الڳ ڪرڻ سان classDespiteحقيقت اها آهي ته مٿي ڏنل مثال ڏاڍا سادا آهن، ۽ جڏهن توهان انهن کي ڏسندا، توهان مان ڪيترائي پڇندا، "هي ڪير ڪري ٿو؟"، ڪيترائي ڊولپر لاپرواهي جي ڪري اهڙيون ساختي غلطيون ڪندا آهن، ڪوڊ کي ريفيڪٽر ڪرڻ جي خواهش، يا صرف "اهو ڪافي سٺو آهي" جو رويو.

ڇو refactoring اثرائتو آهي

سٺي ريفيڪٽرنگ جي نتيجي ۾، هڪ پروگرام کي پڙهڻ ۾ آسان ڪوڊ آهي، ان جي منطق کي تبديل ڪرڻ جو امڪان خوفناڪ نه آهي، ۽ نئين خاصيتن کي متعارف ڪرائڻ ڪوڊ تجزيه دوزخ نه بڻجي ٿو، پر ان جي بدران ڪجهه ڏينهن لاء هڪ خوشگوار تجربو آهي. . توهان کي ريفيڪٽر نه ڪرڻ گهرجي جيڪڏهن اهو شروع کان پروگرام لکڻ آسان هوندو. مثال طور، فرض ڪريو ته توهان جي ٽيم اندازو لڳائي ٿي ته سمجھڻ، تجزيو ڪرڻ ۽ ريفيڪٽر ڪوڊ لاءِ گهربل محنت ساڳي ڪارڪردگي کي شروع کان لاڳو ڪرڻ کان وڌيڪ هوندي. يا جيڪڏهن ڪوڊ ريفيڪٽر ڪيو وڃي ته تمام گهڻا مسئلا آهن جن کي ڊيبگ ڪرڻ ڏکيو آهي. ڄاڻڻ ضروري آهي ته ڪوڊ جي جوڙجڪ کي ڪيئن بهتر بڻايو وڃي هڪ پروگرامر جي ڪم ۾. ۽ جاوا ۾ پروگرام ڪرڻ جي سکيا CodeGym تي بهترين ڪئي وئي آهي، آن لائن ڪورس جيڪو مشق تي زور ڏئي ٿو. تڪڙي تصديق سان 1200+ ڪم، اٽڪل 20 مني پروجيڪٽ، گيم ٽاسڪ- هي سڀ توهان کي ڪوڊنگ ۾ اعتماد محسوس ڪرڻ ۾ مدد ڏيندو. شروع ڪرڻ جو بهترين وقت هاڻي آهي :)

ريفيڪٽرنگ ۾ پاڻ کي وڌيڪ وسارڻ جا وسيلا

Refactoring تي سڀ کان مشهور ڪتاب "Refactoring. Improving the Design of Existing Code" آهي مارٽن فولر جو. ريفيڪٽرنگ جي باري ۾ پڻ هڪ دلچسپ اشاعت آهي، جيڪو هڪ پوئين ڪتاب تي ٻڌل آهي: جوشوا ڪيريفسڪي طرفان "ريفيڪٽرنگ استعمال ڪندي نمونن". نمونن جي ڳالهه ڪندي... جڏهن ريفيڪٽرنگ، بنيادي ڊيزائن جي نمونن کي ڄاڻڻ هميشه تمام مفيد آهي. هي شاندار ڪتاب هن ۾ مدد ڪندا: نمونن جي ڳالهه ڪندي... جڏهن ريفيڪٽرنگ، بنيادي ڊيزائن جي نمونن کي ڄاڻڻ هميشه تمام مفيد آهي. اهي بهترين ڪتاب هن ۾ مدد ڪندا:
  1. "ڊزائن جا نمونا" ايريڪ فريمين، ايلزبيٿ رابسن، ڪيٿي سيرا، ۽ برٽ بيٽس پاران، هيڊ فرسٽ سيريز مان
  2. "پڙهڻ جي قابل ڪوڊ جو آرٽ" Dustin Boswell ۽ Trevor Foucher پاران
  3. Steve McConnell پاران "ڪوڊ مڪمل"، جيڪو خوبصورت ۽ خوبصورت ڪوڊ لاءِ اصول بيان ڪري ٿو.
تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION