CI/CD projektów PHP na Jenkinsie – Ciągła Inspekcja

Praktyka ciągłej inspekcji rozszerza ideę ciągłej integracji przez przeprowadzanie kontroli kodu za każdym razem gdy jest on zmieniany. Możliwa jest detekcja niepożądanych zmian w kodzie takich jak np. zwiększające się skomplikowanie kodu i dostrzeżenie tych zmian zanim ich odwrócenie stanie się zbyt kosztowne.

 

Metryki oprogramowania.

Do śledzenia rozmiarów metryk projektu takich jak np. ilość linii kodu (LOC – Lines of Code) służyć może phploc.

Wg powyższego przykładu PHPLOC będzie logował do pliku CSV i XML. Dane z plików mogą być plotowane przez plugin Jenkinsa Plot.

Innym narzędziem do obliczania szerokiej gamy metryk oprogramowania jest PHP_Depend. Poniżej przykład jak wywołać to narzędzie z poziomu Ant:

O metrykach oprogramowania można poczytać tutaj.

 

Zduplikowany kod.

Utrzymanie kodu, który jest zduplikowany jest zdecydowanie trudniejsze, ponieważ wszystkie duplikaty muszą być spójne ze sobą, natomiast błędy znalezione w zduplikowanym kodzie muszą być poprawiane w wielu miejscach. PHP Copy/Paste Detector może być używany do automatycznej detekcji zduplikowanego kodu w projektach PHP.

 

Naruszenie standardów kodowania.

W każdym rozwijanym projekcie ważne jest aby zespół używał jednolitego standardu kodowania. Wspólny standard kodowania pozwala na skupianiu się tylko na takich problemach jakie mają znaczenie dla projektu zamiast głowić się nad zrozumieniem innych stylów kodowania. PHP_CodeSniffer to narzędzie do wykrywania naruszeń standardów formatowania kodu. Dostarcza ono setki próbek, z których każda sprawdza jedną właściwość kodu. Możliwe jest zdefiniowanie własnego zestawu reguł lub używanie reguł wbudowanych takich jak PEAR lub Zend.

 

PHP Mess Detector skupia się nie na naruszeniu standardów formatowania kodu ale na takich kwestiach jak możliwe bugi, kod trudny do utrzymania, nieużywane parametry i zmienne, nie używane metody. Dostarcza wiele reguł, które sprawdzają konkretną właściwość kodu. Można także ustalać własne reguły.

 

Dokumentacja kodu.

Dobrze napisany zorientowany obiektowo kod powinien dokumentować się sam. PhpDox to narzędzie, które wydobywa informacje z kodu i przedstawia je w formacje HTML. Domyślnie phpDox używa PHP-Parsera do zbierania informacji o kodzie PHP. Informacje te składowane są w dokumentach XML, które mogą być wzbogacone o dane z zewnętrznych źródeł takie jak logi XML, PHP_CodeSniffer, PHP Mess Detector (PHPMD) lub PHPUnit. Finalnie wszystkie informacje renderowane są do postaci HTML.

Przykład wywołania phpDox ze skryptu build Apache Ant.

 

 

 

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *