Блогер та розробник Джозеф Круз розповів, чому так важко прочитати чужий код.
Пропонуємо вам переклад його його авторського блогу від нашої редакції. Далі — слово автору.
У книзі Гарольда Абельсона, Джеральда Джея Сасмена та Джулі Сасмен «Структура та інтерпретація комп’ютерних програм» є одна чудова фраза: «Програми повинні бути написані для читання людьми, а вже потім для виконання машиною».
У більшості випадків програмісти пишуть код, який дуже важко читати та розуміти іншим розробникам. Це пов’язано з тим, що в навчальних матеріалах нас більше вчать писати код та виправляти помилки в ньому.
Тому розробник стикається з проблемами в когнітивних процесах під час читання коду. Щоб поліпшити навички читання коду, необхідно зрозуміти, як працює наш мозок під час такого процесу.
Когнітивні процеси працюють разом
Читання та написання коду — це дуже складний процес. Ваш мозок працює з великою кількістю абстрактної інформації, намагаючись її отримати, обробити та запам’ятати. За це відповідають три когнітивні процеси: короткочасна пам’ять, довготривала пам’ять та робоча пам’ять.
Ваш мозок працює як комп’ютер. Спочатку він повинен завантажити інформацію в оперативну пам’ять — це короткочасна пам’ять. Далі він повинен обробити отриману інформацію, як процесор — це робоча пам’ять. Коли процесор (робоча пам’ять) обробив або запам’ятав інформацію, він зберігає її на жорсткому диску — в довготривалій пам’яті.
Короткочасна пам’ять
Короткочасна пам’ять зберігає інформацію, що надходить, протягом короткого часу. Наприклад, під час читання програми всі ключові слова та імена змінних зберігаються в короткочасній пам’яті.
Або коли вам під час розмови кажуть адресу поштового відділення, ця інформація не відразу зберігається в довготривалій пам’яті. Об’єм короткочасної пам’яті обмежений. Він може становити від 6 до 12 об’єктів. Це можуть бути літери, цифри, геометричні фігури тощо.
Довготривала пам’ять
Довготривала пам’ять здатна зберігати інформацію протягом багатьох років. Люди часто згадують події, що відбулися десятиліття тому. Цей тип пам’яті відіграє ключову роль у багатьох аспектах вашого життя: наприклад, м’язова пам’ять допомагає автоматично запам’ятовувати послідовність дій під час зав’язування шнурків, а під час програмування ви використовуєте знання синтаксису мови та вміння друкувати на клавіатурі.
Робоча пам’ять
Процес мислення відбувається не в короткочасній або довготривалій пам’яті, а в робочій пам’яті. Саме тут формуються думки та рішення. Робоча пам’ять постійно взаємодіє з короткочасною та довготривалою пам’яттю.
Чому так важко читати незнайомий код
Довготривала пам’ять відіграє ключову роль у читанні програми. Як би ви не старалися, ви не зможете зберегти всю інформацію з коду в короткочасній пам’яті. Інформація в короткочасній пам’яті зберігається приблизно 30 секунд.
Тому після прочитання певного коду робоча пам’ять спочатку шукає подібну інформацію в довготривалій пам’яті. Якщо вона там є, ви миттєво її згадуєте. Короткочасна пам’ять очищається, і ви продовжуєте читати. Процес повторюється.
Якщо інформація не знайдена в довготривалій пам’яті, робоча пам’ять повинна зрозуміти/запам’ятати/перенести її з короткочасної в довготривалу пам’ять.
Ось чому іноді вам важко зрозуміти чужий код. Робоча пам’ять не знаходить подібної інформації у вашій довготривалій пам’яті і потребує трохи більше часу для обробки нової інформації. Це триватиме, поки ви не зрозумієте весь код.
Як навчитися швидко читати код
Як би банально це не звучало, але читання чужого коду є необхідною умовою для його кращого розуміння. Але просто читати недостатньо. Потрібно активно аналізувати та обмірковувати код.
Це можна порівняти з читанням книги, коли ви не просто дивитеся на рядки, а намагаєтеся зрозуміти мотиви персонажів, стиль автора та основну ідею твору.
«Чому автор вирішив реалізувати цю функцію саме таким чином?», «Які є альтернативні способи вирішення цієї проблеми?», «Які можуть бути наслідки цього рішення в довгостроковій перспективі?».
Інший ефективний метод — рефакторинг чужого коду. Спробуйте змінити існуючий код, оптимізувати його або додати нові функції.
Це допоможе вам краще зрозуміти початкові рішення та дізнатися, як код взаємодіє з іншими частинами програми. Також варто практикувати парне програмування, де ви та ваш колега по черзі виконуєте роль водія та навігатора.
Навігатор пояснює водієві, що робити і чому це важливо, що сприяє глибшому розумінню коду обома учасниками.
If you have found a spelling error, please, notify us by selecting that text and pressing Ctrl+Enter.
Favbet Tech – це ІТ-компанія зі 100% українською ДНК, що створює досконалі сервіси для iGaming і Betting з використанням передових технологій та надає доступ до них. Favbet Tech розробляє інноваційне програмне забезпечення через складну багатокомпонентну платформу, яка здатна витримувати величезні навантаження та створювати унікальний досвід для гравців.
Цей матеріал – не редакційний, це – особиста думка його автора. Редакція може не поділяти цю думку.
Сообщить об опечатке
Текст, который будет отправлен нашим редакторам: