Перегляд коду (англ. code review) — систематична перевірка вихідного коду програми. Призначений не лише для виявлення помилок, але є й одним з етапів розробки програмного забезпечення для покращення загальної якості програмного коду.
Опис
Перегляди коду часто сприяють знаходженню та виправленню загальних вразливостей, таких як [en], помилки некоректної послідовності виконання частин коду, витоки пам'яті та переповнення буферу, таким чином покращуючи безпеку програмного забезпечення. Онлайн-репозиторії на основі Subversion, Mercurial, Git або інших, дозволяють групам користувачів спільно робити перегляд коду. Крім того, спеціальні інструменти для спільного перегляду коду допомагають полегшити цей процес.
Автоматизоване ПЗ для перегляду коду дозволяє зменшити завдання по перегляду великих відрізків коду завдяки автоматичній перевірці вихідного коду на відомі вразливості.
При перегляді коду рекомендують перевіряти 200—400 рядків за годину. Інспектування та перегляд більш ніж декілька сотень рядків коду за годину для критичного ПЗ (наприклад, критичного в плані безпеки (вбудованого ПЗ)) може бути занадто швидким для того, щоб знайти помилки. Дані по галузі свідчать, що, при перегляді коду, можна досягти виявлення до 85 % помилок, при середньому значенні цього показника 65 %.
Як показали емпіричні дослідження, до 75 % дефектів, виявлених при перегляді коду, більш стосуються розширюваності програмного забезпечення, аніж його функціональності, що робить перегляд коду відмінним інструментом для компаній, які працюють над продуктами або системами з довгим циклом розробки.
Перегляд коду також дає час аби запропонувати рефакторинг.
Типи
Перегляд коду поділяється на дві основних категорії: формальний перегляд коду та поверхневий перегляд коду.
Формальний перегляд коду, наприклад, такий як [en], передбачає детальний і ретельний багатофазний процес з багатьма учасниками. Під час формального перегляду коду розробники ПЗ проводять серію зустрічей та переглядають код рядок за рядком, часто використовуючи для цього надруковані копії коду.
Полегшений перегляд коду, як правило, вимагає менше ресурсів, ніж формальна інспекція коду, хоча він може бути не менш ефективним. Часто полегшений перегляд коду є частиною звичайного процесу розробки:
- Через плече — один з розробників буквально дивиться через плече автора коду, в той час як той проходить через код;
- Email розсилка — система керування вихідним кодом автоматично розсилає написаний код на перегляд електронною поштою після того, як була зроблена відмітка про завершення;
- Парне програмування — два автори пишуть код разом на одному комп'ютері, так як це часто трапляється в екстремальному програмуванні;
- Перегляд коду з допомогою інструментів — автори та ті, хто переглядає код, використовують програмні інструменти, як неспеціалізовані (такі як pastebin-и або IRC), так і спеціальні інструменти, розроблені для рецензування коду.
Багато команд розробників відмовляються від традиційного формального перегляду коду на користь полегшеного, роблячи його частиною свого стандартного процесу розробки ПЗ.
Критика
Історично, формальний перегляд коду вимагає значних вкладень ресурсів під час підготовки до перегляду і значного обсягу часу на сам процес.
Використання [en] можуть спростити цю діяльність. Зокрема, це стосується інструментів, які є в IDE, так як вони дають розробнику повідомлення щодо дотримання стандартів програмування безпосередньо під час роботи над кодом.
Див. також
Посилання
- 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.
- Code Review Metrics. Open Web Application Security Project. Open Web Application Security Project. оригіналу за 9 жовтня 2015. Процитовано 9 жовтня 2015.
- Best Practices for Peer Code Review. Smart Bear. Smart Bear Software. оригіналу за 9 жовтня 2015. Процитовано 9 жовтня 2015.
- 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.
- Ganssle, Jack (February 2010). A Guide to Code Inspections (PDF). The Ganssle Group. Процитовано 5 жовтня 2010.
- Jones, Capers (June 2008). (PDF). Crosstalk, The Journal of Defense Software Engineering. Архів оригіналу (PDF) за 6 серпня 2012. Процитовано 5 жовтня 2010.
- 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.
- 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.
- 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.
- Siy, Harvey; Votta, Lawrence (1 грудня 2004). (PDF). unomaha.edu. Архів оригіналу (PDF) за 28 квітня 2015. Процитовано 17 лютого 2015.
- https://refactoring.guru/uk
- Kolawa, Adam; Huizinga, Dorota (2007). Automated Defect Prevention: Best Practices in Software Management. Wiley-IEEE Computer Society Press. с. 260. ISBN .
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Pereglyad kodu angl code review sistematichna perevirka vihidnogo kodu programi Priznachenij ne lishe dlya viyavlennya pomilok ale ye j odnim z etapiv rozrobki programnogo zabezpechennya dlya pokrashennya zagalnoyi yakosti programnogo kodu Dvoye rozrobnikiv pereviryayut kodOpisPereglyadi kodu chasto spriyayut znahodzhennyu ta vipravlennyu zagalnih vrazlivostej takih yak en pomilki nekorektnoyi poslidovnosti vikonannya chastin kodu vitoki pam yati ta perepovnennya buferu takim chinom pokrashuyuchi bezpeku programnogo zabezpechennya Onlajn repozitoriyi na osnovi Subversion Mercurial Git abo inshih dozvolyayut grupam koristuvachiv spilno robiti pereglyad kodu Krim togo specialni instrumenti dlya spilnogo pereglyadu kodu dopomagayut polegshiti cej proces Avtomatizovane PZ dlya pereglyadu kodu dozvolyaye zmenshiti zavdannya po pereglyadu velikih vidrizkiv kodu zavdyaki avtomatichnij perevirci vihidnogo kodu na vidomi vrazlivosti Pri pereglyadi kodu rekomenduyut pereviryati 200 400 ryadkiv za godinu Inspektuvannya ta pereglyad bilsh nizh dekilka soten ryadkiv kodu za godinu dlya kritichnogo PZ napriklad kritichnogo v plani bezpeki vbudovanogo PZ mozhe buti zanadto shvidkim dlya togo shob znajti pomilki Dani po galuzi svidchat sho pri pereglyadi kodu mozhna dosyagti viyavlennya do 85 pomilok pri serednomu znachenni cogo pokaznika 65 Yak pokazali empirichni doslidzhennya do 75 defektiv viyavlenih pri pereglyadi kodu bilsh stosuyutsya rozshiryuvanosti programnogo zabezpechennya anizh jogo funkcionalnosti sho robit pereglyad kodu vidminnim instrumentom dlya kompanij yaki pracyuyut nad produktami abo sistemami z dovgim ciklom rozrobki Pereglyad kodu takozh daye chas abi zaproponuvati refaktoring TipiPereglyad kodu podilyayetsya na dvi osnovnih kategoriyi formalnij pereglyad kodu ta poverhnevij pereglyad kodu Formalnij pereglyad kodu napriklad takij yak en peredbachaye detalnij i retelnij bagatofaznij proces z bagatma uchasnikami Pid chas formalnogo pereglyadu kodu rozrobniki PZ provodyat seriyu zustrichej ta pereglyadayut kod ryadok za ryadkom chasto vikoristovuyuchi dlya cogo nadrukovani kopiyi kodu Polegshenij pereglyad kodu yak pravilo vimagaye menshe resursiv nizh formalna inspekciya kodu hocha vin mozhe buti ne mensh efektivnim Chasto polegshenij pereglyad kodu ye chastinoyu zvichajnogo procesu rozrobki Cherez pleche odin z rozrobnikiv bukvalno divitsya cherez pleche avtora kodu v toj chas yak toj prohodit cherez kod Email rozsilka sistema keruvannya vihidnim kodom avtomatichno rozsilaye napisanij kod na pereglyad elektronnoyu poshtoyu pislya togo yak bula zroblena vidmitka pro zavershennya Parne programuvannya dva avtori pishut kod razom na odnomu komp yuteri tak yak ce chasto traplyayetsya v ekstremalnomu programuvanni Pereglyad kodu z dopomogoyu instrumentiv avtori ta ti hto pereglyadaye kod vikoristovuyut programni instrumenti yak nespecializovani taki yak pastebin i abo IRC tak i specialni instrumenti rozrobleni dlya recenzuvannya kodu Bagato komand rozrobnikiv vidmovlyayutsya vid tradicijnogo formalnogo pereglyadu kodu na korist polegshenogo roblyachi jogo chastinoyu svogo standartnogo procesu rozrobki PZ KritikaIstorichno formalnij pereglyad kodu vimagaye znachnih vkladen resursiv pid chas pidgotovki do pereglyadu i znachnogo obsyagu chasu na sam proces Vikoristannya en mozhut sprostiti cyu diyalnist Zokrema ce stosuyetsya instrumentiv yaki ye v IDE tak yak voni dayut rozrobniku povidomlennya shodo dotrimannya standartiv programuvannya bezposeredno pid chas roboti nad kodom Div takozhNalagodzhennya program Testuvannya programnogo zabezpechennya Profilyuvannya Spisok instrumentiv dlya perevirki kodu Parne programuvannyaPosilannyaKemerer C F Paulk M C 17 kvitnya 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 originalu za 9 zhovtnya 2015 Procitovano 9 zhovtnya 2015 Code Review Metrics Open Web Application Security Project Open Web Application Security Project originalu za 9 zhovtnya 2015 Procitovano 9 zhovtnya 2015 Best Practices for Peer Code Review Smart Bear Smart Bear Software originalu za 9 zhovtnya 2015 Procitovano 9 zhovtnya 2015 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 Procitovano 9 zhovtnya 2015 Ganssle Jack February 2010 A Guide to Code Inspections PDF The Ganssle Group Procitovano 5 zhovtnya 2010 Jones Capers June 2008 PDF Crosstalk The Journal of Defense Software Engineering Arhiv originalu PDF za 6 serpnya 2012 Procitovano 5 zhovtnya 2010 Mantyla M V Lassenius C May June 2009 What Types of Defects Are Really Discovered in Code Reviews PDF IEEE Transactions on Software Engineering Procitovano 21 bereznya 2012 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 Procitovano 2 veresnya 2015 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 Procitovano 2 veresnya 2015 Siy Harvey Votta Lawrence 1 grudnya 2004 PDF unomaha edu Arhiv originalu PDF za 28 kvitnya 2015 Procitovano 17 lyutogo 2015 https refactoring guru uk Kolawa Adam Huizinga Dorota 2007 Automated Defect Prevention Best Practices in Software Management Wiley IEEE Computer Society Press s 260 ISBN 0 470 04212 5