Jak dbać o czysty kod w języku PHP

Dodane:

MamStartup logo Mam Startup

Udostępnij:

Czysty kod, to taki z którym przyjemnie się pracuje. Dla programisty będzie prosty do zrozumienia i przejrzysty. Dla architekta będzie możliwie niezależny, zgodny ze wzorcami projektowymi, bez duplikatów. Poniżej przedstawiam kluczowe nawyki i narzędzia, pomagające w tworzeniu kodu wysokiej jakości.

Zdjęcie royalty free z Fotolia

Wybierz konwencje nazewnictwa oraz standard formatowania kodu

Konwencje nazewnictwa umożliwiają unifikację sposobu nazywania klas, metod, zmiennych i innych elementów oprogramowania. Formatowanie zwiększa czytelność kodu. Większość IDE potrafi automatycznie formatować całe pliki, np. NetBeans na opcję formatuj pod drugim przyciskiem myszy lub skrótem klawiszowym: ALT+SHIFT+F oraz pozwala na dokładne definiowanie tego w jaki sposób kod będzie sformatowany. Klikasz i masz kod czytelny oraz przejrzysty (np. po tabulatorach ładnie widać zagnieżdżanie warunków).

Przykład: Zend Framework Naming Convention.

Stosuj wzorce projektowe

Wzorce projektowe to sprawdzone rozwiązania często powtarzających się problemów. Wybierz z których wzorców będziesz korzystał, dzięki temu podobne problemy będą rozwiązywane w podobny sposób przez różnych programistów. Atutem jest również łatwość zrozumienia: np. znając wzorzec MVC, wiesz, że za logikę biznesową odpowiadają Klasy.

Narzędzie: Sonar Cube – platforma do zarządzania jakością kodu.

Zdecyduj jak komentować kod

Dokumentacja pozwala na szybsze wdrożenie się w dane zagadnienie. Główne podejścia to: kod samodokumentujący się (nazywaj elementy tak, aby ich nazwa mówiła za co odpowiadają) oraz dokumentacja w postaci komentarzy. Zdecyduj, z którą konwencją będzie ci się lepiej pracowało i zacznij ją stosować.

Narzędzie: PHP Documentor 2 – generuje API w formacie HTML, analizuje kompletność dokumentacji oraz komentarze typu „TO DO”.

Praktykuj X-checking

Świetną praktyką jest stosowanie „cross checking”, czyli wzajemnej weryfikacji kodu przez programistów. Działa to tak, że zanim kod trafi do testów, inny programista przegląda go pod kątem przyjętych kryteriów jakości. Jeżeli uzna, że coś nie gra (np. kod jest nieczytelny) zwraca go do autora. Takie podejście nie tylko przyspiesza proces wdrażania nowych deweloperów, ale też pozwala na wykrycie „czeskich błędów” u doświadczonych programistów.

Narzędzie: SVN/GIT.

Pisz testy jednostkowe

Testy jednostkowe są fragmentami kodu sprawdzającymi inne fragmenty kodu. Pozwalają na szybkie wykrycie błędów powstałych podczas modyfikacji lub rozwoju aplikacji.

Narzędzie: PHP Unit – framework do testów jednostkowych w języku PHP.

Określ standard wytwórczy w zespole

Dobrą praktyką w dojrzałych zespołach jest utworzenie dokumentu z wytycznymi dla programistów, który zawiera odpis lub odniesienia do dostępnych standardów obejmujących: konwencje nazewnictwa, stosowane wzorce projektowe, sposób obsługi błędów i wyjątków, adresy repozytoriów oraz zasady pracy z SVN/GIT, adresy serwerów (deweloperskich, CI, testowych), procedury przekazywania paczek na testy oraz poprawiania błędów produkcyjnych. Jako wzór może posłużyć dokument Mozilli.

Narzędzie: Apache Ant – narzędzie umożliwiające tworzenie zestawu zadań wykonywanych kolejno w oparciu o pliki XML, np. utworzenie katalogu na UAT, eksport z SVN, nadanie uprawnień katalogom, dodanie plików konfiguracyjnych, aktualizacja bazy danych, powiadomienie mailem wykonaniu zadania.

Weryfikuj jakość

Powyższe punkty nie gwarantują, że programiści będą je stosować. Od Ciebie zależy, czy weryfikację ma robić doświadczony programista czy automat. Automat ustawiasz raz i sprawdzasz różne metryki kodu np. analizy mess detector, code sniffer, LOC (line of code). Możesz dodać powiadomienia jeśli build się nie udał. To najszybszy sposób zbierania metryk, które pozwolą ocenić, czy wraz z przyrostem aplikacji nie pogarsza się jej jakość.

Cezary Kamiński

Scrum Master w Sii

W branży IT od 2009 roku. Przez ponad 2 lata zarządzał działem rozwoju oprogramowania wytwarzającego systemy typu CMS, DMS i Workflow. Specjalizuje się w zwinnych metodykach produkcji oprogramowania oraz szeroko pojętym wsparciu zespołów deweloperskich. Autor bloga: cezarykaminski.pl