1. Баг
У програмістів є свій сленг, хоча багато хто вважає, що це технічний жаргон. У будь-якому випадку, вам не уникнути ні знайомства з ним, ні детального вивчення. Так що починайте втягуватися.
Одним з перших слів, з яким ви познайомитесь, буде слово баг, від англійського bug (жук). Це слово позначає помилку в програмі, коли програма робить щось не те або не так. Або просто дивно працює.
Проте, якщо програміст вважає, що програма, хоч і працює дивно, але саме так він і задумував, зазвичай заявляє щось на кшталт «це не баг, це фіча». Що породило купу інтернет-мемів.
В принципі причина неправильної роботи може бути будь-яка: помилка в логіці програми, описки, невірна архітектура програми, аж до проблем у компіляторі. У будь-якому випадку програмістам потрібно виправляти як реальні баги, так і будь-які інші «недоліки», які є у програмі.
Історія слова bug
Найпоширенішою версією походження слова баг є така легенда.
У вересні 1947 року вчені Гарвардського Університету тестували один з перших комп'ютерів — Mark II. Комп'ютер не працював, і в процесі перевірки всіх плат вони знайшли метелика, застряглого між контактами електромеханічного реле.
Витягнуте комаху було приклеєно скотчем в технічний щоденник і супроводжене написом, мовляв «баг знайдено та усунено».
Вважається, що саме ця кумедна історія і послужила початком використання слова баг як позначення помилки, а слово дебаг (debug) стало синонімом усунення помилок.

2. Налагодження програми
Для усунення багів у своїх програмах програмісти використовують спеціальні програми-налагоджувачі (debugger). Деякі з цих програм вміють налагоджувати навіть машинний код.
Java-програмісти для налагодження (debugging) своїх програм використовують IDE. Такі як Intellij IDEA, Eclipse і Net Beans. IntelliJ IDEA на сьогоднішній день є найпотужнішою IDE, тому ми розглянемо процес налагодження на її прикладі.
Intellij IDEA може запускати вашу програму у двох режимах:
| Режими запуску програми | Іконка на панелі | Гарячі клавіші |
|---|---|---|
| Звичайне виконання | |
Shift+F10 |
| Запуск у режимі налагодження | |
Shift+F9 |
З звичайним режимом роботи ви вже знайомі: програма запуститься, відпрацює й завершиться. А ось режим налагодження несе для вас чимало сюрпризів.
Режим налагодження
Режим налагодження дозволяє покроково виконати всю вашу програму. Або правильніше буде сказати, построчно: строка за строкою. При цьому ви можете спостерігати значення змінних на кожному кроці програми (після виконання кожної строки коду). І навіть змінювати їх значення!
Щоб мінімально оволодіти мистецтвом налагодження програми, вам потрібно вивчити три речі:
- Точки зупинки
- Покрокове виконання
- Перегляд значень змінних
3. Точки зупинки (Break Points)
IDE дозволяє вам розміщувати в коді спеціальні мітки — точки зупинки (break point). Кожного разу, коли програма, запущена в режимі налагодження, доходить до рядка, позначеного як break point, вона зупиняється на паузу.
Щоб поставити break point на певному рядку, потрібно просто клікнути в IDEA зліва від цього рядка. Приклад:
У результаті рядок буде позначений точкою зупинки (break point), і Intellij IDEA підсвітить її червоним кольором:
Повторний клік мишкою на панелі зліва від коду зніме встановлену break point.
Також break point можна просто встановити на поточному рядку за допомогою гарячої комбінації клавіш — Ctrl+F8. Повторне натискання Ctrl+F8 на рядку, де вже є break point, видаляє її.
4. Запуск програми в режимі налагодження (дебагу)
Якщо у вашій програмі є хоча б одна точка зупинки, ви можете запускати програму в режимі налагодження (Shift+F9 або «іконка з жуком»).
Після запуску в режимі налагодження програма виконується як завжди. Але як тільки вона доходить до виконання рядка коду, позначеного break point, зупиняється на паузу. Приклад:
У верхній половині скриншота ви бачите код програми з двома точками зупинки. Програма завмерла на рядку 5 — позначена синьою лінією. Рядок 5 ще не виконаний: в консоль ще нічого не виводилося.
У нижній половині екрана ви бачите панелі режиму налагодження: панель Debugger, панель Console (вивід на екран), а також набір кнопок для режиму налагодження.
Ви можете зняти вашу програму з паузи (продовжити її виконання), якщо натиснете кнопку Resume Program на панелі зліва знизу (або натиснете клавішу F9).
Якщо натиснути таку кнопку (або F9), програма продовжить роботу, поки не зустріне наступну точку зупинки або не завершиться. Ось що ми побачимо після натискання такої кнопки:
Програма зупинилась на другій точці зупинки, а в консоль виведені слова Привіт та І – ознака того, що з трьох рядків виводу на екран виконалися лише два.
5. Покрокове виконання
Якщо ваша програма працює в режимі налагодження, ви також можете виконувати її покроково: один крок — один рядок. Для покрокового виконання є дві гарячі клавіші: F7 і F8: кожна з них призводить до виконання поточного рядка коду. Але спочатку вам потрібно буде все ж зупинити вашу програму за допомогою break point.
Якщо ви хочете виконувати вашу програму построчно, вам потрібно поставити break point на самому початку методу main() і запустити її в режимі налагодження.
Коли програма зупиниться, ви зможете почати построчно її виконання. Одне натискання клавіші F8 – один рядок.
Ось як виглядатиме наша програма після зупинки й натискання клавіші F8 один раз:
Перший рядок методу main вже виконаний, а поточний рядок — другий. Ви також можете бачити в нижній частині скриншота, що на екран вже вивелося слово Привіт.
6. Покрокове виконання із заходом у методи
Якщо у вас є в програмі власні методи, і ви хочете, щоб у режимі налагодження ваша програма не просто виконувалася покроково, але й заходила всередину ваших методів, для «заходу в метод» вам потрібно натискати не клавішу F8, а клавішу F7.
Допустимо, ви покроково виконуєте програму і зараз зупинилися на 4-му рядку. Якщо ви натиснете кнопку F8, IDEA просто виконає четвертий рядок і перейде до п'ятого.
А ось якщо ви натиснете F7, IDEA буде покроково виконувати метод main2():
Все дуже просто. Якщо вам не дуже важливо, що і як відбувається всередині методу, ви натискаєте F8, якщо важливо — F7 і покроково виконуєте весь його код.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