Poznań, , Artur Otrzonsek

Slides:



Advertisements
Podobne prezentacje
Poland - DAPHNE subproject
Advertisements

Session 6 Case Study – Elektrim SA Saturday, January 15, 2011 SAL Wroclaw Lectures on Corporate Governance Geoffrey Mazullo Principal Emerging Markets.
I część 1.
USA.
Usługi sieciowe Wykład 9 VPN
1 Ochrona środowiska – historia od PLAN 1.Wprowadzenie 2.Przegląd wydarzeń od 1972 roku 3.Podsumowanie 4.Literatura.
Java Server Faces Tomasz Nowak.
Sun altitude Made by: Patryk Cichy Patryk Cichy Mateusz Dąbrowicz Mateusz Dąbrowicz Mariusz Król Mariusz Król Mariusz Dyrda Mariusz Dyrda Group leader:
Saint Nicolaus.
Netiquette Wiktoria Pacholik. Netiquette Netiquette is a collection of cyberspace rules. Netiquette is obligatory every internets user.
Copyright for librarians - a presentation of new education offer for librarians Agenda: The idea of the project Course content How to use an e-learning.
YOUTH in Gdynia. YOUTH: step 1 – Recruitment (December 2007) Szkoła Podstawowa nr 21 Szkoła Podstawowa nr 6 Szkoła Podstawowa nr 12 Gimnazjum nr 15 Towarzystwo.
Materiały pochodzą z Platformy Edukacyjnej Portalu Wszelkie treści i zasoby edukacyjne publikowane na łamach Portalu
Strona Bierna.
GUI Struktury Spotkanie integracyjne Nazwa wydziału: EAIiE Nazwa katedry: Informatyka Miejsce i data prezentacji: Kraków,
Mirosław Ochodek Sponsorzy: JFace Jak jeszcze szybciej tworzyć interfejsy? ECESIS Eclipse Community Education Project An.
Team Building Copyright, 2003 © Jerzy R. Nawrocki Requirements Engineering Lecture.
Ministerstwo Gospodarki Poland'sexperience Waldemar Pawlak Deputy Prime Minister, Minister of Economy March 2010.
Łukasz Monkiewicz.
POLSKA SZKOŁA PODSTAWOWA IM. LECHA BĄDKOWSKIEGO W LUZINIE
MS SQL SERVER udział w rynku. Source: Gartner Dataquest (May 2006) Company Market Share (%) Market Share (%) Growth (%) Oracle6, ,
1 Building Integration System - Training Internal | ST-IST/PRM1 | 02/2008 | © Robert Bosch GmbH All rights reserved, also regarding any disposal,
Tadeusz Janasiewicz IT Group, Tadeusz Janasiewicz, WSUS, IT Group, r.
Avaya IP Office - Wersja 8
Do you know who I am? Czy wiesz kim ja jestem Soy alguien con quien convives a diario Im somebody you live with every day.. Jestem kims z kim żyjesz.
Trade unions - how to avoid problems ? Kancelaria Prawna Bujakiewicz & Sancewicz 1.
Piotr Nowak Development Manager Construction Innovation and Development Department The Chartered Institute of Building.
W ś wiecie ba ś ni Andersena In the world of Andersen.
Krzysztof Manuszewski
Theory of Computer Science - Basic information
TOEFL® Practice Online (TPO)
Damian Wojdan Kraków,
- For students (12 questions) - For parents (6 questions) - For grandparents (6 questions)
IDIOMS & PROVERBS Why not to enrich your language with such great phrases and expressions?...
REGIONALNE CENTRUM INFORMACJI I WSPOMAGANIA ORGANIZACJI POZARZĄDOWYCH REGIONAL INFORMATION and SUPPORT CENTER for NGOs EVALUATION V BALTIC SEA NGO FORUM.
1 © 2006 Cisco Systems, Inc. All rights reserved.SEC Agenda Cisco Business Partner Wymogi bezpieczeństwa współczesnej architektury sieciowej CISCO Self-Defending.
BLOOD DONATION.
Click to show the screen.
POLAND. we will take you on a journey during which you will learn something about us.
Czyli jak zrobić prezentację komputerową?
Co można zwiedzić w WIELKIEJ BRYTANII Pamiętajmy o miejscach które możemy zwiedzić na przykład w WIELKIEJ BRYTANII. I też czym różni się ta wyspa od naszego.
PIO 2_2, Zofia Kruczkiewicz1 Wykład 2 – część druga Iteracyjno-rozwojowy cykl oprogramowania 2.
PIO. Autor -Zofia Kruczkiewicz1 Wykład 1-część druga Wstęp do inżynierii oprogramowania. Cykle rozwoju oprogramowania (część biznesowa aplikacji) iteracyjno-rozwojowy.
Podstawy programowania
ST/PRM2-EU | April 2013 | © Robert Bosch GmbH All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution,
The Grumpy Test If at least one of these pictures does not make you smile, then you are grumpy and need to go back to bed. Test na ponuraka Jak nie usmiechniesz.
Cz.8 Zdarzenia. Refleksja – przypomnienie Event Programowanie zdarzeniowe Do dzieła!
Automatyzacja testów akceptacyjnych
Powrót do sukcesu Analiza przypadku Princessy (rola badań marketingowych podczas rozwoju produktu: ) Powrót do sukcesu Analiza przypadku Princessy.
Warsztaty C# Część 2 Grzegorz Piotrowski Grupa.NET PO
BEZPIECZNY INTERNET. PRZEGLĄDANIE STRON INTERNETOWYCH.
Temat 1: Składnia języka HTML
Temat 1: Umieszczanie skryptów w dokumencie
Instrukcja switch switch (wyrażenie) { case wart_1 : { instr_1; break; } case wart_2 : { instr_2; break; } … case wart_n : { instr_n; break; } default.
Copyright © 2010 Intel Corporation. All rights reserved. Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries.
January 2O13.
TROCHĘ HISTORII Marek Zając PO CO UŻYWAĆ OPENCL? Marek Zając.
Polish cadastral system Land Administration Domain Model
1.
JEDNOŚĆ POMIĘDZY KOŚCIOŁAMI I PASTORAMI UNITY AMONG THE CHURCHES AND PASTORS.
NIEPUBLICZNA SZKOŁA PODSTAWOWA
Department | 1/11/2013 | © Robert Bosch GmbH All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution,
What comes to your mind when you think about WATERFALLS? *** Co Ci się przypomina gdy myślisz o WODOSPADACH?
Struktura przedsiębiorstwa SAP Best Practices. ©2014 SAP SE or an SAP affiliate company. All rights reserved.2 Obszar rachunku kosztów 1000 Dane te są.
Spring Framework, Spring Boot
POLISH FOR BEGINNERS.
Wydział Elektroniki Kierunek: AiR Zaawansowane metody programowania Wykład 6.
A. When we celebrate? Celebrating the European Day of Languages ​​ on September 26 since We celebrate it in 47 countries.
Kalendarz 2020.
Dynamics 365 CE i język TypeScript
Zapis prezentacji:

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

Agenda Clean Code Znaczące nazwy Testy Komentarze TDD Mockito 1 Please 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 Copyright © Capgemini 2013. All Rights Reserved poznan_clean_code.pptx

Agenda Clean Code Znaczące nazwy Testy Komentarze TDD Mockito 1 Please 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 Copyright © Capgemini 2013. All Rights Reserved poznan_clean_code.pptx

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

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

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

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

Agenda Clean Code Znaczące nazwy Testy Komentarze TDD Mockito 1 Please 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 Copyright © Capgemini 2013. All Rights Reserved poznan_clean_code.pptx

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

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

Metody 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) Copyright © Capgemini 2013. All Rights Reserved poznan_clean_code.pptx

Metody - długa lista parametrów public List<User>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<User>findUsers(UserSearchParameter searchParameter) {...} Copyright © Capgemini 2013. All Rights Reserved poznan_clean_code.pptx

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

Metody - długa lista parametrów 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; Copyright © Capgemini 2013. All Rights Reserved poznan_clean_code.pptx

Agenda Clean Code Znaczące nazwy Testy Komentarze TDD Mockito 1 Please 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 Copyright © Capgemini 2013. All Rights Reserved poznan_clean_code.pptx

Testy jednostkowe 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) Copyright © Capgemini 2013. All Rights Reserved poznan_clean_code.pptx

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

Agenda Clean Code Znaczące nazwy Testy Komentarze TDD Mockito 1 Please 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 Copyright © Capgemini 2013. All Rights Reserved poznan_clean_code.pptx

Komentarze 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 Copyright © Capgemini 2013. All Rights Reserved poznan_clean_code.pptx

Agenda Clean Code Znaczące nazwy Testy Komentarze TDD Mockito 1 Please 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 Copyright © Capgemini 2013. All Rights Reserved poznan_clean_code.pptx

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

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

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

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

Mockito 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 Copyright © Capgemini 2013. All Rights Reserved poznan_clean_code.pptx

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

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