JavaRush /جاوا بلاگ /Random-SD /رابرٽ مارٽن، صاف ڪوڊ. ڊولپرز لاءِ ”ڪنگ فو ڪوڊ“ تي ڪتاب جو...
Artem Murk
سطح
Днепр

رابرٽ مارٽن، صاف ڪوڊ. ڊولپرز لاءِ ”ڪنگ فو ڪوڊ“ تي ڪتاب جو جائزو

گروپ ۾ شايع ٿيل
هيلو Javarashevites! هي مضمون رابرٽ مارٽن جي ڪتاب ”ڪلين ڪوڊ“ جو جائزو آهي. گڏو گڏ اسان توهان جي ڪوڊ کي بهتر ۽ بهتر ڪرڻ جا طريقا ڏسنداسين، ۽ آخر ۾ هڪ ننڍڙو پر دلچسپ ڪم توهان جو انتظار ڪري رهيو آهي.
"صاف ڪوڊ" رابرٽ مارٽن پاران.  ڊولپرز لاءِ ”ڪنگ فو ڪوڊ“ تي ڪتاب جو جائزو - 1
هر روز، جڏهن اسان توهان جي ڪوڊ ايڊيٽر کي کوليو ٿا، اسان کي ڪيترن ئي طبقن، افعال ۽ متغيرن سان منهن ڏيڻو پوندو. بهترين اختيار اهو آهي ته جيڪڏهن هي توهان جو ڪوڊ شروع کان لکيو ويو آهي، هڪ ڀيرو لکيو ويو آهي، ان ۾ ڪجهه سٽون آهن، توهان ان تي اڪيلو ڪم ڪري رهيا آهيو، ڪا به ترميم ناهي ۽ ڪسٽمر کان وڌيڪ مدد نه آهي. پر! جيئن ته مشق ڏيکاري ٿو، ها، مان سمجهان ٿو ته توهان پاڻ کي سمجهو ٿا ته اهو نه ٿيندو. بنيادي طور تي، اسان کي ڪنهن نه ڪنهن طرح پنهنجي ٽيم جي ميمبرن سان رابطو ڪرڻو پوندو، ”هندو“ ڪوڊ برقرار رکڻو پوندو، ۽ مصنوعات کي لکين لائينن ۾ پارس ڪرڻو پوندو. مون اڪثر پنهنجن تربيتي ساٿين کان هن قسم جا جواب ٻڌا آهن: ”هي ڪوڊ مون لکيو آهي، ۽ مان اهو ڪنهن کي به ڏيکارڻ وارو ناهيان،“ پر جڏهن مان ڏسندو آهيان ته هيلپ فار هيلپ تي درخواستون اهڙيون ڪوڊ سان، اهو تمام ڊگهو وقت وٺندو آهي. وقت (ڪڏهن ڪڏهن واقعي هڪ ڊگهو وقت) اهو سمجهڻ ۽ سمجهڻ لاءِ ته ماڻهو مون کي ڇا ٻڌائڻ چاهي ٿو، مان به اهو چوڻ چاهيان ٿو ته ”مٽايو ۽ ٻيهر لکو“! انهن ماڻهن جي وقت ۽ توانائي جو قدر ڪريو جيڪي توهان جي مدد ڪرڻ چاهيندا آهن، صحيح لکڻ، ۽ جيڪڏهن توهان نٿا ڄاڻو ته ڪيئن، اهو سکڻ ۾ ڪڏهن به دير نه ڪئي وئي آهي. رابرٽ مارٽن جو ڪتاب هن فارميٽ جي ڪتابن مان بيٺو آهي ان ۾ جاوا ۾ ڪيترائي مثال آهن. ٿي سگهي ٿو ته اهو منهنجي طرف کان ٿورو فڪري بيان هجي، پر اهو OOP انداز ۾ لکيو ويو آهي، يعني حصن ۽ حصن جي لکڻين ۾. سمجھڻ ۽ پڙھڻ ۾ آسان، ڪتاب پڙھڻ ۾ آسان آھي يا شام جو سمهڻ کان اڳ. صاف ڪوڊ 3 حصن ۾ ورهايل آهي. پهرين حصي ۾، اسان کي ڪتاب جي نظريي جي ذريعي وڃڻ لاء چيو ويو آهي، ڊزائن جي نمونن ۽ سٺي آداب جي ضابطن بابت ڄاڻو. ٻيو حصو اسان کي ريفيڪٽرنگ ۽ لکڻ جي مشق ڪرڻ جي دعوت ڏئي ٿو، ۽ ٽيون حصو مثالن ۾ ڪوڊ "بوء" جو آخري خلاصو آهي. خير، ليکڪ ڪيترن ئي عنوانن کي ڇڪيو آهي جن لاءِ توهان کي خاص طور تي جاوا ڪور جي ڄاڻ جي ضرورت پوندي، پر اتي پڻ سيڪشن آهن وقف ٿيل JUnit يونٽ ٽيسٽ، Log4j لاگنگ، ڊيزائن ۾ آسان نمونن جي ڄاڻ (پر جيئن مون مٿي چيو، اتي موجود ناهي. انھن مان گھڻا، ۽ سڀ ڪجھ سمجھ ۾ نہ اچي سگھي ٿي ڪاميابيءَ سان گوگل ڪري سگھجي ٿو، ھائو ۽ ان جو تجزيو ڪندي JavaRush ڪورس ۾). ڪتاب جا سڀئي باب هڪ ٻئي سان لاڳاپيل نه آهن؛ توهان ڪاميابيءَ سان پڙهڻ شروع ڪري سگهو ٿا ان باب مان جيڪو توهان چاهيو ٿا. مکيه خيالن جو مختصر خلاصو جيڪو مون ڪتاب مان کنيو آهي. مان انهن تي توهان جي تبصرن لاء شڪرگذار ٿيندس، جن ۾ توهان انهن بيانن جي پنهنجي نظر کي حصيداري ڪري سگهو ٿا.

