1. Bug
Proqramçıların öz slenqi var, baxmayaraq ki, bir çoxları bunu texniki jarqon hesab edir. Hər halda, onunla tanışlıqdan da, ətraflı öyrənməkdən də qaça bilməyəcəksiniz. Odur ki, başlayın alışmağa.
İlk öyrənəcəyiniz sözlərdən biri bug olacaq, ingiliscədən bug (böcək). Bu söz proqramda səhv deməkdir — proqram nəyisə düzgün etmədikdə və ya gözlənildiyi kimi işləmədikdə. Bəzən isə sadəcə qəribə işləyir.
Ancaq əgər proqramçı hesab edirsə ki, proqram qəribə işləsə də, o bunu elə belə də nəzərdə tutub, adətən “bu bug deyil, bu feature-dir” kimi nəsə deyir. Bu da saysız-hesabsız internet memlərinə səbəb olub.
Prinsipcə, səhv işin səbəbi istənilən ola bilər: proqramın məntiqində səhv, yazı səhvləri, proqramın yalnış arxitekturası, hətta kompilyatordakı problemlərə qədər. Hər halda, proqramçılar həm real bug-ları, həm də proqramda olan digər “çatışmazlıqları” düzəltməlidirlər.
“Bug” sözünün tarixi
“Bug” sözünün mənşəyinə dair ən geniş yayılmış versiya belə bir əfsanədir.
1947-ci ilin sentyabrında Harvard Universitetinin alimləri ilk kompüterlərdən birini — Mark II-ni — sınaqdan keçirirdilər. Kompüter işləmir və bütün plataları yoxlayarkən elektromechaniki releyin kontaktları arasında ilişib qalmış bir kəpənəyi tapırlar.
Çıxarılan həşərat skotçla texniki jurnalın içinə yapışdırılır və “bug tapıldı və aradan qaldırıldı” qeydi ilə müşayiət olunur.
Elə bu maraqlı hekayənin səhvi ifadə etmək üçün bug sözünün istifadəsinin başlanğıcı olduğuna, həmçinin debug (sazlama) sözünün səhvlərin aradan qaldırılmasının sinoniminə çevrildiyinə inanılır.

