For faster navigation, this Iframe is preloading the Wikiwand page for Перегляд коду.

Перегляд коду

Матеріал з Вікіпедії — вільної енциклопедії.

Двоє розробників перевіряють код

Перегляд коду (англ. code review) — систематична перевірка вихідного коду програми. Призначений не лише для виявлення помилок, але є й одним з етапів розробки програмного забезпечення для покращення загальної якості програмного коду.

Перегляди коду часто сприяють знаходженню та виправленню загальних вразливостей, таких як вразливості форматних рядків[en], помилки некоректної послідовності виконання частин коду, витоки пам'яті та переповнення буферу, таким чином покращуючи безпеку програмного забезпечення. Онлайн-репозиторії на основі Subversion, Mercurial, Git або інших, дозволяють групам користувачів спільно робити перегляд коду. Крім того, спеціальні інструменти для спільного перегляду коду допомагають полегшити цей процес.

Автоматизоване ПЗ для перегляду коду дозволяє зменшити завдання по перегляду великих відрізків коду завдяки автоматичній перевірці вихідного коду на відомі вразливості.

При перегляді коду рекомендують перевіряти 200—400 рядків за годину[1][2][3][4]. Інспектування та перегляд більш ніж декілька сотень рядків коду за годину для критичного ПЗ (наприклад, критичного в плані безпеки вбудованого ПЗ) може бути занадто швидким для того, щоб знайти помилки[1][5]. Дані по галузі свідчать, що, при перегляді коду, можна досягти виявлення до 85 % помилок, при середньому значенні цього показника 65 %[6].

Як показали емпіричні дослідження, до 75 % дефектів, виявлених при перегляді коду, більш стосуються розширюваності програмного забезпечення, аніж його функціональності[7][8][9], що робить перегляд коду відмінним інструментом для компаній, які працюють над продуктами або системами з довгим циклом розробки[10].

Перегляд коду також дає час аби запропонувати рефакторинг[11].

Перегляд коду поділяється на дві основних категорії: формальний перегляд коду та поверхневий перегляд коду[12].

Формальний перегляд коду, наприклад, такий як інспекція програми за Файганом[en], передбачає детальний і ретельний багатофазний процес з багатьма учасниками. Під час формального перегляду коду розробники ПЗ проводять серію зустрічей та переглядають код рядок за рядком, часто використовуючи для цього надруковані копії коду.

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

  • Через плече — один з розробників буквально дивиться через плече автора коду, в той час як той проходить через код;
  • Email розсилка — система керування вихідним кодом автоматично розсилає написаний код на перегляд електронною поштою після того, як була зроблена відмітка про завершення;
  • Парне програмування — два автори пишуть код разом на одному комп'ютері, так як це часто трапляється в екстремальному програмуванні;
  • Перегляд коду з допомогою інструментів — автори та ті, хто переглядає код, використовують програмні інструменти, як неспеціалізовані (такі як pastebin-и або IRC), так і спеціальні інструменти, розроблені для рецензування коду.

Багато команд розробників відмовляються від традиційного формального перегляду коду на користь полегшеного, роблячи його частиною свого стандартного процесу розробки ПЗ.

Критика

[ред. | ред. код]

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

Використання інструментів аналізу коду[en] можуть спростити цю діяльність. Зокрема, це стосується інструментів, які є в IDE, так як вони дають розробнику повідомлення щодо дотримання стандартів програмування безпосередньо під час роботи над кодом.

Див. також

[ред. | ред. код]

Посилання

[ред. | ред. код]
  1. а б Kemerer,, C.F.; Paulk, M.C. (17 квітня 2009). The Impact of Design and Code Reviews on Software Quality: An Empirical Study Based on PSP Data. IEEE Transactions on Software Engineering. 35 (4): 534—550. doi:10.1109/TSE.2009.27. Архів оригіналу за 9 жовтня 2015. Процитовано 9 жовтня 2015.
  2. Code Review Metrics. Open Web Application Security Project. Open Web Application Security Project. Архів оригіналу за 9 жовтня 2015. Процитовано 9 жовтня 2015.
  3. Best Practices for Peer Code Review. Smart Bear. Smart Bear Software. Архів оригіналу за 9 жовтня 2015. Процитовано 9 жовтня 2015.
  4. Bisant, David B. (October 1989). A Two-Person Inspection Method to Improve Programming Productivity. IEEE Transactions on Software Engineering. 15 (10): 1294—1304. doi:10.1109/TSE.1989.559782. Процитовано 9 жовтня 2015.
  5. Ganssle, Jack (February 2010). A Guide to Code Inspections (PDF). The Ganssle Group. Процитовано 5 жовтня 2010.
  6. Jones, Capers (June 2008). Measuring Defect Potentials and Defect Removal Efficiency (PDF). Crosstalk, The Journal of Defense Software Engineering. Архів оригіналу (PDF) за 6 серпня 2012. Процитовано 5 жовтня 2010.
  7. Mantyla, M.V.; Lassenius, C (May–June 2009). What Types of Defects Are Really Discovered in Code Reviews? (PDF). IEEE Transactions on Software Engineering. Процитовано 21 березня 2012.
  8. Bacchelli, A; Bird, C (May 2013). Expectations, outcomes, and challenges of modern code review (PDF). Proceedings of the 35th IEEE/ACM International Conference On Software Engineering (ICSE 2013). Процитовано 2 вересня 2015.
  9. Beller, M; Bacchelli, A; Zaidman, A; Juergens, E (May 2014). Modern code reviews in open-source projects: which problems do they fix? (PDF). Proceedings of the 11th Working Conference on Mining Software Repositories (MSR 2014). Процитовано 2 вересня 2015.
  10. Siy, Harvey; Votta, Lawrence (1 грудня 2004). Does the Modern Code Inspection Have Value? (PDF). unomaha.edu. Архів оригіналу (PDF) за 28 квітня 2015. Процитовано 17 лютого 2015.
  11. https://refactoring.guru/uk
  12. Kolawa, Adam; Huizinga, Dorota (2007). Automated Defect Prevention: Best Practices in Software Management. Wiley-IEEE Computer Society Press. с. 260. ISBN 0-470-04212-5.
{{bottomLinkPreText}} {{bottomLinkText}}
Перегляд коду
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?