JavaRush /Java blogi /Random-UZ /Intellij IDEA-da disk raskadrovka: yangi boshlanuvchilar ...

Intellij IDEA-da disk raskadrovka: yangi boshlanuvchilar uchun qo'llanma

Guruhda nashr etilgan
Hammaga salom, JavaRush jamoasi. Bugun biz disk raskadrovka haqida gaplashamiz: bu nima va Intellij IDEA-da qanday disk raskadrovka qilish kerak. Intellij IDEA-da disk raskadrovka: yangi boshlanuvchilar uchun qo'llanma - 1Maqola Java Core haqida minimal ma'lumotga ega bo'lgan odamlar uchun mo'ljallangan. Kutubxonalarni nashr qilish uchun ramkalar yoki murakkab jarayonlar bo'lmaydi. Oson yurish. Shunday qilib, o'zingizni qulay his qiling va boshlaylik!

Nima uchun Debug kerak?

Keling, darhol aniqlik kiritaylik: xatosiz kod yo'q ... Hayot shunday ishlaydi. Shuning uchun, agar kod biz kutgandek ishlamasa, biz darhol oqsoqlanmasligimiz va hamma narsadan voz kechmasligimiz kerak. Intellij IDEA-da disk raskadrovka: yangi boshlanuvchilar uchun qo'llanma - 2Lekin nima qilish kerak? Albatta, System.out.printlniloji boricha ko'rsatma berishingiz va keyin xato topasiz degan umidda terminaldagi chiqishni ko'rib chiqishingiz mumkin. Shunday bo'lsa-da, bu mumkin ... va ular buni qiladilar va ular buni jurnallar yordamida ehtiyotkorlik bilan bajaradilar (bu haqda bu erda o'qishingiz mumkin ). Ammo agar kodni mahalliy mashinada ishga tushirish mumkin bo'lsa, Debug dan foydalanish yaxshidir . Darhol shuni ta'kidlashni istardimki, ushbu maqolada biz Intellij IDEA ichidagi loyihani disk raskadrovka qilishni ko'rib chiqamiz. Agar siz masofaviy disk raskadrovka haqida o'qishga qiziqsangiz, bu erda bizning resursimizdagi maqola .

Debug nima

Intellij IDEA-da disk raskadrovka: yangi boshlanuvchilar uchun qo'llanma - 3Nosozliklarni tuzatish - bu kodni tuzatish (tekshirish) jarayoni bo'lib, uni bajarish paytida siz belgilangan joyda to'xtashingiz va bajarilish jarayonini kuzatishingiz mumkin. Muayyan joyda dasturning holatini tushuning. Bu xuddi hayotni to'xtatib, hamma narsaga tashqaridan qarashga o'xshaydi. Ajoyib, to'g'rimi? Bizning maqsadimiz - Intellij IDEA-dan foydalanib ilovalarni disk raskadrovka qilishni tez va oson o'rganishdir.

Nosozliklarni tuzatishni boshlash uchun nima kerak

Men bepul maslahat beraman: maqolani o'qiyotganingizda, bu erda tasvirlangan hamma narsani bajaring, xayriyatki, buning uchun hamma narsa mavjud. Nima kerak:
  1. Intellij IDEA ishlab chiqish muhiti versiyasi 2019.3.1 va undan yuqori. Agar kimdirda yo'q bo'lsa, uni yuklab olishingiz mumkin bo'lgan havola . Jamiyat nashrini yuklab oling, chunki men bundan foydalanaman.
  2. Loyihani GitHub'dan klonlash va IDEA orqali import qilish.
IDEA-ni oching: disk raskadrovka-taqdimotIntellij IDEA-da disk raskadrovka: yangi boshlanuvchilar uchun qo'llanma - 4 loyihasini tanlang , OK ni bosing va oling: Tashqi manbalardan import loyihasini qoldiring , Maven va Finish tugmasini bosing . Loyihani import qilib, biz jonli misol yordamida jarayonni tasvirlashimiz mumkin. Intellij IDEA-da disk raskadrovka: yangi boshlanuvchilar uchun qo'llanma - 5

Bir oz nazariya ... Men va'da beraman: D