2. Proqramın sazlanması
Proqramlarınızdakı bug-ları aradan qaldırmaq üçün proqramçılar xüsusi sazlayıcı proqramlardan (debugger) istifadə edirlər. Bu proqramların bəziləri hətta maşın kodunu belə sazlamağı bacarır.
Java-proqramçıları proqramlarını sazlamaq (debugging) üçün IDE istifadə edirlər. Məsələn, IntelliJ IDEA, Eclipse və NetBeans. Bu gün üçün IntelliJ IDEA ən güclü IDE-dir, buna görə də sazlama prosesinə onun nümunəsində baxacağıq.
IntelliJ IDEA proqramınızı iki rejimdə işə sala bilər:
| Proqramı işə salma rejimləri | Paneldəki nişan | Qısayol düymələri |
|---|---|---|
| Adi icra | |
Shift+F10 |
| Sazlama rejimində işə salma | |
Shift+F9 |
Adi rejimlə artıq tanışsınız: proqram işə düşür, işləyir və tamamlanır. Sazlama rejimi isə sizin üçün xeyli sürprizlər gətirir.
Sazlama rejimi
Sazlama rejimi proqramınızın hamısını addım-addım icra etməyə imkan verir. Daha doğrusu, sətir-sətir: sətir ardınca. Bu zaman hər addımdan (hər sətir kod icra olunduqdan) sonra dəyişənlərin dəyərlərini müşahidə edə bilərsiniz. Hətta onların dəyərlərini dəyişə də bilərsiniz!
Sazlama sənətinə minimal səviyyədə yiyələnmək üçün üç şeyi öyrənməlisiniz:
- Dayanma nöqtələri
- Addım-addım icra
- Dəyişənlərin dəyərlərinə baxış
3. Dayanma nöqtələri (Break Points)
IDE sizə kodda xüsusi nişanlar — dayanma nöqtələri (break point) — yerləşdirməyə imkan verir. Sazlama rejimində işləyən proqram break point qoyulmuş sətirə çatdıqda hər dəfə pauzaya dayanacaq.
Müəyyən sətirdə break point qoymaq üçün sadəcə həmin sətirin sol sahəsində IDEA-da klikləmək kifayətdir. Nümunə:
Nəticədə sətir dayanma nöqtəsi (break point) ilə qeyd olunacaq və IntelliJ IDEA onu qırmızı rənglə vurğulayacaq:
Kodun sol panelində təkrar klik etmək qoyulmuş break point-i siləcək.
Həmçinin break point-i cari sətirdə isti düymə kombinasiyası ilə də qoya bilərsiniz — Ctrl+F8. break point olan sətirdə Ctrl+F8-ə təkrar basmaq onu silir.
4. Proqramı sazlama (debug) rejimində işə salma
Əgər proqramınızda ən azı bir dayanma nöqtəsi varsa, proqramı sazlama rejimində işə sala bilərsiniz (Shift+F9 və ya “böcək nişanı”).
Sazlama rejimində işə salındıqdan sonra proqram adi qaydada icra olunur. Lakin break point ilə qeyd olunmuş kod sətrinə çatdığı anda pauzaya dayanır. Nümunə:
Skrinşotun yuxarı yarısında iki dayanma nöqtəsi olan proqram kodunu görürsünüz. Proqram 5-ci sətirdə dayandırılıb — mavi xəttlə işarələnib. 5-ci sətir hələ icra olunmayıb: konsola hələ heç nə çıxarılmayıb.
Ekranın aşağı yarısında sazlama rejimi panellərini görürsünüz: Debugger paneli, Console (ekrana çıxış) paneli və sazlama rejimi üçün düymələr toplusu.
Sol altdakı paneldə Resume Program düyməsini bassanız (və ya F9 düyməsinə bassanız), proqramı pauzadan çıxarıb icranı davam etdirə bilərsiniz.
Bu düyməni (F9) bassanız, proqram növbəti dayanma nöqtəsinə çatana qədər və ya tamamlanana qədər işləməyə davam edəcək. Düyməni basdıqdan sonra belə görəcəyik:
Proqram ikinci dayanma nöqtəsində dayandı və konsola Salam və və sözləri çıxarıldı — bu, ekrana çıxışın üç sətirindən yalnız ikisinin icra olunduğunun əlamətidir.
5. Addım-addım icra
Əgər proqramınız sazlama rejimində işləyirsə, onu addım-addım da icra edə bilərsiniz: bir addım — bir sətir. Addım-addım icra üçün iki qısayol var: F7 və F8. Hər ikisi cari kod sətirinin icrasına gətirib çıxarır. Amma əvvəlcə proqramınızı break point vasitəsilə dayandırmalısınız.
Proqramınızı sətir-sətir icra etmək istəyirsinizsə, break point-i main() metodunun lap əvvəlinə qoyun və onu sazlama rejimində işə salın.
Proqram dayandıqda, sətir-sətir icraya başlaya bilərsiniz. F8-ə bir dəfə basmaq — bir sətir.
Dayandıqdan və F8 düyməsinə bir dəfə basdıqdan sonra proqramımız belə görünəcək:
main metodunun birinci sətri artıq icra olunub və cari sətir — ikinci sətirdir. Skrinşotun aşağı hissəsində artıq ekrana Salam sözünün çıxarıldığını da görürsünüz.
6. Addım-addım icra: metodların içinə daxil olaraq
Əgər proqramınızda öz metodlarınız varsa və sazlama rejimində proqramınızın təkcə addım-addım icra olunmasını deyil, həm də metodlarınızın içinə daxil olmasını istəyirsinizsə, “metoda daxil olmaq” üçün F8 deyil, F7 düyməsini basmalısınız.
Tutaq ki, proqramı addım-addım icra edirsiniz və hazırda 4-cü sətirdəsiniz. F8 düyməsini bassanız, IDEA sadəcə dördüncü sətiri icra edəcək və beşinciyə keçəcək.
Ancaq F7 düyməsini bassanız, IDEA main2() metodunu addım-addım icra edəcək:
Hər şey çox sadədir. Əgər metodun içində nə baş verdiyi sizin üçün o qədər də vacib deyilsə, F8 basın; vacibdirsə — F7 basın və onun bütün kodunu addım-addım icra edin.
GO TO FULL VERSION