Dziś rano miałem prezentację na temat PHPSPec, którą oficjalna strona internetowa opisuje następująco:
Zestaw narzędzi php do sterowania nowymi projektami według specyfikacji.
Jak zdefiniowano w kontekście przymiotników, słowo „emergent” definiuje się następująco:
proces powstawania
Z drugiej strony mówi się, że PHPUnit koncentruje się na szybkich zatwierdzeniach kodu i zapewnia, że regresja kodu nie występuje w innych częściach kodu.
Biorąc to pod uwagę, argumentem, który wyszedł z prezentacji, jest to, że PHPSpec jest nadal ramowym testem jednostkowym, co zrobiłem, w żaden sposób nie podważam tego, ale moim zdaniem bardziej chodziło o to, na czym tak naprawdę koncentruje się narzędzie, na którym jest projektowanie.
Różnice między tymi dwoma narzędziami są zwięźle wyjaśnione w tym artykule na temat Laracastów.
Teraz przychodzi metodologia zwinna, która jest wyjaśniona tu i tutaj . Ostatni artykuł na temat metodyki zwinnej podkreśla, dlaczego ta metodologia jest lepsza ( fragment poniżej ).
Kiedy weźmiesz agregację zasad zwinnych, wdrożysz je w zwinnym frameworku, wykorzystasz narzędzia współpracy i zastosujesz zwinne praktyki programistyczne, zwykle otrzymasz aplikacje lepszej jakości, szybciej opracowane aplikacje i lepsze praktyki techniczne (inaczej higiena).
Widok jest taki, że PHPSpec nie oferuje niczego, czego nie robi PHPUnit. Jeśli jednak przyjrzymy się dyscyplinie inżynieryjnej i o co w niej chodzi, możemy niemal zobaczyć wzmiankę o narzędziach ( patrz fragment poniżej ):
Obejmuje koncepcje, zasady, teorie, techniki i narzędzia, które można wykorzystać do opracowania wysokiej jakości profesjonalnego oprogramowania.
Patrząc na to wszystko w perspektywie narzędzi do ciągłej integracji, w tym kontekście są takie rzeczy, jak PHPSpec, PHPUnit, Behat, kodekcept i tak dalej w celu osiągnięcia różnych strategii testowych. W kontekście inżynieryjnym wszystkie te narzędzia mają do odegrania role. Wydaje się jednak, że nie można używać drugiego, szczególnie PHPSPec, w środowisku Agile. To, co moim zdaniem brakuje, to rzeczywisty kontekst, w którym można naprawdę sterować projektowaniem opartym na testach i zachowaniu, używając w szczególności tych dwóch narzędzi.
Mogę się mylić, widząc rzeczy w kontekście Agility w połączeniu ze strategiami inżynierii oprogramowania, aby dostarczać kod wysokiej jakości i tak dalej. Nie twierdzę, że moim Panem Know-it-all jest próba stania się lepszym i bardziej kompetentnym w swoim zawodzie, a tym samym doskonalenia swoich umiejętności.
Czy ktoś może pomóc mi zrozumieć Metodologię Agile w połączeniu z Inżynierią Oprogramowania w kontekście PHP i jak można wdrożyć proces tworzenia oprogramowania, korzystając z dostępnych narzędzi i strategii testowych? Z góry dziękuję.
EDYTOWAĆ
To pytanie zostało przeniesione do przestrzeni inżynierii oprogramowania . Przepraszam za opublikowanie go tutaj, nie wiedziałem nic lepszego. Dzięki