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

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    1 Favorite

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

    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.
    3. moja historia
    4. ZPP
    5. Zespołowy Projekt Programistyczny My konia kuliśmy, a żaby nam nogi podstawiały.
    6. Różne potworki: • giveName() zamiast getName(), • nie pozamykane pliki, • czasem nikt nie wiedział, co aplikacja ma robić.
    7. Co to jest przegląd kodu?
    8. Co to jest przegląd kodu? • Jeden programista piszę kod, a drugi jest proszony o jego przegląd,
    9. Co to jest przegląd kodu? • Jeden programista piszę kod, a drugi jest proszony o jego przegląd, • “delikatna” krytyka linijka po linijce,
    10. 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.
    11. Po co code-review jeśli robię testy jednostkowe?
    12. Po co code-review jeśli robię testy jednostkowe? • Obie rzeczy są po to, aby minimalizować liczbę błędów,
    13. 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ć,
    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ć, • architektura, zaprojektowanie aplikacji,
    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, • wszyscy w zespole znają lepiej kod aplikacji.
    16. Zalety code-review (1) uchowanie przed godzinami debuggowania senior developer - junior developer (czarna praca)
    17. 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)
    18. 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)
    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, • zwiększenie pewności, że stworzony kod jest lepiej zaprojektowany, 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, • utrzymanie czytelności i wysokiej jakości kodu, 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, • zachęca programistów do wzajemnej uchowanie przed godzinami debuggowania senior developer - junior komunikacji. developer (czarna praca)
    22. Zalety code-review (2) subtelne i niepisane zasady wiedza o tym, kto jest w czym dobry, a gdzie trzeba się jeszcze komus przygladac
    23. 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
    24. 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
    25. 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
    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, • stworzenie zaufania, 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, • alternatywa dla kodowania w parach. subtelne i niepisane zasady wiedza o tym, kto jest w czym dobry, a gdzie trzeba się jeszcze komus przygladac
    28. Rzeczywistość code-review
    29. Rzeczywistość code-review • Trudny do wprowadzenia,
    30. Rzeczywistość code-review • Trudny do wprowadzenia, • większość programistów nie lubi krytyki,
    31. Rzeczywistość code-review • Trudny do wprowadzenia, • większość programistów nie lubi krytyki, • korzyści nie są zauważalne od razu,
    32. 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,
    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, • niezależne przeglądy kodu duplikują pracę.
    34. 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
    35. 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
    36. 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
    37. 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
    38. 3 podejścia do code- review
    39. 3 podejścia do code- review • Brak przeglądu kodu,
    40. 3 podejścia do code- review • Brak przeglądu kodu, • nieblokujące przeglądy kodu,
    41. 3 podejścia do code- review • Brak przeglądu kodu, • nieblokujące przeglądy kodu, • sprawdzenie następuje zazwyczaj po wprowadzeniu kodu do repozytorium,
    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, • takie właśnie lubimy :),
    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 :), • blokujące przeglądy kodu,
    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, • nic nie jest wprowadzanie do repozytorium dopóki nie jest sprawdzone,
    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, • takich nie lubimy :(.
    46. 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 :(.
    47. Nieblokujące przeglądy kodu
    48. Nieblokujące przeglądy kodu • Brak blokady repozytorium,
    49. Nieblokujące przeglądy kodu • Brak blokady repozytorium, • nie trzeba siedzieć i czekać na przegląd,
    50. 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,
    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, • wejdzie mu to w nawyk tak, jak pisanie testów,
    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, • 10 sekund poświęcone pisaniu komentarza ułatwia znacząco jego czytanie,
    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, • zdrowy nawyk, ćwiczenie umysłowe,
    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, • poznawanie innych stylów/idiomów kodowania.
    55. Prostsza forma code- review Pomysł na współdzielone pliki, workspace’y działające w czasie rzeczywistym.
    56. Prostsza forma code- review Pomysł na współdzielone pliki, workspace’y działające w czasie rzeczywistym. • Wirutalne przeglądy kodu,
    57. 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,
    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, • wprowadzenie komunikacji dające poczucie jakby inni programiści byli obok siebie.
    59. O czym jest ta magisterka? Jest to system wspomagający dokonywanie wirtualnych przeglądów kodu.
    60. Jak to działa?
    61. Jak to działa? programista
    62. Jak to działa? programista repozytorium (subversion)
    63. Jak to działa? programista repozytorium nighthawk (subversion) code-review
    64. Inne bajery
    65. Inne bajery • Ładne kolorowanie składni i diff’ów,
    66. Inne bajery • Ładne kolorowanie składni i diff’ów, • przeglądanie wizualne kodu w repozytorium (!),
    67. Inne bajery • Ładne kolorowanie składni i diff’ów, • przeglądanie wizualne kodu w repozytorium (!), • workflow: draft > approval > review > summarize > closed,
    68. 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,
    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, • integracja z FindBugs (z analizą statyczną).
    70. Wizualny diff
    71. Innowacyjna implementacja
    72. Innowacyjna implementacja
    73. Innowacyjna implementacja
    74. Innowacyjna implementacja
    75. Innowacyjna implementacja
    76. Innowacyjna implementacja
    77. Innowacyjna implementacja
    78. Innowacyjna implementacja
    79. Innowacyjna implementacja
    80. Dlaczego warto to zrobić?
    81. Dlaczego warto to zrobić? • Nieoceniony dla rozproszonych zespołów programistycznych,
    82. Dlaczego warto to zrobić? • Nieoceniony dla rozproszonych zespołów programistycznych, • przeglądy online zamiast czytania gazeta.pl,
    83. Dlaczego warto to zrobić? • Nieoceniony dla rozproszonych zespołów programistycznych, • przeglądy online zamiast czytania gazeta.pl, • szybkie przygotowanie kodu do przeglądu,
    84. 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,
    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, • metryka, możliwość odpowiedzi.
    86. Proces wytwórczy aplikacji
    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. Harmonogram do końca listopada: zebranie wymagań i opracowanie koncepcji do końca pierwszego semestru: implementacja do końca kwietnia: papierkowa robota
    93. Pytania? Wiktor Gworek http://blog.mocna-kawa.com

    + wiktorwiktor, 3 years ago

    custom

    6329 views, 1 favs, 6 embeds more stats

    Code Review, czyli przegląd kodu - prezentacja te more

    More info about this document

    CC Attribution-ShareAlike LicenseCC Attribution-ShareAlike License

    Go to text version

    • Total Views 6329
      • 5333 on SlideShare
      • 996 from embeds
    • Comments 0
    • Favorites 1
    • Downloads 32
    Most viewed embeds
    • 988 views on http://blog.mocna-kawa.com
    • 2 views on http://feeds.feedburner.com
    • 2 views on http://s3.amazonaws.com
    • 2 views on file://
    • 1 views on http://hydepark.prnews.pl

    more

    All embeds
    • 988 views on http://blog.mocna-kawa.com
    • 2 views on http://feeds.feedburner.com
    • 2 views on http://s3.amazonaws.com
    • 2 views on file://
    • 1 views on http://hydepark.prnews.pl
    • 1 views on http://www.ignitelabs.com

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories