Użyteczność programowania funkcyjnego w testowaniu z biblioteką Phunc, specyfika, metodyka, niedogodności, testowanie

Biblioteka Phunc została stworzona wedle idei:

jedna klasa = jedna odpowiedzialność, jedna metoda, zdefiniowane wcześniej parametry wejściowe i wyjściowe (interface)

Specyfika

W praktyce daje to rezultat Single Responisbility i Dependency Injection

Użyteczność programowania funkcyjnego w testowaniu z metodyką Phunc

programowie funkcyjne

Korzyści programowania funkcyjnego

Dalsze korzyści to łatwiejsza implementacja nowych funkcjonalności, gdyż można łatwo korzystać z już istniejącego kodu,

gdyż jest stworzony w małych elementach, jak klocki, które nie trzeba konfigurować jak klasy z wieloma atrybutami, i uczyć się ich obsługi.

Tutaj wystarczy tylko dostarczyć odpowiedni typ danych, jego porawność definiuje walidacja w kontekście, więc jeśli istnieje to można w ciemno użyć kod który może być tworzony w innym miejscu i czasie a potem razem spięty z innym modułem.

Niedogodności

Niedogodnośći jakie powstaje przy stosowaniu tego rozwiązania wynikają bezpośrednio z języka PHP:

  • brak wsparcia silnego typowania i programowania funkcyjnego

Aby stworzyć Nowy projekt z Phunc go Testować, potrzebne jest mniej czasu niż zwykle, na tworzenie unit testów.

Gdyż w naturalny sposób sklada się on z już istniejących mniejszych części, które mają swój unit test, więc testowany jest tylko nowy kod.

Samo stosowanie interfejsów daje jasne informacje o sposobie wielo-użycia kodu i wzorce do użycia jak klocki.

Ponadto łatwiejsze staje się koncepcyjne uchwycenie TDD i BDD, ponieważ operamy się o znane elementy i w ten sposób łatwiej je zdefiniować i zbudować całość.

 

Testowanie

polecam Codeception, poniżej trochę więcej informacji o tym jak do testowania przystąpić:

http://codeception.com/09-04-2015/using-codeception-for-symfony-projects.html

Facebooktwittergoogle_plusredditpinterestlinkedinmail

Author: Tom

Łączę doświadczenie z nowymi technologiami. Embedded System Software & Hardware Developer.

Disqus Comments (0)

tomsapletta

Facebook Comments (0)