Linting adalah jenis analisis kode statis untuk mengidentifikasi potensi kesalahan basis kode. Linter menganalisis kode untuk kesalahan sintaksis dan masalah gaya. Proses ini dapat membantu mencegah bug, meningkatkan keterbacaan, menerapkan praktik terbaik, dan menghemat waktu.
Linting adalah praktik standar dalam pengembangan perangkat lunak. Meskipun tidak ada linter bawaan di pustaka standar Go, banyak alat linting pihak ketiga ada di ekosistem Go. Ini termasuk paket GolangCI Lint, Go Meta Linter, dan Staticcheck.
Paket Serat GolangCI
Paket golangci-lint adalah linter yang andal dan fleksibel untuk Go yang dapat membantu Anda mengidentifikasi dan memperbaiki kesalahan kode. Kemudahan penggunaan paket, ekstensibilitas, dan serangkaian linter bawaan yang komprehensif menjadikannya pilihan populer bagi banyak pengembang Go.
GolangCI Lint menganalisis kode sumber Go dan memberikan umpan balik tentang potensi bug, masalah keamanan, dan pelanggaran gaya pengkodean dengan fungsionalitas untuk analisis kinerja tinggi dan integrasi berkelanjutan (CI) mendukung.
Jalankan perintah terminal ini di direktori kerja proyek Anda untuk menginstal paket Golangci-lint:
instal github.com/golangci/golangci-lint/cmd/[email protected]
Versi Go Anda harus 1.19 atau lebih baru untuk perintah menginstal paket. Anda juga dapat memeriksa instalasi golangci-lint halaman untuk metode instalasi lain yang tersedia.
Perintah tersebut akan menginstal GolangCI di sistem Anda sebagai alat CLI. Anda dapat memverifikasi instalasi dengan perintah ini:
golangci-lint --version
Perintah harus menampilkan versi golangci-lint yang telah Anda instal.
Konfigurasi Linter
Linter sangat serbaguna, jadi untuk memasang linter, Anda harus mengonfigurasi linter untuk proyek Anda.
Itu golangci-lint kegunaan alat file YAML untuk konfigurasi. Anda akan menentukan setelan linter Anda di file YAML agar paket dapat dibaca.
Anda dapat membuat file konfigurasi default menggunakan perintah ini:
golangci-lint config > .golangci.yml
Perintah membuat file baru bernama .golangci.yml di direktori Anda saat ini. Anda dapat melanjutkan untuk mengedit file ini untuk mengonfigurasi linter untuk proyek Anda.
Berikut isi dari .golangci.yml file ketika Anda menjalankan perintah:
File tersebut berisi informasi tentang golangci-lint alat dan opsi yang dapat Anda gunakan untuk mengonfigurasi proses listing Anda.
Anda harus mengedit file untuk menambahkan aturan linting untuk program Anda. Anda dapat menemukan daftar lengkap linter yang tersedia di golangci-lint linter halaman dokumentasi. Atau Anda dapat menjalankan bantuan linter perintah untuk melihat linter pada baris perintah Anda:
golangci-lint membantu linter
Perintah menampilkan semua Linter yang tersedia untuk versi paket yang telah Anda instal.
Menjalankan Linter
Berikut adalah demonstrasi linting berikut “Hello, World!” program yang menggunakan net/http kemasan:
kemasan utama
impor (
"fmt"
"net/http"
)fungsipawang(w http. ResponseWriter, r *http. Meminta) {
fmt. Fprintf (w, "Halo Dunia!")
}
fungsiutama() {
http. HandleFunc("/", penangan)
http. MendengarkanDanMenyajikan(":8080", nol)
}
Program ini mendefinisikan a pawang fungsi yang menerima penulis dan meminta contoh dari http paket ResponseWriter Dan Meminta tipe struct. Itu pawang fungsi menulis "Halo, Dunia!" kepada klien berdasarkan permintaan.
Itu utama fungsi me-mount / rute ke pawang fungsi, dan Dengarkan Dan Sajikan fungsi memulai server pada port localhost 8080.
Itu Dengarkan Dan Sajikan fungsi mengembalikan kesalahan, tetapi program mengabaikannya. Konfigurasi ini akan memastikan linter menyoroti masalahnya:
linter-pengaturan:
kode mati:
# abaikan semua file uji
file lewati: "_test\\.pergi$"
kerajaan:
# nonaktifkan pemeriksaan bayangan
pemeriksaan-membayangi: PALSU
tujuan:
# abaikan kesalahan tentang nama fungsi yang diekspor
kecualikan-gunakan-bawaan-diekspor: BENAR
# abaikan kesalahan tentang garis bawah di kemasan nama
kecualikan-penamaan-tidak berguna: BENAR
gosec:
# nonaktifkan tes gosec, karena lambat dan dapat menghasilkan PALSU positif
tes: PALSU
tidak terpakai:
# laporkan argumen fungsi yang tidak digunakan, tetapi bukan variabel yang tidak digunakan
cek-diekspor: BENAR
tanda centang kosong: BENAR
cek-tes: BENAR
Setelah mengatur konfigurasi linter ini, Anda dapat menjalankan linter dengan berlari memerintah:
lari golangci-lint
# setara, menjalankan semua program
golangci-lint run./...
Sebagai alternatif, Anda dapat melakukan lint pada file tertentu dengan menentukan nama atau jalur file setelah berlari memerintah:
golangci-lint jalankan dir1 dir2/... dir3/file1.go
Inilah hasil menjalankan linter terhadap program:
Itu golangci-lint alat serbaguna, dan konfigurasi Anda akan bervariasi berdasarkan proyek Anda.
Anda Dapat Lint Proyek JavaScript Anda Dengan ESLint
Linting adalah tugas pengembangan perangkat lunak yang populer, dan sebagian besar bahasa pemrograman dan IDE menyediakan alat untuk program linting. Untuk JavaScript, ESLint adalah linter yang paling populer.
Eslint menyediakan beberapa aturan linting yang mengikuti standar industri di CLI, IDE, dan alat editor teks, menjadikan alat linting pilihan tepat bagi pengembang JavaScript.