1. تبصرو == بڇڙو.

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

2. تبصرو ڪوڊ، مئل ڪوڊ.

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

3. طريقن، طبقن ۽ متغيرن جا عنوان.

اهو هن موضوع تي بحث ڪرڻ لاء الڳ مضمون جي لائق آهي. سست نه ٿيو ۽ نالا لکو جيڪي انهن جي مقصد بابت ٻڌائي سگهن. اسپيلنگ جي عنوانن ۾ ڪجهه معيار سکو. هي موضوع تفصيلي مطالعي لاءِ ”لازمي هئڻ“ آهي.

4. هر طريقو ۽ variable پنهنجي جاءِ آهي ڪلاس هيرارڪي ۾.

عام طور تي، هڪ طبقي ۾ متغير ۽ طريقا ٿي سگهن ٿا (جامد ۽ غير جامد)، هڪ تعمير ڪندڙ، اندريون ۽ اندروني طبقن، ۽ اينيم. مختصر ۾، اتي تمام گهڻو معلومات آهي، ۽ اهو ضروري آهي ته ڪلاس ۾ هر ڪنهن جي جڳهه کي طئي ڪرڻ لاء. جيڪڏهن توهان جاوا ڪور ڪلاسز تي نظر وجهو ته توهان ڏسندا ته ڍانچي واضح طور تي ٺهيل آهي، اسان هر هڪ حصي کي ان جي جاءِ تي ڏسي سگهون ٿا، يقيناً توهان جي پروجيڪٽ ۾ اهو پراجيڪٽ ۾ تبديل ٿي سگهي ٿو، پر هر ڪلاس ۾ نه. پنھنجي لاءِ، مون ھيٺ ڏنل تعميراتي ڍانچي جي وضاحت ڪئي آھي: ڪلاس جي شروعات ۾ مون وٽ جامد متغير آھن، پوءِ اعتراض متغير + Enums جيڪڏھن اھي موجود آھن. متغيرن کان پوء، مان وضاحت ڪريان ٿو ڪلاس تعمير ڪندڙ. پوء آئون ڪلاس سان ڪم ڪرڻ جا طريقا لکندو آهيان. طريقن کان پوء مون کي getters ۽ setters لکندا. ۽ آخر ۾ مون وٽ اندروني طبقا آهن. توھان استعمال ڪري سگھو ٿا منھنجي ڍانچي کي يا پنھنجي راءِ ۾ لکي سگھوٿا.

5. طريقن جي تجريد جي سطح.

منهنجي لاءِ اها دريافت نمبر 1 هئي. هر طريقي ۾ آپريٽرز شامل آهن صرف هڪ سطح تي تجريد. توهان کي ملائي سطحي عملن کي گڏ نه ڪرڻ گهرجي.

6. نقص سنڀالڻ.

چيڪ ٿيل يا اڻ چيڪ ٿيل استثنا، جيڪو پروجيڪٽ ۾ استعمال ڪرڻ بهتر آهي (توهان ڇا ٿا سوچيو؟، تبصرو لکو)؟ مان چيڪ ٿيل جو حامي آهيان، پر ڪتاب ٻاهران اڻ چيڪ ٿيل استثناءَ کي ڏسڻ ۾ مدد ڪري ٿو. درحقيقت، اڻ چيڪ ٿيل استثنا طريقي جي دستخط کي خراب نٿو ڪري، خاص طور تي غور ڪندي ته استثنا "پيئرس" ڪيترن ئي تہن کي هڪ ئي وقت ۾. ننڍڙي تبديلي جي تڪليف ان کي پڪڙڻ کان اڳ طريقن جي پوري زنجير جي ٻيهر تعريف جي ڪري ٿي، جيڪا ڪيترن ئي ڪيسن ۾ ترقي لاء انتهائي مشڪل آهي.

