Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Clean Code, TDD, Mockito Poznań, 28.10.2014, Artur Otrzonsek Insert Client/Partner logo.

Podobne prezentacje


Prezentacja na temat: "Clean Code, TDD, Mockito Poznań, 28.10.2014, Artur Otrzonsek Insert Client/Partner logo."— Zapis prezentacji:

1 Clean Code, TDD, Mockito Poznań, , Artur Otrzonsek Insert Client/Partner logo

2 Copyright © Capgemini All Rights Reserved 2 poznan_clean_code.pptx 1Please discover "Update Agenda" in your Capgemini Tools to get all the agenda slides and to refresh them; there is also a layout without picture in the background available Agenda  Clean Code Znaczące nazwy Testy Komentarze  TDD  Mockito

3 Copyright © Capgemini All Rights Reserved 3 poznan_clean_code.pptx 1Please discover "Update Agenda" in your Capgemini Tools to get all the agenda slides and to refresh them; there is also a layout without picture in the background available Agenda  Clean Code Znaczące nazwy Testy Komentarze  TDD  Mockito

4 Jak zmierzyć jakość kodu Copyright © Capgemini All Rights Reserved 4 poznan_clean_code.pptx Source: „Clean Code”, Robert C. Martin

5 Dlaczego czytelność kodu jest ważna? Copyright © Capgemini All Rights Reserved 5 poznan_clean_code.pptx

6 Wpływ bałaganu w kodzie na wydajność zespołu Copyright © Capgemini All Rights Reserved 6 poznan_clean_code.pptx Źródło:„Clean Code”, Robert C. Martin

7 Ciągła poprawa kodu jest możliwa! Copyright © Capgemini All Rights Reserved 7 poznan_clean_code.pptx „Wprowadzaj do repozytorium kod lepszy niż ten, który z niego pobrałeś” Źródło:http://www.objectmentor.com/omTeam/martin_r.html

8 Copyright © Capgemini All Rights Reserved 8 poznan_clean_code.pptx 1Please discover "Update Agenda" in your Capgemini Tools to get all the agenda slides and to refresh them; there is also a layout without picture in the background available Agenda  Clean Code Znaczące nazwy Testy Komentarze  TDD  Mockito

9 Nazywamy wszystko – róbmy to dobrze Copyright © Capgemini All Rights Reserved 9 poznan_clean_code.pptx Używaj znaczących nazw Pakiety Klasy Argumenty Zmienne Metody Pliki Katalogi

10 Zmienne Copyright © Capgemini All Rights Reserved 10 poznan_clean_code.pptx int g; // suma godzin pracy int sumaGodzinPracy;

11 Metody Copyright © Capgemini All Rights Reserved 11 poznan_clean_code.pptx  Metody powinny być krótkie (~20 linii kodu)  Tylko jeden poziom abstrakcji w metodzie  Dekompozycja złożonej metody na mniejsze Pomaga dokumentować kod  Czytelne sygnatury metod Max 3-4 parametry Szczególnie uciążliwe są parametry o tych samych typach  Argumenty przełączające Parametry boolean, enum często wskazują na to, aby dodać nową metodę  Unikać powtarzającego się kodu DRY (Don’t Repeat Yourself)

12 Metody - długa lista parametrów Copyright © Capgemini All Rights Reserved 12 poznan_clean_code.pptx public List findUsers(Long countryId, Long stateId, boolean isActive, boolean isAdmin, boolean isChief, boolean isCustomer, boolean isForeigner, String countryCode, String stateCode, String streetName, int minAge, int maxAge, …) {...} public List findUsers(Long countryId, Long stateId, boolean isActive, boolean isAdmin, boolean isChief, boolean isCustomer, boolean isForeigner, String countryCode, String stateCode, String streetName, int minAge, int maxAge, …) {...} public List findUsers(UserSearchParameter searchParameter) {...}

13 Metody - długa lista parametrów - wywołanie Copyright © Capgemini All Rights Reserved 13 poznan_clean_code.pptx public List users = findUsers(1L, null, true, false, false, false, false, "PL", null, null, 20, 50, …) {...}; public List users = findUsers(1L, null, true, false, false, false, false, "PL", null, null, 20, 50, …) {...};

