Jaký používáte nástroj pro sjednocení coding standards v týmu? rubrika: Programování: PHP
Ahoj, hledám nástroj pro sdílení a sjednocení coding standards v týmu (obecný nebo zaměřený na PHP). Co by měl splňovat:
1) Integrovatelný do PhpStorm (ideálně i do NetBeans)
2) Umožňovat konfiguraci na projekt (když má programátor další projekty - své nebo pro jiné klienty - ať si je píše, jak chce)
3) Automatické přeformátování při uložení souboru
4) Manuální přeformátování adresáře
5) Definovat i takové věci, jako např. že otevírací složená závorka bude u tříd a metod na novém řádku, ale u if, foreach apod. na stejném
6) Jednoduše exportovatelný (ideálně v jednom souboru, který bude na gitu)
7) Rozumně rozšířený a podporovaný (ne obskurní projekt závislý na jednom člověku s těžko předvídatelnou budoucností)
Cílem nasazení nástroje má být to, abychom měli jednotný coding standard, aniž bychom na to museli neustále myslet a kontrolovat, jestli náhodou nemáme někde místo tabů mezery a podobně.
Existuje něco takového, nebo hledám bílého jednorožce? Dobře se mi jevil EditorConfig, ale ten neumí právě ta nastavení týkající se složených závorek a obecně jsou configy velkých projektů dost stručné na to, co hledám.
Mé oblíbené téma :) Disclaimer: jsem autor EasyCodingStandardu, který zjednodušuje API dvou zmíněných nástrojů a využívá oba jejich sety.
K tvým dotazům:
1) Proč to potřebuješ? Dnes tyto programují za tebe. Už nepřidělávají práci v editoru, tím, že vývojář přejíždí přes všechny vlnovky co najde a luští, co ta error message asi znamená. Něco jako učitelka, co ti podrthne všechny chyby v diktátu vs. autocorrect, který to udělá za tebe.
2) Ano
3) Jde to udělat, ale doporučuju to dělat spíše ručně před commitem, nebo max. pre-commit hookem. Automatizace je fajn, ale tvorba WTF na uložení souborů už ne.
4) Co tím myslíš přesně? Že to fixne všechny coding standard chyby v určitém adresáři? Pokud jo, tak ano
5) Přesně tyhle "custom" styly sežerou více času než nastavení všech ostatních 90 pravidel. V jedné firmě, kde jsem coding standard pomáhal nasazovat se to na 3 měsíci zaseklo jen na tomto pravidlu. Pak kluci dospěli k tomu, že to zkusí dělat standartně a udělali si týdenní experiment, jestli to zvládnout. A za týden byl PR konečně úspěšně uzavřen :)
6) Jasný, to je základ
7) Takový není, vždycky je jeden maintainer, který se o projekt stará. Spíš mě zajímá, proč zrovna takovýto požadavek? Z čeho máš obavy?
Používají ho:
First Run
-
Doporučuju mrknout do .travis.yml, kde najdeš instalaci.
-
Pak stačí vytvořit config s pravidly
- A spustit ho
Nebo mrkni do README :)
Těším se na další dotazy
Pro zobrazení všech 3 odpovědí se prosím přihlaste:
Nebo se přihlaste jménem a heslem:
Komentáře