Hvad er en linter? Kort sagt, en linter er et værktøj til at hjælpe dig med at forbedre din kode. Begrebet linter er ikke eksklusivt til JavaScript. Stadig vil jeg sige, at de fleste mennesker, der forsøger at lære om linters, er interesserede i dem, der er målrettet mod JavaScript (eller mere generelt dynamisk typede sprog.)

i dagens indlæg besvarer vi titelspørgsmålet og meget mere. Vi starter med at definere udtrykket ” linter.,”Du vil forstå, hvad denne ting er, og hvordan det kom til at være. Derefter taler vi om fordelene ved linters og fortsætter med at tale om de forskellige typer kontroller, de tilbyder.

endelig viser vi dig flere eksempler på linters til din rådighed, giver nogle praktiske tips om, hvordan du kommer i gang, og wraprap-up med et par endelige overvejelser.

lad os komme i gang.

Hvad er en Linter? En kort oversigt

lad os starte med at definere, hvad en linter er. Som du har læst i indledningen, en linter er et værktøj til at hjælpe dig med at forbedre din kode. Men på hvilke måder gør det det?, Svaret er: ved at analysere din kildekode på udkig efter problemer.

udtrykket linter kommer fra et værktøj oprindeligt kaldet “lint”, der analyserede C kildekode. Computerforskeren Stephen C. Johnson udviklede dette værktøj i 1978, da han arbejdede på Bell Labs.

både det originale lint-værktøj såvel som tidligere lignende værktøjer havde til formål at analysere kildekoden for at komme med compileroptimeringer. Over tid begyndte fnuglignende værktøjer at tilføje mange andre typer kontrol og verifikation.,

men som vi har nævnt under introduktionen, er linters ikke begrænset til kompilerede sprog. Tværtimod: vi kan sige, at linters er langt mere værdifulde for tolkede sprog, da der ikke er nogen compiler til at opdage fejl i udviklingstiden.

fordele ved Linting

du har lige lært definitionen af linter. Du ved nu også, hvornår denne type værktøj blev opfundet, og af hvem. Du har sandsynligvis nu i det mindste en generel ID.om, hvad en linter kan gøre for din kode., Men i mere praktiske termer, Hvad er fordelene ved denne type værktøj kan give? Her er nogle:

  • Færre fejl i produktionen
  • Læsbar, vedligeholdelsesvenlig og mere sammenhængende kode
  • Færre diskussioner om koden stil og æstetiske valg i kode anmeldelser
  • Objektiv måling af koden kvalitet
  • Mere sikker og højtydende-kode

næste afsnit dækker nogle af de typer af kontrol, at linters give. Efter at have læst det, forstår du, hvordan linters giver fordelene ovenfor.,

typer af Kontrollinters giver

som du lige har læst, analyserede det originale lint-værktøj kode for at aktivere optimeringer til compilere, men med tiden blev mere avancerede og komplette værktøjer frigivet. I dag har vi utallige forskellige linters, som giver mange typer kontrol. Lad os hurtigt gå igennem nogle af dem.

syntaksfejl

den mest basale og mere vitale type kontrol, som en linter kan give, er syntaksfejlverifikationer, når det kommer til JavaScript og andre tolkede sprog., Udviklere bør ikke engang skubbe kode til hovedlinjen uden at passere syntaksbekræftelser.en måde at opnå dette på er at bruge pre-commit kroge, der forhindrer brugere i at skubbe deres kode, når linterverifikationen indikerer, at der er problemer med koden.

kodestandarder overholdelse

en anden vigtig type kontrol, som linters giver, er overholdelse af kodningsstandarder. Nogle mennesker kan afvise dette som en rent æstetisk bekymring, men de ville være forkert., At have en enkelt konsistent kodningsstil er gavnlig for at reducere den kognitive belastning af læsning, forståelse og vedligeholdelse af kode. En kodebase, der har en konsistent kodestil, vil være lettere at forstå, og de udviklere, der bruger den, vil være mindre tilbøjelige til at introducere fejl.derfor er der linters, der specialiserer sig i at verificere kodebaser for overholdelse af kodeformater. Nogle værktøjer er opinionated, dvs. de kommer med et foruddefineret sæt regler og konventioner, der ikke kan ændres., På den anden side er der værktøjer, der kan være meget konfigurerbare, så brugeren kan tilpasse værktøjet til deres foretrukne kodningsstilarter.

potentielle problemer (alias kode lugter)

kode lugter er tegn på, at der kan være noget galt med din kode. Det er utroligt nyttigt at have et værktøj til at registrere disse tegn automatisk, så du kan undersøge dem yderligere, hvis det er nødvendigt.

for eksempel betragter mange mennesker—inklusive mig—lange funktioner som en kodelugt. Så du kan konfigurere din linter til at registrere funktioner, der er længere end et givet antal linjer.,

en anden ofte citeret kode lugt er kode, der er for kompleks. Men vi taler ikke om kompleksitet på en subjektiv måde, men en meget objektiv. Cyclomatic kompleksitet er en nyttig kode metrisk, der repræsenterer antallet af mulige udførelse stier inde i en funktion. Linters kan beregne den cyklomatiske kompleksitet af dine funktioner og markere dem, der er højere end en bestemt tærskel.

sikkerhedskontrol

Sidst, men ikke mindst, har vi sikkerhed, som uden tvivl er den mest kritiske facet af en moderne applikation, især en .ebapp., Få det forkert, og konsekvenserne kan være katastrofale, ikke kun med hensyn til penge og omdømme, men også juridiske (tænk GDPR og lignende regler.heldigvis er dette et andet område, hvor linters kan være til hjælp, da der er værktøjer, der giver vigtige sikkerhedsverifikationer.

forståelse statisk analyse

Vi har forklaret, hvad linters er, og hvorfor de er nyttige. Vi har også dækket hovedtyperne af linters. Du er nu klar til at lære om nogle eksempler på linting-værktøjer til forskellige anvendelser og målprogrammeringssprog.,

før vi kommer derhen, lad os dog tage en kort uddybning for at tale om statisk analyse, da dette udtryk vises i næste afsnit, og vi har ikke defineret det endnu.

Så hvad er statisk analyse? Du kan tænke på statisk analyse som en pre-run debug. Statisk analyse består af at bruge værktøjer, der analyserer din kildekode på udkig efter fejl, manglende overholdelse af regler eller konventioner eller andre potentielle problemer.

det næste afsnit viser eksempler på linters kategoriseret efter den type verifikation, de udfører., Poster, der er kategoriseret under statisk analyse, henviser for det meste til den første og tredje type linters, der er anført i ovenstående afsnit.

Eksempler på Linters

Lad os nu kort nævne nogle eksempler på linters. Vi viser eksempler på forskellige programmeringssprog, kategoriseret efter den type kontrol, de leverer. Husk, at nogle værktøjer muligvis tilbyder mere end en type verifikation, så det er grunden til, at nogle værktøjer vises i mere end en kategori., li >

  • StandardJS for JavaScript
  • PHPMD for PHP
  • StyleCop for C#
  • Linters for Sikkerhed

    • Gosec for at Gå
    • Bandit til Python
    • LGTM for flere forskellige sprog, inklusive JavaScript, Python, og C#

    Linters for Kodning Konventioner / Kodning Formatering

    • Smukkere for JavaScript
    • Rubocop for Ruby
    • StyleCop for C#

    Linters i JavaScript: Sådan Kommer du i Gang

    Før vi pakker op artiklen, vi ønsker at give dig en kort, men praktisk vejledning om, hvordan at komme i gang med linting i JavaScript., Da det er JavaScript, vi taler om, er det ingen overraskelse, at der er mange værktøjer, du kan vælge imellem. Da vi skal vælge en, går vi med ESLint.

    installation af ESLint

    første ting først: lad os installere linteren. ESLint er installeret via npm, hvilket betyder, at du skal have Node.js installeret. Hvis du ikke allerede har det, skal du Do .nloade det og installere det, så vi kan fortsætte.

    med Node.js installeret, vi er klar til at installere eslint via npm., the following command:

    1
    npm install eslint –global

    However, this isn’t the approach recommended in their documentation., I stedet skal du sandsynligvis installere eslint pr.,ory for your project:

    1
    mkdir eslint-sample-app

    Then, cd into the directory and run the command below to create a package.,json-fil (det vil være nødvendigt nede ad vejen.)

    1
    npm init

    Npm vil bede dig en række spørgsmål., Bare tryk på enter for at bruge standardsvaret for dem alle.,gjorde, ved at køre:

    1
    npx eslint –init

    Når du har kørt kommandoen ovenfor, ESLint vil bede dig om, hvad du vil bruge det til., Indstillingerne er: for kun at kontrollere syntaks, for at kontrollere syntaks og finde problemer, og for at kontrollere syntaks, finde problemer og håndhæve kodestil.

    lad os gå med den sidste mulighed. Brug piletasterne til at ændre Indstillinger og ENTER for at bekræfte. ESLint vil derefter vide, hvilke typer moduler dit projekt bruger. Svarene er:

    • JavaScript-moduler
    • CommonJS Moduler
    • Ingen af disse

    Vælg JavaScript-moduler og fortsætte. Derefter spørger det dig, hvilken ramme bruger dit projekt., Svarene er igen tre:

    • React
    • Vue
    • ingen af disse

    i vores tilfælde, lad os vælge indstillingen “Ingen”. Det næste spørgsmål er et” ja/nej ” spørgsmål: bruger dit projekt Typescript? Tryk på” N ” for nej. Derefter spørger den dig, om din kode kører i Bro .seren eller i Node.

    ESLint spørger dig derefter, hvordan du vælger en måde at definere en kodestil til dit projekt. Det giver dig tre muligheder: ved hjælp af en populær stil guide, besvare spørgsmål om dine stil præferencer, eller inspicere din .js filer. Vælg den første mulighed., Derefter bliver du bedt om at vælge mellem tre stilarter: AirBNB, Standard og Google. Til denne tutorial, lad os vælge Google.

    ESLint spørger derefter, hvilket format du foretrækker til din konfiguration. Vælg YAML. Endelig, når du bliver spurgt, om du vil do .nloade den valgte kodestil ved hjælp af npm, skal du svare “ja.”

    brug af ESLint til at kontrollere en fil

    Når do .nloadet er afsluttet, er du klar til at bruge eslint til at kontrollere en fil. Men for at, du har brug for en fil til at kontrollere. Hvis du tilfældigvis har en .js fil hængende rundt et eller andet sted, kopiere det ind i dit projekt bibliotek., Alternativt kan du klone dette arkiv, der indeholder en enkelt fil, og bruge det til din test.,

    for At kontrollere fil -, skal du bruge følgende kommando:

    JavaScript

    1
    npx eslint sti-til-din-fil.,js

    Dette er resultatet, jeg får fra at køre kommandoen målrettet mod hilsen.,js fil, du kan downloade fra lageret på GitHub:

    1
    2
    3
    4
    5
    6

    F:\demos\eslint-demo\greeter.,JS
    2:3 fejl mangler JSDoc kommentar kræver-jsdoc
    3:1 fejl denne linje har en længde på 86. Maksimalt tilladte er 80 max-len
    10:4 fejl, Uventede “dette” no-ugyldig-det
    ✖ 3 problemer (3 fejl 0 advarsler)

    Som du kan se, Jeg har fået tre fejl, og ingen advarsler.

    Hvad er en Linter? Et godt værktøj til din Toolbelt

    i dette indlæg har vi undersøgt begrebet et linterværktøj. Nu har du en solid ID.om, hvad linters er, og hvorfor du skal vedtage en., Derudover har du lært om forskellige typer linterværktøjer og eksempler på hver kategori, der er målrettet mod flere forskellige programmeringssprog.

    udover alt dette ved du nu, hvordan du kommer i gang med et populært linting-værktøj til JavaScript: eslint.

    Hvad er de næste trin?, Der er flere ting, du kan lære, hvordan de skal gøre næste:

    • Deaktiver regler
    • Aktivér en regel, som en advarsel eller en fejl
    • Integrere linting i din build-processen
    • Avanceret konfiguration
    • Oprette din brugerdefinerede regler

    Du kan selvfølgelig også eksperimentere med andre linters. Bare fordi vi har valgt ESLint til denne vejledning, betyder det ikke, at du skal sidde fast med den.

    endelig skal du ikke glemme, at linting, selvom det er utroligt værdifuldt, bare er et andet våben i dit arsenal., Du bør ikke glemme automatiseret test, kodeanmeldelse, refactoring og mange andre fremgangsmåder, teknikker og værktøjer til din rådighed i den uendelige kamp mod kaos i din kodebase.

    og blandt alle de fremgangsmåder, teknikker og værktøjer, du kan udnytte for at gøre din kodebase bedre, kan vi ikke undgå end-Out end-to-end test, hvilket er en ofte overset type test. Og det er en skam. Med det rigtige værktøj til at hjælpe dig ud, Kvalitet end-to-end test kan være en stærk allieret i din kamp mod kode entropi.

    Articles

    Skriv et svar

    Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *