Dodržujte coding standard a zkuste code sniffer

8. 11. 2015 | #php #development #nette #phpstorm

Čistota a čitelnost kódu je důležitým aspektem každého projektu a přispívá k udržitelnosti celého projektu. Tak jako se různá zařízení domlouvají skrze pevně dané protokoly, tak se i vývojáři často u open source projektů, ale také privátních, domlouvají na coding standardu, aby jimi produkovaný kód vypadal kód jako jednoho muže (nebo jedné ženy ).

K tomu přispívá právě coding standard, který definuje pravidla pro úpravu kódu. Upravuje formátování, jmenné konvence nebo jeho strukturu apod.

Proč je dobré dodržovat coding standard?

Pokud máme určený coding standard, tak se zvyšuje čitelnost kódu v celém projektu. Zvyšuje se tím zároveň čitelnost pro ostatní členy v týmu, což pak může vést k vyšší produktivitě, jelikož se člověk může zorientovat rychleji a nemusí ztrácet svou mentální energii a čas kvůli neustále adaptaci v různě formátovaném kódu v rámci jednoho projektu.

CodeSniffer

CodeSniffer je naopak nástroj, který umožňuje daný coding standard v kódu kontrolovat. PHP_CodeSniffer umožňuje kromě předdefinovaných standardů (PEAR, Zend, PSR-1, PSR-2 atd.) používat i vlastní, takže pokud vám nějaký z nich nevyhovuje, klidně můžete jít vlastní cestou.

Řada IDE CodeSniffer podporuje, třeba PhpStorm disponuje vcelku podrobným návodem zde. Po integraci nástroje je pak PhpStorm schopen zobrazovat varovné hlášky v částech kódu, které nesplňují pravidla vybraného standardu.

Pokud si chcete nainstalovat CodeSniffer pomoci balíčku, můžete použít squizlabs/php_co­desniffer(repo­zitář zde). Defaultně nabízí standardy PEAR, PSR-1, PSR-2.

CodeSniffer jako nástroj je schopen také v některých případech formátování kódu dle standardu upravit za vás, což může pomoci, pokud třeba váš aktuální projekt podobu kódu nemá ustálenou a nechcete se s tím dělat ručně.

Další standardy

Existuje řada dalších standardů jako je třeba Symfony Coding Standard, který vychází z PSR-2 nebo třeba Nette Coding Standard. Pokud by jste hledali pravidla pro CodeSniffer pro Symfony, tak mrkněte zde.

Pěkny standard má také Zenify/CodingStan­dard (zde) od Tomáše Votruby a vychází ze standardu Nette. Dokonce umí také přidat pre-commit hook, který vždy spustí CodeSniffer na modifikovaných souborech při commitu.

A co vy? Používáte CodeSniffer, máte vlastní standard nebo používáte už připravené řešení?

Diskuse

comments powered by Disqus

Tento web používá k poskytování služeb, personalizaci reklam a analýze návštěvnosti soubory cookie. Používáním tohoto webu s tím souhlasíte. Další informace