Krótka historia o tym jak projektuje aplikacje przy pomocy TDD
O czym będziemy mówić?
Powiedzmy że chemy zarejestrować użytkownika
... o tak bardzo wymagający task
Jak byście zaprojektowali funkcje tworzenia użytkownika w systemie?
Zróbmy formularz, zaprojekujmy baze
i używajmy getterów oraz setterów ponieważ nasz framework do formularzy tego wymaga...
Pomysły?
Nawalmy kodziku w kontrolerze, copy paste jest całkiem fajnym sposobem programowania
Pomysły?
Gdyby tak skupić się na rozwiązaniu problemu, a potem wybrać framework?
Pomysły?
Ok, zaprojektujemy sobie domene...
TDD
PHPSpec
bin/phpspec desc "App\Core\Domain\User"
Teraz jest czas na projektowanie domeny!
No dobra, mamy prosty obiekt modelu co teraz?
Musimy pozwolić na utworzenie konta (rejestracje użytkownika)
Pomysł: Czemu by nie zrobić na to serwisu?
No to specujemy!
bin/phpspec desc "App\Core\UseCase\RegisterUser"
Ok mamy nasz kod co teraz? Gdzie to zapisać i jak to zrobić?
Pora na adaptery, teraz możemy sobie wybrać framework
Laravel
Framework
Doctrine adapter
Ok to teraz zepnijmy sobie appke przy użyciu jakiegoś DIC
Ok mamy spiętą apkę!
Ok to tyle...