SlideShare a Scribd company logo

Code Review, czyli przegląd kodu - prezentacja tematu pracy magisterskiej

Wiktor Gworek
Wiktor Gworek

Code Review, czyli przegląd kodu - prezentacja tematu pracy magisterskiej

Code Review, czyli przegląd kodu - prezentacja tematu pracy magisterskiej

1 of 94
Download to read offline
Code-review, czyli
 przegląd kodu

             Wiktor Gworek
        V rok informatyki MIMUW

       http://blog.mocna-kawa.com
Tłumaczenie code-review

•   Nie ma dobrego
    odpowiednika code-review w
    języku polskim,

•   możliwe tłumaczenia to
    dozór kodu, przegląd kodu,

•   code-review jest znane także
    jako peer-review.
moja historia
ZPP
Zespołowy Projekt
     Programistyczny




My konia kuliśmy, a żaby nam nogi podstawiały.
Code Review, czyli przegląd kodu -  prezentacja tematu pracy magisterskiej
Ad

Recommended

Konrad Gadzina: Test-Driven Gamedev - testy automatyczne a tworzenie gier
Konrad Gadzina: Test-Driven Gamedev - testy automatyczne a tworzenie gierKonrad Gadzina: Test-Driven Gamedev - testy automatyczne a tworzenie gier
Konrad Gadzina: Test-Driven Gamedev - testy automatyczne a tworzenie gierGameDesire Academy
 
Code Review budujące relacje w zespole
Code Review budujące relacje w zespoleCode Review budujące relacje w zespole
Code Review budujące relacje w zespoleMaciej Mortek
 
Czym jest złożoność ?
Czym jest złożoność ?Czym jest złożoność ?
Czym jest złożoność ?GOG.com dev team
 
Test na testera. Sprawdź czy nadajesz się do tego zawodu.
Test na testera. Sprawdź czy nadajesz się do tego zawodu.Test na testera. Sprawdź czy nadajesz się do tego zawodu.
Test na testera. Sprawdź czy nadajesz się do tego zawodu.Damian Szczurek
 
Dwa sposoby na pisanie aplikacji bez błędów
Dwa sposoby na pisanie aplikacji bez błędówDwa sposoby na pisanie aplikacji bez błędów
Dwa sposoby na pisanie aplikacji bez błędówMichal Lukaszewski
 
Praktyczne code reviews - PHPConPl
Praktyczne code reviews - PHPConPlPraktyczne code reviews - PHPConPl
Praktyczne code reviews - PHPConPlSebastian Marek
 
Head First Software Development. Edycja polska
Head First Software Development. Edycja polskaHead First Software Development. Edycja polska
Head First Software Development. Edycja polskaWydawnictwo Helion
 

More Related Content

Similar to Code Review, czyli przegląd kodu - prezentacja tematu pracy magisterskiej

Girls in It - Front-end & Back-end. Jak zacząć
Girls in It - Front-end & Back-end. Jak zacząćGirls in It - Front-end & Back-end. Jak zacząć
Girls in It - Front-end & Back-end. Jak zacząćmonterail
 
C++. Zaawansowane programowanie
C++. Zaawansowane programowanieC++. Zaawansowane programowanie
C++. Zaawansowane programowanieWydawnictwo Helion
 
Researcher / Product Owner (WUD 2012)
Researcher / Product Owner (WUD 2012)Researcher / Product Owner (WUD 2012)
Researcher / Product Owner (WUD 2012)Bartosz Mozyrko
 
Java. Obsługa wyjątków, usuwanie błędów i testowanie kodu
Java. Obsługa wyjątków, usuwanie błędów i testowanie koduJava. Obsługa wyjątków, usuwanie błędów i testowanie kodu
Java. Obsługa wyjątków, usuwanie błędów i testowanie koduWydawnictwo Helion
 
Head First Object-Oriented Analysis and Design. Edycja polska
Head First Object-Oriented Analysis and Design. Edycja polskaHead First Object-Oriented Analysis and Design. Edycja polska
Head First Object-Oriented Analysis and Design. Edycja polskaWydawnictwo Helion
 
