Co je linter? Stručně řečeno, linter je nástroj, který vám pomůže zlepšit váš kód. Koncept linter není exkluzivní pro JavaScript. Ještě, řekl bych, že většina lidí, kteří se snaží dozvědět se o druhořadé zajímají ty, které se zaměřují JavaScript (nebo, více obecně, dynamicky typované jazyky.)
v dnešním příspěvku odpovídáme na titulní otázku a další. Začneme definováním termínu “ linter.,“Pochopíte, co to je a jak to vzniklo. Pak mluvíme o výhodách linterů a pokračujeme v rozhovoru o různých typech kontrol, které nabízejí.
nakonec vám ukážeme několik příkladů linterů, které máte k dispozici, poskytneme několik praktických tipů, jak začít, a zabalíme několik konečných úvah.
začněme.
co je to Linter? Stručný přehled
začněme definováním toho, co je linter. Jak jste si přečetli v úvodu, linter je nástroj, který vám pomůže zlepšit váš kód. Ale jakým způsobem to dělá?, Odpověď zní: analýzou zdrojového kódu hledajícího problémy.
termín linter pochází z nástroje původně nazývaného „lint“, který analyzoval zdrojový kód C. Počítačový vědec Stephen C. Johnson vyvinul tento nástroj v roce 1978, kdy pracoval v Bell Labs.
jak původní nástroj lint, tak dřívější podobné nástroje, měly za cíl analyzovat zdrojový kód, aby přišli s optimalizací kompilátoru. Postupem času začaly nástroje podobné vlákna přidávat mnoho dalších typů kontrol a ověření.,
nicméně, jak jsme již zmínili v úvodu, linters nejsou omezeny na kompilované jazyky. Naopak: můžeme říci, že linters jsou mnohem cennější pro interpretované jazyky, protože neexistuje žádný kompilátor pro detekci chyb během doby vývoje.
Výhody Linting
právě Jste se naučili definice linter. Nyní také víte, kdy byl tento typ nástroje vynalezen a kým. Pravděpodobně už máte alespoň obecnou představu o tom, co může linter udělat pro váš kód., Ale praktičtěji, jaké jsou výhody, které tento typ nástroje může poskytnout? Zde jsou některé:
- Méně chyb ve výrobě
- Čitelný, udržovatelný a více konzistentní kódu
- Méně diskusí o kód styl a estetické preference v kódu recenze
- Objektivní měření kvalitu kódu
- bezpečné a výkonný kód
další část zahrnuje některé typy ověření, které lintry poskytnout. Po jeho přečtení pochopíte, jak linters poskytují výše uvedené výhody.,
Druhy Kontrol Lintry Poskytnout
Jak jste si právě přečetli, původní vlákna nástroj analyzovat kód povolit optimalizace pro kompilátory, ale v průběhu času, více pokročilé a úplné nástroje byly vydány. V dnešní době máme nesčetné množství různých linterů, které poskytují mnoho typů kontrol. Pojďme rychle projít některé z nich.
chyby syntaxe
nejzákladnějším a zásadnějším typem kontrol, které může linter poskytnout, jsou ověření chyb syntaxe, pokud jde o JavaScript a další interpretované jazyky., Vývojáři by neměli ani tlačit kód na hlavní linii, aniž by procházeli ověřením syntaxe.
Jeden způsob, jak toho dosáhnout, je použít pre-commit háčky, které uživatelům zabránit tlačí jejich kód, když linter ověření ukazuje, že jsou problémy s kódem.
Code Standards Adherence
dalším důležitým typem kontroly, kterou linters poskytují, je dodržování standardů kódování. Někteří lidé by to mohli odmítnout jako čistě estetický problém, ale mýlili by se., Mít jednotný konzistentní styl kódování je prospěšné pro snížení kognitivní zátěže čtení, porozumění a udržování kódu. Kódová základna, která má konzistentní styl kódu, bude snadněji pochopitelná a vývojáři, kteří ji používají, budou méně pravděpodobně zavádět chyby.
to je důvod, proč existují linters, které se specializují na ověřování codebases pro dodržování stylů kódu. Některé nástroje jsou opinionated, tj. přicházejí s předem definovaným souborem pravidel a konvencí, které nelze změnit., Na druhou stranu existují nástroje, které mohou být vysoce konfigurovatelné, což uživateli umožňuje přizpůsobit nástroj jejich preferovaným kódovacím stylům.
potenciální problémy (alias kód voní)
kód vůně jsou známky toho, že s vaším kódem může být něco špatně. Je úžasně užitečné mít nástroj pro automatickou detekci těchto znaků, takže je můžete v případě potřeby dále prozkoumat.
například mnoho lidí—včetně mě-považuje dlouhé funkce za vůni kódu. Takže můžete nakonfigurovat linter tak, aby detekoval funkce, které jsou delší než daný počet řádků.,
dalším často citovaným kódem je kód, který je příliš složitý. Ale nemluvíme o složitosti subjektivním způsobem, ale o velmi objektivním. Cyklomatická složitost je užitečná metrika kódu, která představuje počet možných cest provádění uvnitř funkce. Linters mohou vypočítat cyklomatickou složitost vašich funkcí a označit ty, které jsou vyšší než určitá prahová hodnota.
bezpečnostní kontroly
V neposlední řadě máme zabezpečení, což je bezpochyby nejkritičtější aspekt moderní aplikace, zejména webové aplikace., Zmiňte se a následky mohou být katastrofální, a to nejen co se týče peněz a pověsti, ale i těch právních (myslete na GDPR a podobné předpisy.)
naštěstí je to další oblast, kde mohou být linters nápomocni, protože existují nástroje, které poskytují důležitá bezpečnostní ověření.
pochopení statické analýzy
vysvětlili jsme, co jsou lintery a proč jsou užitečné. Také jsme se zabývali hlavními typy linters. Nyní jste připraveni se dozvědět o některých příkladech nástrojů pro linting pro různé použití a cílové programovací jazyky.,
Než se tam dostaneme, i když, pojďme udělat krátkou odbočku mluvit o statickou analýzu, protože tento termín se objevuje v další části, a nedefinovali jsme to.
takže, co je statická analýza? Statickou analýzu můžete považovat za předběhlý debug. Statická analýza spočívá v použití nástrojů, které analyzují váš zdrojový kód a hledají chyby, nedodržují pravidla nebo konvence nebo jiné potenciální problémy.
následující část zobrazuje příklady linterů roztříděných podle typu ověření, které provádějí., Položky zařazené do statické analýzy se většinou týkají prvního a třetího typu linterů uvedených ve výše uvedené části.
příklady Linterů
nyní stručně zmíníme některé příklady linterů. Ukážeme příklady pro různé programovací jazyky, roztříděné podle typu kontroly, kterou poskytují. Mějte na paměti, že některé nástroje mohou nabídnout více než jeden typ ověření, takže to je důvod, proč se některé nástroje objevují ve více než jedné kategorii.,>
Lintry pro Zabezpečení
- Gosec pro
- Bandita pro Python
- LGTM pro několik jazyků, včetně JavaScript, Python, a C#
Lintry pro Kódování Konvence / Kódování, Formátování
- Hezčí pro JavaScript
- Rubocop pro Ruby
- StyleCop pro C#
Lintry v Javascriptu: Jak začít
předtím, Než jsme se zabalit článku, chceme, aby vám stručný a praktický návod, jak začít s linting v Javascriptu., Vzhledem k tomu, že mluvíme o JavaScriptu, není divu, že existuje mnoho nástrojů, ze kterých si můžete vybrat. Vzhledem k tomu, že si musíme vybrat jednu, jdeme s Eslintem.
instalace ESLint
první věc: pojďme nainstalovat linter. ESLint je nainstalován přes npm, což znamená, že musíte mít uzel.js nainstalován. Pokud ji ještě nemáte, stáhněte si ji a nainstalujte, abychom mohli pokračovat.
s uzlem.js nainstalován, jsme připraveni nainstalovat ESLint přes npm., the following command:
1
|
npm install eslint –global
|
However, this isn’t the approach recommended in their documentation., Místo toho byste měli pravděpodobně nainstalovat ESLint na základě projektu.,ory for your project:
1
|
mkdir eslint-sample-app
|
Then, cd into the directory and run the command below to create a package.,json file (bude to potřeba po silnici.)
1
|
npm init
|
Npm se vás zeptat na několik otázek., Stačí stisknout klávesu enter a použít výchozí odpověď pro všechny z nich.,ano, spuštěním:
1
|
npx eslint –init
|
Při spuštění příkazu výše, ESLint se vás zeptá, co chcete používat pro., Možnosti jsou: zkontrolovat pouze syntaxi, zkontrolovat syntaxi a najít problémy a zkontrolovat syntaxi, najít problémy a vynutit styl kódu.
pojďme s poslední možností. Pomocí kláves se šipkami změňte možnosti a zadejte pro potvrzení. ESLint pak bude chtít vědět, které typy modulů váš projekt používá. Odpovědi jsou:
- JavaScript modules
- CommonJS Modules
- žádný z těchto
zvolte JavaScript modules a pokračujte. Poté se vás zeptá, který rámec váš projekt používá., Odpovědi jsou opět tři:
- React
- Vue
- žádný z těchto
v našem případě vybereme možnost“ none“. Další otázkou je otázka“ ano/ne“: používá váš projekt Typescript? Stiskněte “ N “ Pro ne. Poté se vás zeptá, zda váš kód běží v prohlížeči nebo v uzlu.
ESLint se vás zeptá, Jak vybrat způsob, jak definovat styl kódu pro váš projekt. Nabízí Vám Tři možnosti: použití populárního průvodce stylem, zodpovězení otázek o vašich preferencích stylu nebo kontrola vašich .js soubory. Vyberte první možnost., Poté budete vyzváni k výběru mezi třemi styly: AirBNB, Standard a Google. Pro tento tutoriál si vybereme Google.
ESLint se pak zeptá, který formát preferujete pro svou konfiguraci. Vyber si JAMLA. Nakonec, když se zeptáte, zda si přejete stáhnout vybraný styl kódu pomocí npm, odpovězte “ Ano.“
pomocí ESLint pro kontrolu souboru
po dokončení stahování budete připraveni použít ESLint ke kontrole souboru. Ale pro to potřebujete soubor ke kontrole. Pokud náhodou máte .js soubor visí někde, zkopírujte jej do adresáře projektu., Alternativně můžete klonovat toto úložiště obsahující jeden soubor a použít jej pro testování.,
kontrola souboru, použijte následující příkaz:
JavaScript
1
|
npx eslint cesta-k-your-file.,js
|
Tohle je výsledek, já se z příkazu zaměřena na pozdrav.,js soubor si můžete stáhnout z úložiště na GitHub:
1
2
3
4
5
6
|
F:\demos\eslint-demo\greeter.,js
2: 3 Chyba chybí JSDoc komentář require-jsdoc
3:1 Chyba tento řádek má délku 86. Maximální povolené je 80 max-len
10:4 chyba Nečekané „to“, ne-neplatný-tato
✖ 3 problémy (3 chyb, 0 varování)
|
Jak můžete vidět, Mám tři chyby a bez varování.
co je to Linter? Skvělý nástroj pro váš Toolbelt
v tomto příspěvku jsme zkoumali koncept linterového nástroje. Nyní máte solidní představu o tom, co jsou linters a proč byste měli přijmout jeden., Navíc, jste se dozvěděli o různé typy linter nástroje a příklady jednotlivých kategorií, cílení několika různých programovacích jazyků.
kromě toho všeho nyní víte, jak začít s populárním lintovacím nástrojem pro JavaScript: ESLint.
jaké jsou další kroky?, Existuje několik věcí, které můžete naučit, jak udělat další:
- Zakázat pravidla
- Povolit pravidlo jako varování či chyba
- Integrovat linting do vašeho procesu sestavení
- Pokročilé možnosti konfigurace
- Vytvořit vlastní pravidla,
můžete také, samozřejmě, experimentovat s jinými druhořadé. Jen proto, že jsme vybrali ESLint pro tohoto průvodce, to neznamená, že byste měli uvíznout s ním.
nakonec nezapomeňte, že linting, i když je úžasně cenný, je jen další zbraň ve vašem arzenálu., Neměli byste zapomenout na automatické testování, code review, refactoring, a mnoho dalších praktik, technik a nástrojů, k dispozici v nikdy nekončící boj proti chaosu ve vašem codebase.
A mezi všemi postupy, techniky a nástroje, které můžete využít, aby se vaše codebase lepší, nemůžeme si pomoci, ale single-end-to-end testování, která je často přehlížena, typ testování. A to je škoda. Se správným nástrojem, který vám pomůže, může být kvalitní end-to-end testování silným spojencem ve vašem boji proti entropii kódu.