- Kata
-
-
wysoce sformalizowany rodzaj ćwiczeń stosowanych w wielu tradycyjnych sztukach i sportach walki
-
sekwencje technik ataku i obrony, połączone z określonym poruszaniem, przyjęciem ściśle określonej pozycji i sposobu oddychania
-
ciągłe powtarzanie określonych czynności według zdefiniowanego schematu
-
- Kata w programowaniu
-
-
powrót do korzeni, użycie konkretnego algorytmu albo pokonanie znanego problemu logicznego czy matematycznego
-
-
Pracujemy w iteracjach. Pojedyńcze zadanie to kilkanaście minut kodowania.
-
Każdy uczestnik tworzy swoją kopie projektu (fork) i tam pracuje
-
-
Zadanie jest dostępne na githubie https://github.com/kubamarchwicki/wyzwanie-tdd-kata
-
Tworzymy branch, robimy zadanie, tworzymy pull requesta
-
-
Codziennie rano przeglądamy podesłane rozwiązania, omawiamy, przygotowujemy referencyjną implementację.
-
Omawiamy kolejne zadanie i wracamy do punktu 2
-
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
Tworzymy kalulator
-
Kalkulator ma być prosty (naiwna implementacja)
-
Dowolna ilość parametrów
-
Liczby oddzielone znakiem (na początek przecinkiem)
-
Wsparcie dla różnych separatorów
-
Dodajemy tylko liczny dodatnie
-
Ograniczamy zakres
-
Separator dowolnej długości
-
Więcej niż jeden separator
-
Więcej niż jeden separator różnej długości
-
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
lub1,2
- Tips
-
-
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.
-
Zadanie bazują na projekcie TDD Kata by Roy Osherove