Дебаг: інтерактивність

Часто можна почути думку що дебаг—шкідлива практика, яка відівчає програміста думати. Таке я чув від свого боса на першій роботі, таке можна прочитати в інтернетах, багато хто так каже. Замість дебагу пропонують більше занурюватися у код, робити юніт-тести на свої шматочки функціональності, активно використовувати логування.

Дійсно, я неодноразово спостерігав за своїми джунами, що порожнім поглядом дивилися в екран, та механічно натискали F8. Але для мене дебаг—це в першу чергу не відслідковування умовних переходів та порядку виконання команд, а інтерактивність та можливість динамічно виконувати шматочки коду.

Наприклад, я працюю з незнайомою бібліотекою. Можна, як освічена людина, вивчити документацію та приклади, а можна просто запустити дебаг-сесію та посмикати об'єкти. Запустив, викликав якийсь метод (часто для цих задач я робив тестовий ендпоїнт), а далі просто крутиш об'єкти, дивишся як змінюється стан, які ексепшени вилазять і так далі.

Коли в роботі часто доводиться мати справу з неструктурованими даними, то зручніше швидко їх покрутити і зрозуміти де знаходиться потрібний шматок, після чого писати вже бойовий код.

Інтерактивність це найбільш недооцінена характеристика сучасних середовищ розробки. Для динамічних мов все просто—запустив REPL та пишеш там свої скріпти. Python має Jupyter Notebook який це все круто візуалізцє—Java-панам з зарплатою в 5k таке і не снилося! Тільки не треба казати що в останню JDK додали REPL—все одно ним ніхто не буде користуватися, бо не навчені правильній культурі розробки, звикли на кожен пук перезбирати апку та рестартувати сервери, а наймолодші вже й не знають що компілювати можна не Gradle а через IntelliJ.

Ось на фронтенді ніби все добре—там нічого не компілюється, JS виконується у браузері, бери пиши та встигай перемикатися між браузером та IDE, але ні, і сюди добралися інженери з FAANG, і ось фронтендер, який ще вчора хутко писав динамічні сторінки на jQuery, сьогодні похнюплено слухає свист вентиляторів своєго макбука, які марно намагаються приборкати вебпак що компілює, транспілює, та робить бандли.


Сподобалось? Долучайтеся до мого телеграм каналу: https://t.me/full_of_hatred