Еволюція огляду коду: від формальних інспекцій до сучасної практики

Розуміння шляху від традиційних до сучасних підходів

Практика перегляду коду перед розгортанням зазнала кардинальних змін за останні п’ять десятиліть. Ще в середині 1970-х років вона починалася як формалізований процес забезпечення якості і з часом перетворилася на легкий, але потужний механізм, який є невід’ємною частиною сучасних робочих процесів розробки програмного забезпечення. Розуміння цієї еволюції допомагає фахівцям цінувати, чому інструменти для перегляду коду стали незамінними в сучасних середовищах розробки.

Основи: Формальні інспекції коду

Фаган вперше запровадив формальні інспекції коду у середині 1970-х років, створивши структурований підхід до забезпечення якості, який домінував у цій галузі до початку 2000-х. Між 1980 та 2008 роками дослідження щодо інспекцій коду досягли піку між кінцем 1990-х та 2004 роком, з середнім показником 14 публікацій на рік. Однак інтерес до публікацій різко знизився до всього 4 статей на рік у період з 2005 по 2008 рік — цей перехід став поворотним моментом у підході галузі до якості коду.

Це зниження співпало з появою Modern Code Review (MCR) приблизно у 2007 році, який почав стабільно зростати з 2011 року. Наукова спільнота зосередилася не так на техніках читання, показниках ефективності та оцінці дефектів, як на оптимізації процесів і інструментах. Важливо, що традиційні дослідження інспекцій приділяли мінімальну увагу інструментам, з лише 10% досліджень (16 з 153) досліджували цю сторону — цей розрив згодом заповнили MCR та супутні інструменти для перегляду коду.

Сучасний перегляд коду: технологічно підтримуваний зсув

Модерний перегляд коду виник із практичної потреби у швидкому та легкому забезпеченні якості, ідеально доповнюючи зростання Continuous Integration та Continuous Deployment (CI/CD) приблизно з 2010 року. На відміну від формальних інспекцій, MCR є внутрішньо технологічно орієнтованим процесом, з інструментами як Gerrit, GitHub і GitLab, що безпосередньо інтегруються у системи контролю версій.

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

Між відкритим і комерційним середовищами розробки MCR виконує різні функції. Відкриті спільноти орієнтовані на налагодження стосунків із основними підтримувачами через перегляди, тоді як комерційні організації наголошують на поширенні знань. Обидві виграють від інструментів для перегляду коду, що спрощують комунікацію, зберігають історичні записи та сприяють обґрунтованим рішенням.

Ключові питання сучасних досліджень

Кожен етап процесу MCR піднімає важливі питання: який розмір запиту на злиття оптимізує ефективність перегляду? Як слід розбивати великі зміни? Які евристики вибору рецензентів є найефективнішими? Як правильно розподілити час на перегляд? Які автоматизовані можливості виявлення дефектів можуть доповнити ручний перегляд? Чи можна більш ефективно сприяти досягненню консенсусу?

Ці питання спричинили значне академічне дослідження, проте мало досліджень поєднує результати досліджень із потребами практиків.

Огляд сучасної літератури: фрагментований ландшафт

З 2019 року дослідницька спільнота активізувала свої зусилля щодо MCR, створивши шість окремих оглядів літератури за дуже короткий період (2019-2021). У 2019 році було проведено картографічне дослідження, яке охоплювало 177 статей за період 2007-2018 років, ідентифікувавши основні теми досліджень: процеси MCR, характеристики та вибір рецензентів, інструменти для перегляду коду, характеристики вихідного коду та аналіз коментарів до перегляду.

Наступні огляди виявили додаткові результати: один визначив дев’ять кластерів переваг (якість програмного забезпечення, обмін знаннями, командна динаміка, мінімізація ризиків); інший зосередився на системах рекомендацій рецензентів, виявивши, що більшість підходів базуються на евристиках або машинному навчанні, але мають проблеми з узагальнюваністю; третій досліджував MCR у навчальному середовищі, виявивши переваги у розвитку навичок і якості продукту.

Комплексний аналіз 2021 року визначив 1381 первинне дослідження, класифікувавши дослідження MCR за трьома категоріями: фундаментальні (розуміння практики), пропозиції (покращення практики) та оцінка (вимірювання практики). Важливо, що домінували дослідження з оцінки та валідації, тоді як менше було практичних рішень.

Прогалина у сприйнятті практиків

Тут відкривається важлива можливість для досліджень: хоча кілька оглядів літератури документують академічний ландшафт досліджень MCR, майже жоден систематично не збирав думки практиків щодо цих висновків. На відміну від цього, ширше дослідження у галузі інженерії програмного забезпечення з 2000-х років активно залучає опитування практиків — дослідження на провідних конференціях (ICSE, ESEC/FSE, ESEM) постійно показували, що 67-71% досліджень отримують позитивну оцінку від практиків, хоча ця оцінка слабко корелює з кількістю цитувань.

Однак з’явилася постійна проблема: практики важко знайти та застосувати релевантні дослідження. Огляди з інженерії вимог показали схожі тенденції, де цінувалися дослідження, що стосуються конкретної актуальності проблем і корисності рішень.

Подолання розриву між дослідженнями та практикою: шлях уперед

Ця прогалина у дослідженнях є і викликом, і можливістю. Галузь MCR створила значний академічний доробок у різних сферах — від інструментів підтримки до оптимізації процесів і командної динаміки. Однак практичний вплив цих досліджень залишається неясним. Чи дійсно практики цінують ці результати? Які напрями досліджень MCR мають потенціал для застосування у реальному світі? Де саме існує розрив між академічними дослідженнями і потребами галузі?

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

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

Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • Прокоментувати
  • Репост
  • Поділіться
Прокоментувати
0/400
Немає коментарів
  • Закріпити