JDD2014: Code review - jak zyskać więcej niż tracić? - Sebastian Malaca
JDD2014: Code review - jak zyskać więcej niż tracić? - Sebastian MalacaJDD2014: Code review - jak zyskać więcej niż tracić? - Sebastian Malaca
JDD2014: Code review - jak zyskać więcej niż tracić? - Sebastian MalacaPROIDEA
 
InfoShare 2012 efektywne przeglądy kodu w zespołach agile [Polish]
InfoShare 2012 efektywne przeglądy kodu w zespołach agile [Polish]InfoShare 2012 efektywne przeglądy kodu w zespołach agile [Polish]
InfoShare 2012 efektywne przeglądy kodu w zespołach agile [Polish]Wojciech Seliga
 
Produkcja aplikacji internetowych
Produkcja aplikacji internetowychProdukcja aplikacji internetowych
Produkcja aplikacji internetowychTomasz Borowski
 
Code review
Code reviewCode review
Code reviewDivante
 
TDD – w poszukiwaniu źródeł jakości.
TDD – w poszukiwaniu źródeł jakości.TDD – w poszukiwaniu źródeł jakości.
TDD – w poszukiwaniu źródeł jakości.Future Processing
 

Similar to Code Review, czyli przegląd kodu - prezentacja tematu pracy magisterskiej (15)

Programowanie. Od podstaw
Programowanie. Od podstawProgramowanie. Od podstaw
Programowanie. Od podstaw
 
C++. Styl programowania
C++. Styl programowaniaC++. Styl programowania
C++. Styl programowania
 
Legacy code
Legacy codeLegacy code
Legacy code
 
Praca z Legacy Code
Praca z Legacy CodePraca z Legacy Code
Praca z Legacy Code
 
User Experience – wpływ internetu na aplikacje enterprise - Netcamp #14
User Experience – wpływ internetu na aplikacje enterprise - Netcamp #14User Experience – wpływ internetu na aplikacje enterprise - Netcamp #14
User Experience – wpływ internetu na aplikacje enterprise - Netcamp #14
 
Girls in It - Front-end & Back-end. Jak zacząć
Girls in It - Front-end & Back-end. Jak zacząćGirls in It - Front-end & Back-end. Jak zacząć
Girls in It - Front-end & Back-end. Jak zacząć
 
C++. Zaawansowane programowanie
C++. Zaawansowane programowanieC++. Zaawansowane programowanie
C++. Zaawansowane programowanie
 
Researcher / Product Owner (WUD 2012)
Researcher / Product Owner (WUD 2012)Researcher / Product Owner (WUD 2012)
Researcher / Product Owner (WUD 2012)
 
Java. Obsługa wyjątków, usuwanie błędów i testowanie kodu
Java. Obsługa wyjątków, usuwanie błędów i testowanie koduJava. Obsługa wyjątków, usuwanie błędów i testowanie kodu
Java. Obsługa wyjątków, usuwanie błędów i testowanie kodu
 
Head First Object-Oriented Analysis and Design. Edycja polska
Head First Object-Oriented Analysis and Design. Edycja polskaHead First Object-Oriented Analysis and Design. Edycja polska
Head First Object-Oriented Analysis and Design. Edycja polska
 
JDD2014: Code review - jak zyskać więcej niż tracić? - Sebastian Malaca
JDD2014: Code review - jak zyskać więcej niż tracić? - Sebastian MalacaJDD2014: Code review - jak zyskać więcej niż tracić? - Sebastian Malaca
JDD2014: Code review - jak zyskać więcej niż tracić? - Sebastian Malaca
 
InfoShare 2012 efektywne przeglądy kodu w zespołach agile [Polish]
InfoShare 2012 efektywne przeglądy kodu w zespołach agile [Polish]InfoShare 2012 efektywne przeglądy kodu w zespołach agile [Polish]
InfoShare 2012 efektywne przeglądy kodu w zespołach agile [Polish]
 
