SlideShare a Scribd company logo
1 of 7
A brief introduction to
Code Review
Damir Širola
Code review
 Prolazak kroz programski kod u svrhu otkrivanja defekata u softveru
 Formalan
 Detaljno isplaniran postupak obavljanja code review-a
 Obično se obavlja na sastancima na kojima sudjeluje nekoliko developera
 Obavlja se jako detaljno
 Lightweight
 Zahtjeva manje vremena od formalnog
 Koristi se kao dio procesa razvoja softvera
Code review - lightweight
 Preko ramena
 Putem emaila
 Programiranje u paru
 Potpomognuto alatom
Code review - prednosti
 Automatizirano testiranje otkriva u prosjeku
 Unit testovi – 25% defekata
 Funkcionalno testiranje – 35% defekata
 Integracijsko testiranje – 45% defekata
 Code review prosječno otkriva 60% defekata
 Dijeljenje znanja i napredak developera
 Olakšava mentoriranje novih developera
 Potiče raspravu o kodu
 Defekti se otkrivaju u ranoj fazi razvoja softvera
 Developeri pišu bolji kod kada znaju da će ga netko drugi pregledati
Code review - nedostaci
 Uzima dosta vremena
 Može prouzrokovati konflikte unutar tima
Best practices
 Broj linija koda trebao bi biti manji od 200 po code review-u i nikako ne
prelaziti 400
 Autor koda trebao bi napraviti code review nad svojim kodom prije nego
ga pošalje drugima na code review
 Trajanje bi trebalo biti manje od 60 minuta
Alati za code review
 Ugrađeno u VS2012 i noviji (samo za TFS)
 Github (Git)
 Gerrit (Git)
 Review Board (Git, Mercurial, Subversion, Bazaar, CVS)
 Upsource (Git)

More Related Content

More from Axilis

React tips
React tipsReact tips
React tipsAxilis
 
Configuring SSL on NGNINX and less tricky servers
Configuring SSL on NGNINX and less tricky serversConfiguring SSL on NGNINX and less tricky servers
Configuring SSL on NGNINX and less tricky serversAxilis
 
Journey to Microservice architecture via Amazon Lambda
Journey to Microservice architecture via Amazon LambdaJourney to Microservice architecture via Amazon Lambda
Journey to Microservice architecture via Amazon LambdaAxilis
 
Should you react?
Should you react?Should you react?
Should you react?Axilis
 
Sweet ES2015 (ES6) Taste
Sweet ES2015 (ES6) TasteSweet ES2015 (ES6) Taste
Sweet ES2015 (ES6) TasteAxilis
 
NuGet Must Haves for LINQ
NuGet Must Haves for LINQNuGet Must Haves for LINQ
NuGet Must Haves for LINQAxilis
 
Quick introduction to zeplin
Quick introduction to zeplinQuick introduction to zeplin
Quick introduction to zeplinAxilis
 
Diving into Node with Express and Mongo
Diving into Node with Express and MongoDiving into Node with Express and Mongo
Diving into Node with Express and MongoAxilis
 
Node in Real Time - The Beginning
Node in Real Time - The BeginningNode in Real Time - The Beginning
Node in Real Time - The BeginningAxilis
 
Road to Dynamic LINQ - Part 2
 Road to Dynamic LINQ - Part 2 Road to Dynamic LINQ - Part 2
Road to Dynamic LINQ - Part 2Axilis
 
Road to Dynamic LINQ Part 1
Road to Dynamic LINQ Part 1Road to Dynamic LINQ Part 1
Road to Dynamic LINQ Part 1Axilis
 
.NET Core - Sve što trebate znati
.NET Core - Sve što trebate znati.NET Core - Sve što trebate znati
.NET Core - Sve što trebate znatiAxilis
 
Angular Translate
Angular TranslateAngular Translate
Angular TranslateAxilis
 
NPM, Bower and Gulp Kickstart in Visual Studio
 NPM, Bower and Gulp Kickstart in Visual Studio NPM, Bower and Gulp Kickstart in Visual Studio
NPM, Bower and Gulp Kickstart in Visual StudioAxilis
 
Dive Into Swift
Dive Into SwiftDive Into Swift
Dive Into SwiftAxilis
 
Python Tools for Visual Studio
Python Tools for Visual StudioPython Tools for Visual Studio
Python Tools for Visual StudioAxilis
 
Python Tools for Visual Studio
Python Tools for Visual StudioPython Tools for Visual Studio
Python Tools for Visual StudioAxilis
 
Wireframing
WireframingWireframing
WireframingAxilis
 
Angular 2.0: Getting ready
Angular 2.0: Getting readyAngular 2.0: Getting ready
Angular 2.0: Getting readyAxilis
 