Nosozliklarni tuzatishni biroz boshlash uchun siz breakPoint nima ekanligini tushunishingiz va boshlashingiz kerak bo'lgan bir nechta tezkor tugmalarni tushunishingiz kerak. BreakPoint - bu ilova to'xtatilishi kerak bo'lgan joy yoki holatni ko'rsatadigan maxsus marker. To'xtash nuqtasini chap yon panelda sichqonchaning chap tugmachasini bosish yoki kod joylashgan joyni bosish va Ctrl + F8 tugmalarini bosib o'rnatishingiz mumkin . To'xtash nuqtalari uch xil bo'ladi: chiziq belgisi, o'zgaruvchan belgi va usul belgisi. Bu shunday ko'rinadi:
  • Har bir qator:

    Intellij IDEA-da disk raskadrovka: yangi boshlanuvchilar uchun qo'llanma - 6

    agar ifodada lambda bo'lsa, IDEA sizga tanlovni taklif qiladi - ifodani butun qatorga yoki aniqrog'i lambdaga qo'yish:

    Intellij IDEA-da disk raskadrovka: yangi boshlanuvchilar uchun qo'llanma - 7
  • Usul bo'yicha:

    Intellij IDEA-da disk raskadrovka: yangi boshlanuvchilar uchun qo'llanma - 8
  • Har bir sinf uchun

    Intellij IDEA-da disk raskadrovka: yangi boshlanuvchilar uchun qo'llanma - 9
To'xtash nuqtalari ularni qo'shish bilan bir xil amallarni bajarish orqali olib tashlanishi mumkin. Ularni faolsizlantirish kerak bo'lgan holatlar mavjud (ovozsiz). Buni amalga oshirish uchun Nosozliklarni tuzatish bo'limida siz Intellij IDEA-da disk raskadrovka: yangi boshlanuvchilar uchun qo'llanma - 10barcha to'xtash nuqtalarini nofaol qiladigan belgini topishingiz mumkin. Qaysi to'xtash nuqtalari allaqachon o'rnatilganligini ko'rish uchun pastki chap burchakdagi Nosozliklarni tuzatish bo'limiga o'ting va belgini toping Intellij IDEA-da disk raskadrovka: yangi boshlanuvchilar uchun qo'llanma - 11yoki Ctrl+Shift+F8 tugmalarini bosing : Intellij IDEA-da disk raskadrovka: yangi boshlanuvchilar uchun qo'llanma - 12To'xtash nuqtalari ro'yxatiga o'tganimizda, biz quyidagilarni ko'ramiz: Intellij IDEA-da disk raskadrovka: yangi boshlanuvchilar uchun qo'llanma - 13Ikkita preakpoints mavjud. Bu yerga:
  • Bee.java:24 - 24-qatordagi Bee sinfida
  • Main.java:14 - 14-qatordagi Asosiy sinfda
Shuni ta'kidlashni istardimki, loyihani klonlashda sizda bunday BreakPoints bo'lmaydi: ularni o'zingiz o'rnatishingiz kerak! Bundan tashqari , Java Exception Breakpoints bo'limi mavjud . Juda foydali narsa. Undan foydalanib, dastur biron bir istisno yoki ma'lum bir narsani tashlashdan oldin to'xtab qolishi uchun yashirin to'xtash nuqtasini qo'shishingiz mumkin. Keling, RuntimeException uchun yashirin to'xtash nuqtasini qo'shamiz. Bu osonlik bilan amalga oshiriladi: yuqori chap burchakda "+" ortiqcha belgisi mavjud. Unga bosing va Java Exceptions Breakpoints-ni tanlang : Intellij IDEA-da disk raskadrovka: yangi boshlanuvchilar uchun qo'llanma - 14Ko'rsatilgan oynada qo'shilishi kerak bo'lgan istisno nomini yozing, taklif qilingan ro'yxatdan tanlang va OK tugmasini bosing : Intellij IDEA-da disk raskadrovka: yangi boshlanuvchilar uchun qo'llanma - 15Ushbu ta'lim dasturini tugatamiz va amaliyotga o'tamiz.

Kelinglar, disk raskadrovkaning yovvoyi joylariga o'taylik

