Чому програмісту потрібно вміти читати чужий код та як цього навчитись?

Чому програмісту потрібно вміти читати чужий код та як цього навчитись?

Коли я починав кар’єру програміста, доживав свого віку браузер Internet Explorer 4-ї версії. У ньому була підтримка так званої поведінки ‘hover’ (наведення мишкою на елемент на сторінці) лише для посилань (лінків). Усі решта елементів не підтримували даного стилю. Щоб обійти дане обмеження старенького браузера розробники придумали Javascript бібліотеку, яка штучно навішувала подібну поведінку на усі елементи на сторінці. В одному з проектів ми використовували дану бібліотеку, але, оскільки, елементів із даною поведінкою на сторінці було дуже багато – бібліотека буквально заморожувала сторінку на 5-10 секунд при першому завантаженні.

Моє завдання полягало у пришвидшенні та оптимізації даної бібліотеки. Код був низькорівневий (ніяких Prototype чи jQuery на той час не існувало) і доволі непростий. Щоб розібратись, що роблять цих 200 рядочків коду, я витратив більше, ніж 2 тижня. В кінцевому результаті ми знайшли слабкі сторони даного коду, покращили і адаптували під наші потреби, пришвидшивши його у сотні разів.

Це був мій перший досвід розбору чужого коду. Дався він мені дуже важко. Але з цього моменту я добре зрозумів, на скільки важливо вміти читати і розуміти чужий код: код вашого колеги, код додаткових плагінів, а чи навіть платформи, на якій ви розробляєте.

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

(більше…)