Apa itu "Linting"?

1094

PHPLint , JSLint , dan saya baru-baru ini menemukan "Anda dapat menggunakan kode JS Anda dengan cepat" sambil membaca sesuatu tentang beberapa IDE .

Jadi, apa linting ini yang semua orang tahu selain saya?

Ashkan Kh. Nazary
sumber
6
Saya telah mendengar istilah ini hanya sejak kode studio visual menjadi sesuatu. sebelumnya hanya "intellisense" -seperti. Meskipun istilah ini berasal dari 1978 dari wikipedia, bagi saya ini baru populer.
v.oddou

Jawaban:

1078

Linting adalah proses menjalankan program yang akan menganalisis kode untuk kesalahan potensial.

Lihat serat di wikipedia:

lint adalah nama yang awalnya diberikan untuk program tertentu yang menandai beberapa konstruksi yang mencurigakan dan tidak portabel (kemungkinan menjadi bug) dalam kode sumber bahasa C. Istilah ini sekarang diterapkan secara umum ke alat yang menandai penggunaan yang mencurigakan dalam perangkat lunak yang ditulis dalam bahasa komputer apa pun.

Oded
sumber
140
Mengutip dari wikipedia - "Istilah ini berasal dari nama potongan serat dan bulu yang tidak diinginkan yang ditemukan dalam wol domba."
tan9
17
@HasanBaidoon - hanya melaporkan pelanggaran kebijakan gaya, tidak serta-merta bertindak atas nama pengguna.
Oded
Akankah stylecop dianggap sebagai linter?
Adam Plocher
1
@ Adam - biasanya linter juga memiliki opsi untuk memperbaiki masalah yang ditemukannya.
Oded
@AdamPlocher Ya, benar. "StyleCop adalah linter C # yang memberlakukan pedoman gaya." github.com/mcandre/linters
mbomb007
184

Lint adalah nama program yang akan memeriksa kode C Anda dan mengidentifikasi masalah sebelum Anda mengkompilasi, menautkan, dan menjalankannya. Itu adalah pemeriksa statis, mirip seperti FindBugs hari ini untuk Java.

Seperti Google, "lint" menjadi kata kerja yang berarti statis memeriksa kode sumber Anda.

Duffymo
sumber
122

Linting adalah proses pengecekan kode sumber untuk kesalahan Programmatic serta Stylistic. Ini sangat membantu dalam mengidentifikasi beberapa kesalahan umum dan tidak umum yang dibuat selama pengkodean.

A Lintatau a Linteradalah program yang mendukung linting (memverifikasi kualitas kode). Mereka tersedia untuk sebagian besar bahasa seperti JavaScript, CSS, HTML, Python, dll.

Beberapa linter yang bermanfaat adalah JSLint , CSSLint , JSHint , Pylint

VSri58
sumber
52

Terlepas dari apa yang telah disebutkan orang lain, saya ingin menambahkan itu, Linting akan dijalankan melalui kode sumber Anda untuk menemukan

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

Menjalankan program Lint di atas kode sumber Anda, membantu memastikan bahwa kode sumber dapat terbaca, terbaca, kurang berpolusi, dan lebih mudah dipelihara.

Mangu Singh Rajpurohit
sumber
27

lint adalah alat yang digunakan untuk menandai kode sumber dengan beberapa mencurigakan dan non-struktural (dapat menyebabkan bug). Ini adalah alat analisis kode statis di C di awal. Sekarang menjadi istilah umum yang digunakan untuk menggambarkan alat analisis perangkat lunak yang menandai kode yang mencurigakan.

Marcus Thornton
sumber
20

Bahasa yang ditafsirkan seperti Python dan JavaScript sangat diuntungkan dari linting, karena bahasa ini tidak memiliki fase kompilasi untuk menampilkan kesalahan sebelum dieksekusi.

Linter juga berguna untuk pemformatan kode dan / atau mengikuti praktik terbaik khusus bahasa.

Akhir-akhir ini saya telah menggunakan ESLint untuk JS / Bereaksi dan kadang-kadang akan menggunakannya dengan file airbnb-config .

JSON C11
sumber
3

Linting adalah proses oleh program linter yang menganalisis kode sumber dalam bahasa pemrograman tertentu dan menandai masalah potensial seperti kesalahan sintaksis, penyimpangan dari gaya pengkodean yang ditentukan atau menggunakan konstruksi yang dikenal tidak aman.

Misalnya, linter JavaScript akan menandai penggunaan pertama parseInt di bawah ini sebagai tidak aman:

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

// with a radix paremeter specified - Safe
var count = parseInt(countString, 10);
RajeshK
sumber