Intellij IDEA-da disk raskadrovka: yangi boshlanuvchilar uchun qo'llanma - 16Men irsiy asalarichi bo'lganim uchun, disk raskadrovka taqdimoti uchun asalarilar tomonidan nektar yig'ish, nektarni asalga qayta ishlash va uyadan asal olish jarayonini tasvirlaydigan loyiha yaratdim. Loyihaning ildizida joylashgan README faylining hujjatlariga asoslanib , biz quyidagilarni o'qiymiz: kutilgan xatti-harakatlar - nektar yig'iladigan barcha gullardan ( ikki barobar qiymat sifatida) asalning yarmiga teng miqdorda asal yig'iladi. yig'ilgan nektar. Loyihada quyidagi sinflar mavjud:
  • Bee - oddiy ishchi ari;
  • BeeQueen - malika ari;
  • BeeHive - asalari uyasi;
  • HoneyPlant - asal yig'iladigan asal o'simlik;
  • Asosiy - public static void main()loyiha boshlanadigan usul qaerda joylashgan.
Agar siz usulni ishga tushirsangiz main(), u nafaqat asal miqdori hisoblanmaydi, balki xato ham paydo bo'ladi ... Intellij IDEA-da disk raskadrovka: yangi boshlanuvchilar uchun qo'llanma - 17U erda nima noto'g'ri ekanligini ko'rishingiz kerak. Pastki o'ng burchakdagi stek izidan biz HoneyPlant.java:20, da RuntimeException tashlanganligini ko'rishimiz mumkin: Intellij IDEA-da disk raskadrovka: yangi boshlanuvchilar uchun qo'llanma - 18Bu aynan bizning holatimiz: RuntimeException mavjud, keling, yuqorida tavsiflanganidek, bunday istisno uchun qidiruvni qo'shamiz va main()usulni ishga tushiramiz. disk raskadrovka rejimi. Buni amalga oshirish uchun Intellij IDEA-dagi yashil uchburchak o'qni usuldan oldin bosing main(): Intellij IDEA-da disk raskadrovka: yangi boshlanuvchilar uchun qo'llanma - 19va biz ushbu belgi bilan istisno ishga tushirilgunga qadar to'xtatilgan dasturni olamiz.To'liq Intellij IDEA-da disk raskadrovka: yangi boshlanuvchilar uchun qo'llanma - 20Intellij IDEA-da disk raskadrovka: yangi boshlanuvchilar uchun qo'llanma - 21ma'lumot olish uchun Nosozliklarni tuzatish bo'limiga qarash kerak. U ilovaning ushbu qismida mavjud bo'lgan barcha o'zgaruvchilarni ko'rsatadigan Variables ga ega:
  • nektar = 1,0;
  • nektar sig'imi = -1,0.
Istisno adolatli tarzda tashlanadi, chunki asal o'simlikidagi nektar miqdorining qiymati salbiy bo'lishi mumkin emas. Lekin nima uchun bu sodir bo'ladi? Axir, agar nektar tugasa, 15-17-qatorlarda nol qiymati qaytarilishini tekshirish mavjud:
if ( nectar == 0 ) {
         return 0;
}
Lekin diqqatga sazovor tomoni shundaki, u noto'g'ri o'zgaruvchini tekshirmoqda ... va bu koddagi xato. NectarCapacity o'zgaruvchisida bo'lgan guldagi nektar qiymatini tekshirish o'rniga , dastur usulga kiradigan nektar qiymatini tekshiradi va ular nektardan olmoqchi bo'lgan miqdordir. Mana, birinchi xato! Shuning uchun biz uni to'g'ri qo'yamiz va ifodani olamiz:
if ( nectarCapacity == 0) {
         return 0;
}
Keyinchalik, biz main()usulni oddiy rejimda ishga tushiramiz (Run `Main.main()`)va boshqa xatolik yo'q, dastur ishladi: Ilova Intellij IDEA-da disk raskadrovka: yangi boshlanuvchilar uchun qo'llanma - 22ishladi va javob berdi: "33,0 asal 2 asal o'simlikidan 7 ta asalari tomonidan ishlab chiqarilgan" Hammasi yaxshi bo'lar edi, lekin javob: noto'g'ri... Hammasi chunki README faylida nektar 2 dan 1 gacha nisbatda asalga aylanishi haqida yozilgan:
## Documentation
Presentation based on honey getting process.

