Kódovací standardy pro WordPress [Průvodce]
Důvodem, proč máme standardy kódování vůbec (nejen pro WordPress) je vytvořit známé prostředí pro programátory práce na projektu. WordPress zejména zahrnuje širokou škálu produktů. Od samotného jádra až k tématům a pluginům je třeba se podívat - a spousta věcí, o kterých se můžete zmínit.
Pokud každý formátuje svůj kód stejným způsobem, používá komentáře, stejný styl dokumentace atd., Spolupráce se stává mnohem snazší a křivka učení nového projektu nebude tak strmá.
Potřeba soudržnosti ve WordPressu je zvětšena stavem, ve kterém je codebase. WordPress nesleduje přísný objektově orientovaný přístup a nepoužívá vzor MVC. Projekty, které se řídí pravidly OOP a MVC bez výjimky (jako Laravel), mají konzistentnost a osvědčené postupy “zapékané” vzhledem ke své struktuře.
WordPress je bohužel zralý pro kódování špaget, aka děláte co chcete. Osvědčené postupy je obtížné vymáhat jednoduše proto, že produkty využívající špatný kód mohou fungovat stejně dobře (na povrchu).
Sledováním standardů kódování WordPress se můžete dozvědět něco o kódování ethos WordPress, vytvořit více WordPress-kompatibilní produkty. ukázat komunitě, že vám záleží, a vy se hádáte vysoce kvalitní kód.
Více na stránkách Hongkiat.com:
- 10 nejhorších nočních můr pro webové vývojáře
- 5 důvodů, proč by mohla být CSS nejtěžším jazykem všech
- 30 Společné reakce Programátoři mají, když se věci špatně
Některé poznámky o normách
Normy nedefinují správné a nesprávné. Nesouhlasíte s pravidlem, například závorky by měly být vždy použity, i když nejsou potřeba. Účelem standardů kódování WordPressu není rozhodovat, zda máte pravdu, nebo špatně, je to rozhodnout, jak by to mělo být provedeno ve WordPressu.
Normy nejsou k diskusi. Použití standardů není místem, kde byste se mohli postavit proti stylu odsazení, který se vám nelíbí. Pokud je něco v normě kódování, pak to udělejte. WordPress vývojáři budou milovat za to! To znamená, že pokud nesouhlasíte s něčím, co tam je, zvedněte svůj hlas a nechte lidi vědět. Je vždy možné dělat věci lépe, ale měli byste změnit pouze styl kódování, pokud to standardy dovolují.
Konzistence nad anální retencí. Pokud jste v posledních 10% svého projektu a vy jste právě zjistili, že používáte nesprávnou konvenci pro pojmenování tříd, nepřepínejte uprostřed. Podle mého osobního názoru bych raději četl něco důsledně nesprávného než něco, co je někdy správné a někdy ne. Vždy můžete napsat skript pro změnu věcí najednou, nebo si na konci přečíst kód.
Následující normy jsou obtížné! Umístění ortézy na stejnou linii jako funkce místo ní níže je velmi snadné, i když jste zvyklí bít na vstup dříve. Nicméně, když potřebujete přemýšlet o 100 malých pravidlech, celý proces se stane trochu náchylným k chybám. Navzdory mému tvrdému postoji k následujícím normám jsem vinen jako kdokoli jiný na chybách. Na konci dne, nesprávné odsazení není neodvolatelný hřích. Snažte se co nejlépe dodržovat všechna pravidla, všechno se naučíte včas.
WordPress Kódovací standardy
Právě teď WordPress má čtyři průvodce, jeden pro každý hlavní použitý jazyk: PHP, HTML, Javascript a CSS. Jsou součástí většího množství poznatků, Příručky Core Contributor Handbook. Projít všechno by chvíli trvalo, a tak jsem zdůraznil některé úryvky ze čtyř jazyků, které často vidím, jak se lidé mýlí.
PHP
PHP je hlavním jazykem WordPressu a je to poměrně volně psaný jazyk, který zrychluje regulaci.
Styly vzpěry
Počáteční závorky by měly být vždy umístěny na konci čar. Související příkazy by měly být umístěny na stejný řádek jako předchozí uzavírací závorka. To je nejlépe demonstrováno na příkladu kódu:
if (condition) // Do Something elseif (podmínka) // Do Something else // Do Something
Velkorysé využití prostoru
Nejsem fanoušek squashed kódu (mám špatný zrak), takže je to jeden, který jsem obzvláště rád vymáhat. Umístěte mezery za čárky, a na obou stranách logický, srovnání, řetězec a operátory přiřazení, po -li, elseif, pro, pro každého a přepínač a tak dále.
Je jednodušší říci, kde by se neměly přidávat mezery! Jediné, kdy byste neměli přidávat mezery, je kdy odlévání nebo odkazující pole.
Spíše matoucí výjimka z výjimky je pole, kde klíč pole je proměnná, v tomto případě použijte místo. Tento příklad by měl jasně stanovit:
function my_function ($ complete_array = null, $ key_1 = 4, $ key_2 = 'bar') if (null == $ complete_array) $ final_array = $ complete_array; else $ key_1 = (integer) $ key_1; $ final_array [0] = 'toto'; $ final_array [$ key_1] = 'is'; $ final_array [$ key_2] = 'an'; $ final_array ['last'] = 'příklad'; return $ final_array;
Konvence pojmenování
Tohle může být těžké si zvyknout, zvláště pokud pocházíte z různých prostředí. Ve zkratce:
- Názvy proměnných mělo by všechna malá písmena, slova oddělená podtržítky
- Názvy tříd používat velká slova odděleny podtržítky. Zkratky by mělo být vše velká písmena
- Konstanty mělo by všechna velká písmena, podtrženy podtržítky
- Názvy souborů mělo by všechna malá písmena, odděleny pomlčkami
Podmínky Yoda
Podmínky zápisu na jinou cestu, než jste zvyklí, zabrání chybám při analýze. Vypadá to trochu divně, ale je to lepší kód.
if ('Daniel' === $ name) echo 'Napište článek, který budete';
HTML
HTML nemá tak mnoho pravidel, které s ním souvisí, mohl bych přijít s docela dost, aby se věci více modulární. Při psaní HTML potřebujete znát pouze pět pravidel:
- Váš kód musí být validován proti validátoru W3C.
- Samo-uzavírací HTML tagy musí mít přesně jeden prostor před lomítkem (to je jeden, který já osobně nenávidím, ale je to specifikace W3C, ne jen domácí mazlíček WordPress)
- Atributy a značky musí být všechna malá. Jedinou výjimkou je, když jsou hodnoty atributů určeny pro lidskou spotřebu, v takovém případě by měly být napsány přirozeně.
- Všechny atributy musí mít hodnotu a musí být citovány (zápis
není správné)
- Odsazení by mělo být dosaženo pomocí karet a mělo by se řídit logickou strukturou.
CSS
CSS je další volně psaný jazyk, takže je zde také spousta práce. Standardy jsou však na kodérech velmi snadné.
Selektory
Selektory by měly být kvalifikovány jako nezbytné, měly by být lidsky čitelné, měly by být malá písmena oddělená pomlčkami a selektory atributů by měly používat uvozovky. Zde je stručný příklad:
input [type = "text"], input [type = "password"], .name-field background: # f1f1f1;
Objednávka nemovitosti
Standardy uznávají potřebu nějakého osobního prostoru, protože nepředepisují konkrétní řád pro pravidla CSS. Co oni dělat Řekněme, že byste měli dodržovat sémantickou strukturu dává smysl. Seskupte vlastnosti podle svých vztahů nebo je seskupte podle abecedy, prostě je nevypisujte náhodně.
Největší příčinou náhodnosti je “oh také potřebuji přidat marži” a poté pokračujte přidáním do dolní části. Vezměte si další .3 sekundy a přidejte pravidlo do logického místa.
- Zobrazit
- Polohování
- Box model
- Barvy a typografie
- jiný
.profil-modální displej: blok; pozice: absolutní; vlevo: 100px; nahoru: 90px; pozadí: # ff9900; barva: #ff;
Formátování hodnot
To je jedno místo, kde jsem obzvláště nenávidí vidět nesrovnalosti. Pokud se nebudete řídit pokyny, je to stále lepší, než někdy vidět prostor před hodnotou; někdy s použitím zkratky, někdy ne; někdy s použitím jednotek na 0 hodnotách, někdy ne, atd.
Formátování hodnot je velmi složité, ale přirozeně s nějakou praxí. Podívejte se na přesný průvodce v Kodexu pro formátování hodnot.
Javascript
Podle mých zkušeností je Javascript nejvíce náchylný k tomu, aby šel po celém místě. Zatímco mnozí vývojáři znají značné množství Javascriptu, naučili se to postupně, jako dodatečný nápad na HTML, CSS a PHP. Když právě začínáte s novým jazykem, uděláte mnohem více chyb a pokud tyto chyby nezpůsobí fatální chyby, mohou se stát v sobě zakořeněny.
V mnoha případech se normy týkají limitu linky nebo stavu “pokud řádek není příliš dlouhý”. To se týká příručky jQuery Style, která ukládá a Limit 100 znaků na řádcích. Průvodce WordPress je založen na průvodci jQuery, takže je to dobrý nápad, aby i čtení.
Středníky
Jedná se o nejjednodušší pravidlo, které je často přehlíženo. Nikdy nevynechávejte středník jen proto, že kód bude fungovat bez něj. Je to jen nedbalé.
Odsazení
Záložky by měly být vždy použity pro odsazení. Měli byste také odsouhlasit obsah uzávěru, i když je obsah celého souboru obsažen v jednom. Nejsem si jistý, proč mě ale unindented top-level zavrhl ještě předtím, než jsem si přečetl normy.
Lámání čar
Při lámání dlouhých řetězců vždy přerušte řádek za operátorem, nenechávejte viset proměnnou. To je na první pohled zřejmé, že linka je zlomená a vy jste na zapomněli středník.
Pokud je podmínka dlouhá, rozdělte ji na více řádků a přidejte do ní další kartu. Ten vypadá velmi podivně k mým očím, ale oddělení, které přidává mezi stav a tělo, je velmi viditelné.
if (firstCondition () && secondCondition () && thirdCondition ()) var html = 'Tento řádek se skládá ze slov' + n + ', takže by měl být rozdělen po výrazu' + 'operátor';
jQuery Iterace
Podle standardů jQuery iterace (jQuery.each ())
by měly být použity pouze na objektech jQuery. Měli byste použít základní pro, pro / v, zatímco smyčky ve Javascriptu pro iteraci přes jiné sbírky.
Závěr
Tam je spousta na vědomí a sledovat, a neexistuje žádný způsob, jak někdo může použít to všechno v jednom kroku. Měli byste mít svůj kód co nejblíže ke standardům a pracovat na jejich dodržování.
Dle mého názoru konzistence je nejdůležitějším pravidlem. Je lepší důsledně dělat něco nesprávně, než přepínat do poloviny. To platí zejména pro postupy formátování, protože to neovlivňuje funkčnost kódu a - z velké části - lze snadno dávkově měnit později.
Nenávidíte prvek kódovacích standardů, myslíte si, že by mělo být něco přidáno? Dejte nám vědět v komentářích!