Το Linting είναι ένας τύπος ανάλυσης στατικού κώδικα για τον εντοπισμό πιθανών σφαλμάτων βάσης κώδικα. Τα Linters αναλύουν τον κώδικα για συντακτικά λάθη και ζητήματα στυλ. Η διαδικασία μπορεί να βοηθήσει στην αποφυγή σφαλμάτων, στη βελτίωση της αναγνωσιμότητας, στην επιβολή βέλτιστων πρακτικών και στην εξοικονόμηση χρόνου.
Το Linting είναι μια τυπική πρακτική στην ανάπτυξη λογισμικού. Παρόλο που δεν υπάρχει ενσωματωμένο linter στην τυπική βιβλιοθήκη του Go, υπάρχουν πολλά εργαλεία λιναρίσματος τρίτων στο οικοσύστημα Go. Αυτά περιλαμβάνουν τα πακέτα GolangCI Lint, Go Meta Linter και Staticcheck.
Το πακέτο GolangCI Lint
Η συσκευασία golangci-lint είναι μια ισχυρή και ευέλικτη επένδυση για το Go που μπορεί να σας βοηθήσει να εντοπίσετε και να διορθώσετε σφάλματα κώδικα. Η ευκολία χρήσης, η επεκτασιμότητα και το πλήρες σετ ενσωματωμένων πλαισίων του πακέτου το καθιστούν δημοφιλή επιλογή για πολλούς προγραμματιστές Go.
Το GolangCI Lint αναλύει τον πηγαίο κώδικα του Go και παρέχει σχόλια για πιθανά σφάλματα, ζητήματα ασφάλειας και Παραβιάσεις στυλ κωδικοποίησης με λειτουργικότητα για ανάλυση υψηλής απόδοσης και συνεχή ενοποίηση (CI) υποστήριξη.
Εκτελέστε αυτήν την εντολή τερματικού στον κατάλογο εργασίας του έργου σας για να εγκαταστήσετε το πακέτο Golangci-lint:
εγκαταστήστε το github.com/golangci/golangci-lint/cmd/[email protected]
Η έκδοση Go πρέπει να είναι 1.19 ή μεταγενέστερη για την εντολή εγκατάστασης του πακέτου. Μπορείτε επίσης να ελέγξετε το εγκαταστάσεις golangci-lint σελίδα για άλλες διαθέσιμες μεθόδους εγκατάστασης.
Η εντολή θα εγκαταστήσει το GolangCI στο σύστημά σας ως εργαλείο CLI. Μπορείτε να επαληθεύσετε την εγκατάσταση με αυτήν την εντολή:
golangci-lint --έκδοση
Η εντολή θα πρέπει να εμφανίζει την έκδοση του golangci-lint που έχετε εγκαταστήσει.
Διαμόρφωση του Linter
Τα λάστιχα είναι πολύ ευέλικτα, επομένως, για να εγκαταστήσετε ένα linter, θα πρέπει να διαμορφώσετε το linter για το έργο σας.
ο golangci-lint χρήσεις εργαλείων Αρχεία YAML για διαμόρφωση. Θα προσδιορίσετε τις ρυθμίσεις του λιπαντικού σας στο αρχείο YAML για ανάγνωση του πακέτου.
Μπορείτε να δημιουργήσετε ένα προεπιλεγμένο αρχείο διαμόρφωσης χρησιμοποιώντας αυτήν την εντολή:
golangci-lint config > .golangci.yml
Η εντολή δημιουργεί ένα νέο αρχείο με όνομα .golangci.yml στον τρέχοντα κατάλογο σας. Μπορείτε να προχωρήσετε στην επεξεργασία αυτού του αρχείου για να διαμορφώσετε το linter για το έργο σας.
Εδώ είναι τα περιεχόμενα του .golangci.yml αρχείο όταν εκτελείτε την εντολή:
Το αρχείο περιέχει πληροφορίες για το golangci-lint εργαλείο και τις επιλογές που μπορείτε να χρησιμοποιήσετε για να διαμορφώσετε τη διαδικασία καταχώρισής σας.
Θα χρειαστεί να επεξεργαστείτε το αρχείο για να προσθέσετε τους κανόνες για το πρόγραμμά σας. Μπορείτε να βρείτε την πλήρη λίστα των διαθέσιμων λιντερών στο Linters golangci-lint σελίδα τεκμηρίωσης. Ή μπορείτε να εκτελέσετε το βοηθητικές ράβδους εντολή για προβολή των γραμμών στη γραμμή εντολών σας:
λιντερ βοήθειας golangci-lint
Η εντολή εξάγει όλα τα Linters που είναι διαθέσιμα για την έκδοση του πακέτου που έχετε εγκαταστήσει.
Εκτέλεση του Linter
Ακολουθεί μια επίδειξη με την ακόλουθη "Hello, World!" πρόγραμμα που χρησιμοποιεί το net/http πακέτο:
πακέτο κύριος
εισαγωγή (
"fmt"
"net/http"
)funcχειριστής(w http. ResponseWriter, r *http. Αίτηση) {
fmt. Fprintf (w, "Γειά σου Κόσμε!")
}
funcκύριος() {
http. HandleFunc("/", χειριστής)
http. ListenAndServe(":8080", μηδέν)
}
Αυτό το πρόγραμμα ορίζει α χειριστής συνάρτηση που λαμβάνει στιγμιότυπα εγγραφής και αιτήματος από το http του πακέτου ResponseWriter και Αίτηση τύπους κατασκευών. ο χειριστής Η συνάρτηση γράφει "Hello, World!" στον πελάτη κατόπιν αιτήματος.
ο κύριος η λειτουργία τοποθετεί το / διαδρομή προς το χειριστής λειτουργία, και το ListenAndServe η λειτουργία ξεκινά τον διακομιστή στη θύρα localhost 8080.
ο ListenAndServe Η συνάρτηση επιστρέφει ένα σφάλμα, αλλά το πρόγραμμα το αγνοεί. Αυτή η διαμόρφωση θα διασφαλίσει ότι η ράβδος υπογραμμίζει το ζήτημα:
linters-ρυθμίσεις:
νεκρός κώδικας:
# αγνοήστε όλα τα αρχεία δοκιμής
skip-αρχεία: "_test\\.go$"
λαβή:
# απενεργοποίηση ελέγχου σκίασης
check-shadowing: ψευδής
golint:
# αγνοήστε τα σφάλματα σχετικά με τα ονόματα των συναρτήσεων που έχουν εξαχθεί
εξαίρεση-χρήση-Προκαθορισμένο-εξάγονται: αληθής
# αγνοήστε σφάλματα σχετικά με τις κάτω παύλες σε πακέτο ονόματα
εξαίρεση-άχρηστη ονομασία: αληθής
gosec:
# απενεργοποιήστε τις δοκιμές gosec, καθώς είναι αργές και μπορούν να παράγουν ψευδής θετικά
δοκιμές: ψευδής
αχρησιμοποίητος:
# αναφέρετε ορίσματα συνάρτησης που δεν χρησιμοποιούνται, αλλά όχι μεταβλητές που δεν χρησιμοποιούνται
επιταγή-εξαγωγή: αληθής
check-blank: αληθής
τεστ ελέγχου: αληθής
Αφού ρυθμίσετε αυτήν τη διαμόρφωση του λιπαντικού, μπορείτε να εκτελέσετε το λιπαντικό με το τρέξιμο εντολή:
τρέξιμο golangci-lint
# ισοδύναμο, εκτελεί όλα τα προγράμματα
golangci-lint run ./...
Εναλλακτικά, μπορείτε να βάλετε λινά συγκεκριμένα αρχεία καθορίζοντας το όνομα ή τη διαδρομή του αρχείου μετά το τρέξιμο εντολή:
golangci-lint run dir1 dir2/... dir3/file1.go
Ακολουθεί το αποτέλεσμα της εκτέλεσης του λιντερ ενάντια στο πρόγραμμα:
ο golangci-lint Το εργαλείο είναι ευέλικτο και η διαμόρφωσή σας θα διαφέρει ανάλογα με το έργο σας.
Μπορείτε να δεσμεύσετε τα έργα σας JavaScript με το ESLint
Το Linting είναι μια δημοφιλής εργασία ανάπτυξης λογισμικού, και οι περισσότερες γλώσσες προγραμματισμού και IDE παρέχουν εργαλεία για προγράμματα λιντίσματος. Για τη JavaScript, το ESLint είναι το πιο δημοφιλές linter.
Το Eslint παρέχει πολλαπλούς κανόνες λιντίσματος που ακολουθούν τα βιομηχανικά πρότυπα στα εργαλεία CLI, IDE και επεξεργασίας κειμένου, καθιστώντας το εργαλείο linting μια εξαιρετική επιλογή για προγραμματιστές JavaScript.