**Note**: 1 honey point = 2 nectar points
Asosiy usuldan ko'rinib turibdiki, ikkita asal o'simligi, mos ravishda 30 va 40 birlik nektar bor, shuning uchun oxirida siz 35 birlik asal olishingiz kerak. Va u yozadi 33. Qolgan ikkita birlik qaerga ketdi? ... Endi biz bilib olamiz! Main.main()Buni amalga oshirish uchun 28-satrdagi usulda to'xtash nuqtasini qo'yishimiz kerak , u bajariladi beeHive.populateHoney()va mainusulni Debug rejimida ishga tushiramiz: Intellij IDEA-da disk raskadrovka: yangi boshlanuvchilar uchun qo'llanma - 23Keling, ushbu nuqtani batafsil ko'rib chiqaylik. Dastur 28-qatorni bajarishdan oldin to'xtadi. Pastki qismida biz ishlayotgan dasturdagi barcha ma'lumotlarni tavsiflovchi Debug bo'limini ko'ramiz. O'zgaruvchilar qismi, yuqorida aytib o'tilganidek, ilovaning ushbu qismidan foydalanish mumkin bo'lgan barcha o'zgaruvchilar va ob'ektlarni o'z ichiga oladi. Ramkalar qismi dasturning bosqichlarini ko'rsatadi, siz oldingi bosqichga qarashingiz va barcha mahalliy ma'lumotlarni olishingiz mumkin. Dasturning ishini davom ettirish uchun quyida ko'rsatilgandek F9Intellij IDEA-da disk raskadrovka: yangi boshlanuvchilar uchun qo'llanma - 24 tugmasini yoki yashil belgini bosishingiz mumkin: Dasturni to'xtatish uchun qizil kvadratni bosishingiz kerak: Intellij IDEA-da disk raskadrovka: yangi boshlanuvchilar uchun qo'llanma - 25Ilovani disk raskadrovka rejimida qayta ishga tushirish uchun o'qni bosishingiz kerak: Intellij IDEA-da disk raskadrovka: yangi boshlanuvchilar uchun qo'llanma - 26Keyinchalik, dastur bo'ylab bosqichma-bosqich o'tish uchun siz ikkita tugmachadan foydalanishingiz mumkin:
  • F8 - kod bo'limidan o'ting va ichki usullarga kirmang;
  • F7 - kod bo'limidan o'ting va ichki usullarni kiriting.
Shuning uchun, usulni ishga tushirish uchun beeHive.populateHoney()biz F7 tugmasini bosishimiz kerak va biz davom etamiz: Keyinchalik, biz F8 tugmasidan foydalanib , ushbu usuldan oxirigacha Intellij IDEA-da disk raskadrovka: yangi boshlanuvchilar uchun qo'llanma - 27disk raskadrovka rejimidan o'tamiz va ushbu usulda nima sodir bo'lishini tasvirlaymiz:
  • 25-qator - Stream API barcha asalarilardan asal yig'ish uchun ishlatiladi;
  • 26-qator - mavjudiga asal qo'shiladi;
  • 27-qator - malika uchun 2 birlik asal ajratilgan;
  • 28-qator - bu ikki birlik asalning umumiy miqdoridan chiqariladi;
  • 29-qator - malika bu asalni yeydi.
Bu ikki birlik o‘sha yerga ketdi, hurray! Biznes-tahlilchi bilan bog'langanimizdan so'ng, biz hujjat README faylida xatolik bor va uni yangilash kerak degan xulosaga keldik . README faylini yangilaymiz:
## Documentation
Presentation based on honey getting process.

**Note**:
*  1 honey point = 2 nectar points
*  2 honey point queen bee eats every time when beehive populates the honey.
Va hamma narsa: topilgan barcha xatolar tuzatildi, biz xotirjamlik bilan qahva ichishni va JavaRush markazidagi maqolalarni aqlli ko'rinish bilan o'qishni davom ettirishimiz mumkin :)

Xulosa qiling

Ushbu maqolada biz buni aniqladik:
  • xatolarsiz ish yo'q va disk raskadrovka ularni hal qilishning ajoyib usuli;
  • uzilish nuqtasi nima va uning qanday turlari mavjud;
  • istisno to'xtash nuqtasini qanday sozlash kerak;
  • Nosozliklarni tuzatish rejimida qanday harakat qilish kerak.

O'qish uchun maqola

Boshqa maqolalarimni ham ko'ring:
Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION