2. POCZĄTKUJĄCY
Uczymy się podstawowych zasad, wykonujemy określone
akcje nie zastanawiając się nad tym dlaczego akurat
te, powtarzamy wszystkie czynności jak najdokładniej niczym
mantrę – kata.
PRZEŁAMANIE
Zaczynamy rozumieć wykonywane akcje, poprzez praktykę
zdobywamy doświadczenie w używaniu wyuczonych technik w
codziennym życiu, zaczynamy dostrzegać wyjątki i uczymy się
jak sobie z nimi radzić.
UWOLNIENIE
Rozumiemy to co robimy i dlaczego to robimy, możemy
rezygnować z narzuconych wcześniej reguł ale nie pozbywając
się ich zupełnie, zasady są nam niepotrzebne gdyż w pełni
rozumiemy naturę tego co robimy.
RI
SHU
HA
4. TDD KATA:
„STRING CALCULATOR”
Zasady:
- Pracujemy tylko nad jednym wymaganiem na raz.
- Nie interesuje nas to co będzie w następnych wymaganiach.
- Piszemy tylko tyle kodu ile jest potrzebne by wymaganie zostało
spełnione.
- Testujemy tylko pozytywne scenariusze (chyba, że w wymaganiu jest
inaczej)
- Pracujemy zgodnie z zasadmi TDD – Red, Green, Refactor
- Pracujemy w parach
- Jedna osoba programuje, druga steruje.
- Co 8 minut następuje zmiana osób
- Osoby na sali mogą komentować i doradzać programującej parze, ale to
do osób przy klawiaturze należy ostateczna decyzja co do
implementacji.
5. 1. PROSTY
KALKULATOR
- Utwórz prostą metodę przyjmującą wyrażenie typu String
jako parametr.
- Metoda może przyjmować 0, 1 lub 2 liczby oddzielone
przecinkami i zwraca ich sumę (pusty string zwraca
0), przykład: „” lub „1” lub „1,2”
- Zacznij od testu dla pustego parametru.
- Następnie test dla jednego parametru i w następnym kroku
dla dwóch.
- Pamiętaj o tym by rozwiązania, które implementujeszy były
jak najprostsze.
- Po każdym przechodzącym teście pamiętaj o refactoringu.
7. 3. LICZBY ODDZIELONE
ZNAKIEM NOWEJ LINII
- Spraw by liczby przekazywane do naszej metody mogłby
być oddzielane przy użyciu nowej lini a nie tylko przecinka.
- Przykład:
„1n2,3” powinno zwrócić 6
8. 4. WSPARCIE DLA RÓŻNYCH
SEPARATORÓW
- Aby zmienić separator na inny niż domyślny należy podać w
parametrach wejściowych nowy separator w poniższy
sposób:
„//[delimiter]n[numbers...]”
- Przykład:
„//;n1,2” powinno zwrócić 3.
- Pierwsza linia z separatorem jest opcjonalna – poprzednia
funkcjonalność powinna działać bez zmian.
9. 5. DODAJEMY TYLKO
LICZBY DODATNIE
- Jeśli zostały przekazane liczby ujemne, powinien zostać
rzucony wyjątek „negatives not allowed”.
- Wszystkie ujemne liczby powinny zostać wyświetlone w
wiadomości o wyjątku.
11. 7. SEPARATOR
DOWOLNEJ DŁUGOŚCI
-Separator powinien być dowolnej długości a nie tylko
ograniczony do jednego znaku.
- Dłuższe separatory powinny być definiowane w następujący
sposób:
„//[delimiter]n[numbers...]”
- Przykład:
„//[***]n1***2***3” powinno zwrócić 6.
12. 8. WIĘCEJ NIŻ JEDEN
SEPARATOR
- Sprawmy by nasza metoda mogła obsługiwać więcej niż
jeden separator zdefiniowane w następujący sposób:
„//[delimiter1][delimiter2]n[numbers...]”
- Przykład
„//[*][;]n1*2;3” powinno zwrócić 6
13. 9. WIĘCEJ NIŻ JEDEN
SEPARATOR RÓŻNEJ DŁUGOŚCI
- Upewnijmy się, że nasza funkcja obsługuje kilka dłuższych
separatorów.