Angular JS deep dive
Angular JS deep diveAngular JS deep dive
Angular JS deep diveAxilis
 

More from Axilis (20)

React tips
React tipsReact tips
React tips
 
Configuring SSL on NGNINX and less tricky servers
Configuring SSL on NGNINX and less tricky serversConfiguring SSL on NGNINX and less tricky servers
Configuring SSL on NGNINX and less tricky servers
 
Journey to Microservice architecture via Amazon Lambda
Journey to Microservice architecture via Amazon LambdaJourney to Microservice architecture via Amazon Lambda
Journey to Microservice architecture via Amazon Lambda
 
Should you react?
Should you react?Should you react?
Should you react?
 
Sweet ES2015 (ES6) Taste
Sweet ES2015 (ES6) TasteSweet ES2015 (ES6) Taste
Sweet ES2015 (ES6) Taste
 
NuGet Must Haves for LINQ
NuGet Must Haves for LINQNuGet Must Haves for LINQ
NuGet Must Haves for LINQ
 
Quick introduction to zeplin
Quick introduction to zeplinQuick introduction to zeplin
Quick introduction to zeplin
 
Diving into Node with Express and Mongo
Diving into Node with Express and MongoDiving into Node with Express and Mongo
Diving into Node with Express and Mongo
 
Node in Real Time - The Beginning
Node in Real Time - The BeginningNode in Real Time - The Beginning
Node in Real Time - The Beginning
 
Road to Dynamic LINQ - Part 2
 Road to Dynamic LINQ - Part 2 Road to Dynamic LINQ - Part 2
Road to Dynamic LINQ - Part 2
 
Road to Dynamic LINQ Part 1
Road to Dynamic LINQ Part 1Road to Dynamic LINQ Part 1
Road to Dynamic LINQ Part 1
 
.NET Core - Sve što trebate znati
.NET Core - Sve što trebate znati.NET Core - Sve što trebate znati
.NET Core - Sve što trebate znati
 
Angular Translate
Angular TranslateAngular Translate
Angular Translate
 
NPM, Bower and Gulp Kickstart in Visual Studio
 NPM, Bower and Gulp Kickstart in Visual Studio NPM, Bower and Gulp Kickstart in Visual Studio
NPM, Bower and Gulp Kickstart in Visual Studio
 
Dive Into Swift
Dive Into SwiftDive Into Swift
Dive Into Swift
 
Python Tools for Visual Studio
Python Tools for Visual StudioPython Tools for Visual Studio
Python Tools for Visual Studio
 
Python Tools for Visual Studio
Python Tools for Visual StudioPython Tools for Visual Studio
Python Tools for Visual Studio
 
Wireframing
WireframingWireframing
Wireframing
 
Angular 2.0: Getting ready
Angular 2.0: Getting readyAngular 2.0: Getting ready
Angular 2.0: Getting ready
 
Angular JS deep dive
Angular JS deep diveAngular JS deep dive
Angular JS deep dive
 

A brief introduction to Code Review

  • 1. A brief introduction to Code Review Damir Širola
  • 2. Code review  Prolazak kroz programski kod u svrhu otkrivanja defekata u softveru  Formalan  Detaljno isplaniran postupak obavljanja code review-a  Obično se obavlja na sastancima na kojima sudjeluje nekoliko developera  Obavlja se jako detaljno  Lightweight  Zahtjeva manje vremena od formalnog  Koristi se kao dio procesa razvoja softvera
  • 3. Code review - lightweight  Preko ramena  Putem emaila  Programiranje u paru  Potpomognuto alatom
  • 4. Code review - prednosti  Automatizirano testiranje otkriva u prosjeku  Unit testovi – 25% defekata  Funkcionalno testiranje – 35% defekata  Integracijsko testiranje – 45% defekata  Code review prosječno otkriva 60% defekata  Dijeljenje znanja i napredak developera  Olakšava mentoriranje novih developera  Potiče raspravu o kodu  Defekti se otkrivaju u ranoj fazi razvoja softvera  Developeri pišu bolji kod kada znaju da će ga netko drugi pregledati
  • 5. Code review - nedostaci  Uzima dosta vremena  Može prouzrokovati konflikte unutar tima
  • 6. Best practices  Broj linija koda trebao bi biti manji od 200 po code review-u i nikako ne prelaziti 400  Autor koda trebao bi napraviti code review nad svojim kodom prije nego ga pošalje drugima na code review  Trajanje bi trebalo biti manje od 60 minuta
  • 7. Alati za code review  Ugrađeno u VS2012 i noviji (samo za TFS)  Github (Git)  Gerrit (Git)  Review Board (Git, Mercurial, Subversion, Bazaar, CVS)  Upsource (Git)