Produkcja aplikacji internetowych
Produkcja aplikacji internetowychProdukcja aplikacji internetowych
Produkcja aplikacji internetowych
 
Code review
Code reviewCode review
Code review
 
TDD – w poszukiwaniu źródeł jakości.
TDD – w poszukiwaniu źródeł jakości.TDD – w poszukiwaniu źródeł jakości.
TDD – w poszukiwaniu źródeł jakości.
 

Code Review, czyli przegląd kodu - prezentacja tematu pracy magisterskiej

  • 1. Code-review, czyli przegląd kodu Wiktor Gworek V rok informatyki MIMUW http://blog.mocna-kawa.com
  • 2. Tłumaczenie code-review • Nie ma dobrego odpowiednika code-review w języku polskim, • możliwe tłumaczenia to dozór kodu, przegląd kodu, • code-review jest znane także jako peer-review.
  • 4. ZPP
  • 5. Zespołowy Projekt Programistyczny My konia kuliśmy, a żaby nam nogi podstawiały.
  • 7. Różne potworki: • giveName() zamiast getName(), • nie pozamykane pliki, • czasem nikt nie wiedział, co aplikacja ma robić.
  • 8. Co to jest przegląd kodu?
  • 9. Co to jest przegląd kodu? • Jeden programista piszę kod, a drugi jest proszony o jego przegląd,
  • 10. Co to jest przegląd kodu? • Jeden programista piszę kod, a drugi jest proszony o jego przegląd, • “delikatna” krytyka linijka po linijce,
  • 11. Co to jest przegląd kodu? • Jeden programista piszę kod, a drugi jest proszony o jego przegląd, • “delikatna” krytyka linijka po linijce, • celem jest kooperacja, a nie usilne szukanie błędów.
  • 12. Po co code-review jeśli robię testy jednostkowe?
  • 13. Po co code-review jeśli robię testy jednostkowe? • Obie rzeczy są po to, aby minimalizować liczbę błędów,
  • 14. Po co code-review jeśli robię testy jednostkowe? • Obie rzeczy są po to, aby minimalizować liczbę błędów, • nie wszystko da się prztestować,
  • 15. Po co code-review jeśli robię testy jednostkowe? • Obie rzeczy są po to, aby minimalizować liczbę błędów, • nie wszystko da się prztestować, • architektura, zaprojektowanie aplikacji,
  • 16. Po co code-review jeśli robię testy jednostkowe? • Obie rzeczy są po to, aby minimalizować liczbę błędów, • nie wszystko da się prztestować, • architektura, zaprojektowanie aplikacji, • wszyscy w zespole znają lepiej kod aplikacji.
  • 17. Zalety code-review (1) uchowanie przed godzinami debuggowania senior developer - junior developer (czarna praca)
  • 18. Zalety code-review (1) • Dwie pary oczu znajdują więcej błędów niż jedna, uchowanie przed godzinami debuggowania senior developer - junior developer (czarna praca)
  • 19. Zalety code-review (1) • Dwie pary oczu znajdują więcej błędów niż jedna, • znajdowane błędów we wstępnych cyklach pisania aplikacji, uchowanie przed godzinami debuggowania senior developer - junior developer (czarna praca)
  • 20. Zalety code-review (1) • Dwie pary oczu znajdują więcej błędów niż jedna, • znajdowane błędów we wstępnych cyklach pisania aplikacji, • zwiększenie pewności, że stworzony kod jest lepiej zaprojektowany, uchowanie przed godzinami debuggowania senior developer - junior developer (czarna praca)
  • 21. Zalety code-review (1) • Dwie pary oczu znajdują więcej błędów niż jedna, • znajdowane błędów we wstępnych cyklach pisania aplikacji, • zwiększenie pewności, że stworzony kod jest lepiej zaprojektowany, • utrzymanie czytelności i wysokiej jakości kodu, uchowanie przed godzinami debuggowania senior developer - junior developer (czarna praca)
  • 22. Zalety code-review (1) • Dwie pary oczu znajdują więcej błędów niż jedna, • znajdowane błędów we wstępnych cyklach pisania aplikacji, • zwiększenie pewności, że stworzony kod jest lepiej zaprojektowany, • utrzymanie czytelności i wysokiej jakości kodu, • zachęca programistów do wzajemnej uchowanie przed godzinami debuggowania senior developer - junior komunikacji. developer (czarna praca)
  • 23. Zalety code-review (2) subtelne i niepisane zasady wiedza o tym, kto jest w czym dobry, a gdzie trzeba się jeszcze komus przygladac
  • 24. Zalety code-review (2) • Nauczanie świeżych programistów, subtelne i niepisane zasady wiedza o tym, kto jest w czym dobry, a gdzie trzeba się jeszcze komus przygladac
  • 25. Zalety code-review (2) • Nauczanie świeżych programistów, • dzielenie się wiedzą i doświadczeniem, subtelne i niepisane zasady wiedza o tym, kto jest w czym dobry, a gdzie trzeba się jeszcze komus przygladac
  • 26. Zalety code-review (2) • Nauczanie świeżych programistów, • dzielenie się wiedzą i doświadczeniem, • uczenie się z błędów bez psucia niczego, subtelne i niepisane zasady wiedza o tym, kto jest w czym dobry, a gdzie trzeba się jeszcze komus przygladac
  • 27. Zalety code-review (2) • Nauczanie świeżych programistów, • dzielenie się wiedzą i doświadczeniem, • uczenie się z błędów bez psucia niczego, • stworzenie zaufania, subtelne i niepisane zasady wiedza o tym, kto jest w czym dobry, a gdzie trzeba się jeszcze komus przygladac
  • 28. Zalety code-review (2) • Nauczanie świeżych programistów, • dzielenie się wiedzą i doświadczeniem, • uczenie się z błędów bez psucia niczego, • stworzenie zaufania, • alternatywa dla kodowania w parach. subtelne i niepisane zasady wiedza o tym, kto jest w czym dobry, a gdzie trzeba się jeszcze komus przygladac
  • 31. Rzeczywistość code-review • Trudny do wprowadzenia, • większość programistów nie lubi krytyki,
  • 32. Rzeczywistość code-review • Trudny do wprowadzenia, • większość programistów nie lubi krytyki, • korzyści nie są zauważalne od razu,
  • 33. Rzeczywistość code-review • Trudny do wprowadzenia, • większość programistów nie lubi krytyki, • korzyści nie są zauważalne od razu, • publiczne przeglądy kodu zabierają za dużo czasu,
  • 34. Rzeczywistość code-review • Trudny do wprowadzenia, • większość programistów nie lubi krytyki, • korzyści nie są zauważalne od razu, • publiczne przeglądy kodu zabierają za dużo czasu, • niezależne przeglądy kodu duplikują pracę.
  • 35. Fakty o code-review Kiedy ser wlet otrzymuje więcej niż 20 requestów na sekundę to pojawia się deadlock pomiędzy A.java:128 a B.java:56
  • 36. Fakty o code-review • Przeglądy kodu nie ujawniają krytycznych błędów, Kiedy ser wlet otrzymuje więcej niż 20 requestów na sekundę to pojawia się deadlock pomiędzy A.java:128 a B.java:56
  • 37. Fakty o code-review • Przeglądy kodu nie ujawniają krytycznych błędów, • programiści stają się bardziej uczciwi, Kiedy ser wlet otrzymuje więcej niż 20 requestów na sekundę to pojawia się deadlock pomiędzy A.java:128 a B.java:56
  • 38. Fakty o code-review • Przeglądy kodu nie ujawniają krytycznych błędów, • programiści stają się bardziej uczciwi, • trzeba spędzić więcej czasu, żeby uczynić kod bardziej czytelnym. Kiedy ser wlet otrzymuje więcej niż 20 requestów na sekundę to pojawia się deadlock pomiędzy A.java:128 a B.java:56
  • 39. 3 podejścia do code- review
  • 40. 3 podejścia do code- review • Brak przeglądu kodu,
  • 41. 3 podejścia do code- review • Brak przeglądu kodu, • nieblokujące przeglądy kodu,
  • 42. 3 podejścia do code- review • Brak przeglądu kodu, • nieblokujące przeglądy kodu, • sprawdzenie następuje zazwyczaj po wprowadzeniu kodu do repozytorium,
  • 43. 3 podejścia do code- review • Brak przeglądu kodu, • nieblokujące przeglądy kodu, • sprawdzenie następuje zazwyczaj po wprowadzeniu kodu do repozytorium, • takie właśnie lubimy :),
  • 44. 3 podejścia do code- review • Brak przeglądu kodu, • nieblokujące przeglądy kodu, • sprawdzenie następuje zazwyczaj po wprowadzeniu kodu do repozytorium, • takie właśnie lubimy :), • blokujące przeglądy kodu,
  • 45. 3 podejścia do code- review • Brak przeglądu kodu, • nieblokujące przeglądy kodu, • sprawdzenie następuje zazwyczaj po wprowadzeniu kodu do repozytorium, • takie właśnie lubimy :), • blokujące przeglądy kodu, • nic nie jest wprowadzanie do repozytorium dopóki nie jest sprawdzone,
  • 46. 3 podejścia do code- review • Brak przeglądu kodu, • nieblokujące przeglądy kodu, • sprawdzenie następuje zazwyczaj po wprowadzeniu kodu do repozytorium, • takie właśnie lubimy :), • blokujące przeglądy kodu, • nic nie jest wprowadzanie do repozytorium dopóki nie jest sprawdzone, • takich nie lubimy :(.
  • 47. 3 podejścia do code- review • Brak przeglądu kodu,ogóle nie lubimy tego w • nieblokujące przeglądy kodu, • sprawdzenie następuje zazwyczaj po wprowadzeniu kodu do repozytorium, • takie właśnie lubimy :), • blokujące przeglądy kodu, • nic nie jest wprowadzanie do repozytorium dopóki nie jest sprawdzone, • takich nie lubimy :(.
  • 49. Nieblokujące przeglądy kodu • Brak blokady repozytorium,
  • 50. Nieblokujące przeglądy kodu • Brak blokady repozytorium, • nie trzeba siedzieć i czekać na przegląd,
  • 51. Nieblokujące przeglądy kodu • Brak blokady repozytorium, • nie trzeba siedzieć i czekać na przegląd, • programista dokonuje przeglądu wtedy, kiedy ma na to czas,
  • 52. Nieblokujące przeglądy kodu • Brak blokady repozytorium, • nie trzeba siedzieć i czekać na przegląd, • programista dokonuje przeglądu wtedy, kiedy ma na to czas, • wejdzie mu to w nawyk tak, jak pisanie testów,
  • 53. Nieblokujące przeglądy kodu • Brak blokady repozytorium, • nie trzeba siedzieć i czekać na przegląd, • programista dokonuje przeglądu wtedy, kiedy ma na to czas, • wejdzie mu to w nawyk tak, jak pisanie testów, • 10 sekund poświęcone pisaniu komentarza ułatwia znacząco jego czytanie,
  • 54. Nieblokujące przeglądy kodu • Brak blokady repozytorium, • nie trzeba siedzieć i czekać na przegląd, • programista dokonuje przeglądu wtedy, kiedy ma na to czas, • wejdzie mu to w nawyk tak, jak pisanie testów, • 10 sekund poświęcone pisaniu komentarza ułatwia znacząco jego czytanie, • zdrowy nawyk, ćwiczenie umysłowe,
  • 55. Nieblokujące przeglądy kodu • Brak blokady repozytorium, • nie trzeba siedzieć i czekać na przegląd, • programista dokonuje przeglądu wtedy, kiedy ma na to czas, • wejdzie mu to w nawyk tak, jak pisanie testów, • 10 sekund poświęcone pisaniu komentarza ułatwia znacząco jego czytanie, • zdrowy nawyk, ćwiczenie umysłowe, • poznawanie innych stylów/idiomów kodowania.
  • 56. Prostsza forma code- review Pomysł na współdzielone pliki, workspace’y działające w czasie rzeczywistym.
  • 57. Prostsza forma code- review Pomysł na współdzielone pliki, workspace’y działające w czasie rzeczywistym. • Wirutalne przeglądy kodu,
  • 58. Prostsza forma code- review Pomysł na współdzielone pliki, workspace’y działające w czasie rzeczywistym. • Wirutalne przeglądy kodu, • wiadomości przesyłane pomiędzy programistami są zorientowane na kod,
  • 59. Prostsza forma code- review Pomysł na współdzielone pliki, workspace’y działające w czasie rzeczywistym. • Wirutalne przeglądy kodu, • wiadomości przesyłane pomiędzy programistami są zorientowane na kod, • wprowadzenie komunikacji dające poczucie jakby inni programiści byli obok siebie.
  • 60. O czym jest ta magisterka? Jest to system wspomagający dokonywanie wirtualnych przeglądów kodu.
  • 63. Jak to działa? programista repozytorium (subversion)
  • 64. Jak to działa? programista repozytorium nighthawk (subversion) code-review
  • 66. Inne bajery • Ładne kolorowanie składni i diff’ów,
  • 67. Inne bajery • Ładne kolorowanie składni i diff’ów, • przeglądanie wizualne kodu w repozytorium (!),
  • 68. Inne bajery • Ładne kolorowanie składni i diff’ów, • przeglądanie wizualne kodu w repozytorium (!), • workflow: draft > approval > review > summarize > closed,
  • 69. Inne bajery • Ładne kolorowanie składni i diff’ów, • przeglądanie wizualne kodu w repozytorium (!), • workflow: draft > approval > review > summarize > closed, • role: author, reviewer, moderator,
  • 70. Inne bajery • Ładne kolorowanie składni i diff’ów, • przeglądanie wizualne kodu w repozytorium (!), • workflow: draft > approval > review > summarize > closed, • role: author, reviewer, moderator, • integracja z FindBugs (z analizą statyczną).
  • 81. Dlaczego warto to zrobić?
  • 82. Dlaczego warto to zrobić? • Nieoceniony dla rozproszonych zespołów programistycznych,
  • 83. Dlaczego warto to zrobić? • Nieoceniony dla rozproszonych zespołów programistycznych, • przeglądy online zamiast czytania gazeta.pl,
  • 84. Dlaczego warto to zrobić? • Nieoceniony dla rozproszonych zespołów programistycznych, • przeglądy online zamiast czytania gazeta.pl, • szybkie przygotowanie kodu do przeglądu,
  • 85. Dlaczego warto to zrobić? • Nieoceniony dla rozproszonych zespołów programistycznych, • przeglądy online zamiast czytania gazeta.pl, • szybkie przygotowanie kodu do przeglądu, • komentowanie inline,
  • 86. Dlaczego warto to zrobić? • Nieoceniony dla rozproszonych zespołów programistycznych, • przeglądy online zamiast czytania gazeta.pl, • szybkie przygotowanie kodu do przeglądu, • komentowanie inline, • metryka, możliwość odpowiedzi.
  • 87. Proces wytwórczy aplikacji
  • 88. Proces wytwórczy aplikacji
  • 89. Proces wytwórczy aplikacji
  • 90. Proces wytwórczy aplikacji
  • 91. Proces wytwórczy aplikacji
  • 92. Proces wytwórczy aplikacji
  • 93. Harmonogram do końca listopada: zebranie wymagań i opracowanie koncepcji do końca pierwszego semestru: implementacja do końca kwietnia: papierkowa robota
  • 94. Pytania? Wiktor Gworek http://blog.mocna-kawa.com