14 Metody - długa lista parametrów Copyright © Capgemini All Rights Reserved 14 poznan_clean_code.pptx class UserSearchParameter { private Long countryId; private boolean active; // getters and setters } class UserSearchParameter { private Long countryId; private boolean active; // getters and setters } class UserSearchParameterBuilder { private UserSearchParameter searchParameter = new UserSearchParameter(); public UserSearchParameterBuilder onlyActive() { searchParameter.setActive(true); return this; } public UserSearchParameter build() { return searchParameter; } class UserSearchParameterBuilder { private UserSearchParameter searchParameter = new UserSearchParameter(); public UserSearchParameterBuilder onlyActive() { searchParameter.setActive(true); return this; } public UserSearchParameter build() { return searchParameter; }

15 Copyright © Capgemini All Rights Reserved 15 poznan_clean_code.pptx 1Please discover "Update Agenda" in your Capgemini Tools to get all the agenda slides and to refresh them; there is also a layout without picture in the background available Agenda  Clean Code Znaczące nazwy Testy Komentarze  TDD  Mockito

16 Testy jednostkowe Copyright © Capgemini All Rights Reserved 16 poznan_clean_code.pptx  Dokumentują kod i ułatwiają zrozumienie jego działania  Ułatwiają refaktoryzację kodu  Kod testów nie jest kodem drugiej kategorii!  Powinny być czytelne Będą zmieniane w trakcie zmian kodu produkcyjnego  Tylko jedna koncepcja jest testowana w jednym teście  Czyste testy powinny być zgodne z zasadą „F.I.R.S.T.”: Fast (szybkie) Independent (niezależne - nie powinny zależeć od siebie) Repeatable (powtarzalne w każdym środowisku) Self-Validating (samodzielnie sprawdzające wynik) Timely (napisane „o czasie”, przed kodem produkcyjnym)

17 Tylko jedna koncepcja jest testowana w jednym teście Copyright © Capgemini All Rights Reserved 17 poznan_clean_code.pptx public void testShouldReturnEmptyListWhenUserHasNoRoles() { // given userController.addUser(createUser(USER_MAIL)); User user = userController.findUser(USER_MAIL); // when List roles = userController.findRoles(user.getId()); // then assertTrue(roles.isEmpty()); } public void testShouldReturnEmptyListWhenUserHasNoRoles() { // given userController.addUser(createUser(USER_MAIL)); User user = userController.findUser(USER_MAIL); // when List roles = userController.findRoles(user.getId()); // then assertTrue(roles.isEmpty()); }

18 Copyright © Capgemini All Rights Reserved 18 poznan_clean_code.pptx 1Please discover "Update Agenda" in your Capgemini Tools to get all the agenda slides and to refresh them; there is also a layout without picture in the background available Agenda  Clean Code Znaczące nazwy Testy Komentarze  TDD  Mockito

19 Komentarze Copyright © Capgemini All Rights Reserved 19 poznan_clean_code.pptx  Kod powinien sam się opisywać Znaczące nazwy, krótkie metody, itd..  Komentowanie kodu staje się przestarzałe Po zmianie kodu najczęściej komentarz pozostaje niezmieniony  Są przydatne gdy wyjaśniają coś czego nie da się czytelnie opisać w kodzie Przykłady złego komentowania:  Przeczytanie komentarza zajmuje więcej czasu niż analiza kodu  Komentarz jest nieaktualny  Zawiera powtórzone informacje które można wyczytać z kodu

20 Copyright © Capgemini All Rights Reserved 20 poznan_clean_code.pptx 1Please discover "Update Agenda" in your Capgemini Tools to get all the agenda slides and to refresh them; there is also a layout without picture in the background available Agenda  Clean Code Znaczące nazwy Testy Komentarze  TDD  Mockito

21 TDD (Test-Driven Development) Copyright © Capgemini All Rights Reserved 21 poznan_clean_code.pptx Source:http://diogoosorio.com/public/images/blog/tdd_flow.gif

22 TDD – trzy podstawowe prawa Copyright © Capgemini All Rights Reserved 22 poznan_clean_code.pptx 1.Zabronione jest pisanie kodu produkcyjnego do czasu zaimplementowania testu. 2.Test rozwijamy do momentu aż wykryje pierwszy błąd w kodzie produkcyjnym. 3.Poprawiamy kod produkcyjny do momentu naprawy niedziałającego testu.

23 TDD – zalety Copyright © Capgemini All Rights Reserved 23 poznan_clean_code.pptx 1.Pewność  Dziesiątki testów napisanych codziennie, setki w tygodniu, a tysiące w roku  Wszystkie te testy zostaną odpalone w trakcie refaktoryzacji kodu 2.Odwaga  Reakcja na zmianę w „czyimś” kodzie 3.Dokumentacja  Każdy napisany test opisuje działanie jakiejś funkcjonalności 4.Zarys, projekt  Testy wymagają izolacji, a to wymusza implementację zgodną z Clean Code

24 Copyright © Capgemini All Rights Reserved 24 poznan_clean_code.pptx Agenda  Clean Code Znaczące nazwy Testy Komentarze  TDD  Mockito

25 Mockito Copyright © Capgemini All Rights Reserved 25 poznan_clean_code.pptx  Twórcą projektu jest Szczepan Faber  Powstał w odpowiedzi na uciążliwe korzystanie z mocków podczas budowy testów  Reprezentuje odmienne podejście typu spy test bardziej naturalne, prowadzi do przejrzystego kodu  Proste i przejrzyste API  Czytelne komunikaty o błędach  Bardzo dobra dokumentacja

26 Mockito, jak to działa Copyright © Capgemini All Rights Reserved 26 poznan_clean_code.pptx

27 Mockito, przechwytywanie argumentów Copyright © Capgemini All Rights Reserved 27 poznan_clean_code.pptx

28 About Capgemini With more than 120,000 people in 40 countries, Capgemini is one of the world's foremost providers of consulting, technology and outsourcing services. The Group reported 2011 global revenues of EUR 9.7 billion. Together with its clients, Capgemini creates and delivers business and technology solutions that fit their needs and drive the results they want. A deeply multicultural organization, Capgemini has developed its own way of working, the Collaborative Business Experience TM, and draws on Rightshore ®, its worldwide delivery model. Rightshore ® is a trademark belonging to Capgemini The information contained in this presentation is proprietary. Copyright © 2013 Capgemini. All rights reserved.


Pobierz ppt "Clean Code, TDD, Mockito Poznań, 28.10.2014, Artur Otrzonsek Insert Client/Partner logo."

Podobne prezentacje


Reklamy Google