7. ڪوڊ فارميٽ.

صحيح طريقي سان فارميٽ ٿيل ڪوڊ نه رڳو صاف، پر انتهائي پڙهيل به آهي. توهان فوري طور تي بریکٹ ۽ اندر جي عملن جو هڪ خيال حاصل ڪريو. حالتن جو مثال استعمال ڪندي if، else constructs، توھان کي سڀڪنھن شيءِ کي ھڪڙي لڪير ۾ نه لکڻ گھرجي، اھو بھتر آھي ته ڊگھي زنجيرن کي ھلايو وڃي.

8. حالت ۾ منفي.

حالتن ۾ انڪار کان پاسو ڪرڻ جي ڪوشش ڪريو، هي هڪ نفسياتي عنصر آهي، اسان جو دماغ انڪار کي چڱيءَ طرح نٿو سمجهي، ۽ ها! ان کان اڳ جو اظهار نظر نٿو اچي. مثال طور، نفي ڪرڻ جيڪڏهن (!condition.isTrue) طريقي کي ٻيهر لکڻ لاءِ بهتر آهي، اهو ان کي وڌيڪ آسان بڻائي ڇڏيندو جيئن (condition.isFalse)

9. ڪمن کي ھڪڙي آپريشن ڪرڻ گھرجي.

جيڪڏهن توهان جو طريقو ڪيترن ئي عملن کي انجام ڏئي ٿو، پوء انهن کي اڪيلو آپريشن جي طريقن ۾ ورهايو. اهي طريقا سپورٽ ڪرڻ ۾ تمام آسان آهن، جانچڻ ۾ آسان، ۽، جيڪڏهن ضروري هجي ته، تبديل ٿيل يا هٽايو وڃي.

10. پنهنجو پاڻ کي نه ورجايو.

DRY ڪوڊ نه ورجايو (پاڻ کي نه ورجايو). اھو ھڪڙو بنيادي قاعدو آھي جيڪو توھان جي ڪوڊ کي خاص طور تي گھٽائي ڇڏيندو، ان کي ذهن ۾ رکو. ڪوشش ڪريو توھان جي بار بار ڪوڊ جا سڀئي ٽڪرا الڳ فنڪشن ۾. يقينن، اسان DRY، KISS (ان کي سادي بيوقوف رکو)، سولڊ ، يگني بابت گهڻو ڪجهه ڳالهائي سگهون ٿا. اھي اصطلاح سمجھڻ ۽ ٺاھڻ لاءِ ضروري آھن. اهي هڪ الڳ مضمون جي لائق آهن، شايد آئون انهن جي باري ۾ ٻيهر لکندس، ڇاڪاڻ ته هي مضمون ڪتاب "صاف ڪوڊ" جي نظرثاني لاء وقف آهي.
"صاف ڪوڊ" رابرٽ مارٽن پاران.  ڊولپرز لاءِ ”ڪنگ فو ڪوڊ“ تي ڪتاب جو جائزو - 2
جيئن واعدو ڪيو ويو، توهان لاء هڪ ننڍڙو ۽ آسان ڪم. پروگرام کي ڏنل ڊيٽا جي بنياد تي ٿلهي واري انڊيڪس کي ڳڻڻ گهرجي. تبصرن ۾ لکو غلطين جو تعداد ۽ درست ڪريو ڪوڊ ۾. P.S. ڪوڊ ڪم ڪري رهيو آهي ۽ ان جي ڪم کي انجام ڏئي ٿو جيڪڏهن صحيح طور تي استعمال ڪيو وڃي.
//Weight in kg.
//Height in metres.
public class sample {
    public static void main (String[] args) {
        humanIMB humanIMB = new humanIMB(80,1.52);
        System.out.println(humanIMB.Result());
    }
}
class humanIMB {
    public double W; //Weight Human
    public double H; // Height Human
    private static double imb;
    public humanIMB(double w, double h) {
        W = w;
        H = h;
        imb = W / (H * H);
    }
    public double takeW() {
        return W;
    }
    public void putW(double w) {
        W = w;
        imb = W / (H * H);
    }
    public double takeH() {
        return H;
    }
    public void putH(double h) {
        H = h;
        imb = W / (H * H);
    }
    public static double takeImt() {
        return imb;
    }
    public static String Result() {
        String  string = null;
        if (imb >=18.5 & imb <25) {
            string ="Норма, ты в форме!";
        }
        if (imb >=25 & imb <30) {
            string ="Предожирение. Эй, поосторожнее с пирожными ";
        }
        if (imb >=30) {
            string ="Ожирение. SCHWEINE! Хватит жрать, иди на треню!";
        }
        if (imb <18.5) {
            string ="Дефицит массы тела. В модели решил переквалифицироваться?";
        }
        return string;
    }
}
تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION