Che cos'è il "linting"?


1094

PHPLint , JSLint e io di recente ci siamo imbattuti in "puoi sfuggire al volo il tuo codice JS " mentre leggevo qualcosa su un IDE .

Allora, che cosa è questo lint che tutti sanno tranne me?


6
Ho sentito questo termine solo da quando il codice Visual Studio è diventato una cosa. prima era solo "intellisense". Anche se questo termine risale al 1978 da Wikipedia, mi sembra che sia stato popolare solo di recente.
v.oddou,

Risposte:


1078

La lanugine è il processo di esecuzione di un programma che analizzerà il codice per potenziali errori.

Vedi i filacci su Wikipedia:

lanugine era il nome originariamente dato a un particolare programma che segnalava alcuni costrutti sospetti e non portatili (probabilmente bug) nel codice sorgente del linguaggio C. Il termine viene ora applicato genericamente a strumenti che contrassegnano l'uso sospetto in software scritto in qualsiasi linguaggio informatico.


140
Cita da Wikipedia - "Il termine deriva dal nome dei frammenti indesiderati di fibra e lanugine trovati nella lana di pecora".
tan9

17
@HasanBaidoon - segnala solo le violazioni di una politica di stile, non necessariamente agisce su di esse per conto dell'utente.
Oded,

Stylecop sarebbe considerato una linter?
Adam Plocher,

1
@Adam: di solito una linter avrebbe anche la possibilità di risolvere automaticamente i problemi rilevati.
Oded,

@AdamPlocher Sì, lo è. "StyleCop è una linter C # che applica le linee guida di stile." github.com/mcandre/linters
mbomb007

184

Lint era il nome di un programma che passava attraverso il codice C e identificava i problemi prima di compilarlo, collegarlo ed eseguirlo. Era un controllo statico, proprio come FindBugs oggi per Java.

Come Google, "lanugine" è diventato un verbo che significava controllo statico del codice sorgente.


122

La lanugine è il processo di controllo del codice sorgente per errori programmatici e stilistici. Questo è molto utile per identificare alcuni errori comuni e non comuni che vengono fatti durante la codifica.

A Linto a Linterè un programma che supporta linting (verifica della qualità del codice). Sono disponibili per la maggior parte delle lingue come JavaScript, CSS, HTML, Python, ecc.

Alcune delle linter utili sono JSLint , CSSLint , JSHint , Pylint


52

A parte ciò che altri hanno menzionato, vorrei aggiungere che, per trovare, Linting scorrerà il tuo codice sorgente

 -  formatting discrepancy 
 -  non-adherence to coding standards and conventions 
 -  pinpointing possible logical errors in your program

L'esecuzione di un programma Lint sul codice sorgente consente di garantire che il codice sorgente sia leggibile, leggibile, meno inquinato e di facile manutenzione.


27

lint è uno strumento che viene utilizzato per contrassegnare il codice sorgente con alcuni elementi sospetti e non strutturali (può causare bug). All'inizio è uno strumento di analisi del codice statico in C. Ora è diventato il termine generico utilizzato per descrivere lo strumento di analisi del software che contrassegna il codice sospetto.


20

I linguaggi interpretati come Python e JavaScript traggono grande vantaggio dalla sfilacciatura, poiché questi linguaggi non hanno una fase di compilazione per visualizzare gli errori prima dell'esecuzione.

Le linter sono inoltre utili per la formattazione del codice e / o per l'adesione alle migliori pratiche specifiche della lingua.

Ultimamente sto usando ESLint per JS / React e occasionalmente lo userò con un file airbnb-config .


3

La lanugine è un processo di un programma di linter che analizza il codice sorgente in un particolare linguaggio di programmazione e segnala potenziali problemi come errori di sintassi, deviazioni da uno stile di codifica prescritto o l'utilizzo di costrutti noti come non sicuri.

Ad esempio, una linter JavaScript segnalerebbe il primo utilizzo di parseInt come non sicuro:

// without a radix argument - Unsafe
var count = parseInt(countString);

// with a radix paremeter specified - Safe
var count = parseInt(countString, 10);
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.