קוראים כמוך עוזרים לתמוך ב-MUO. כאשר אתה מבצע רכישה באמצעות קישורים באתר שלנו, אנו עשויים להרוויח עמלת שותף. קרא עוד.

Linting הוא סוג של ניתוח קוד סטטי לזיהוי שגיאות פוטנציאליות בבסיס קוד. Linters מנתחים קוד עבור שגיאות תחביר ובעיות סגנון. התהליך יכול לסייע במניעת באגים, לשפר את הקריאות, לאכוף שיטות עבודה מומלצות ולחסוך זמן.

מוך הוא נוהג סטנדרטי בפיתוח תוכנה. למרות שאין linter מובנה בספרייה הסטנדרטית של Go, כלים רבים של צד שלישי קיימים במערכת האקולוגית של Go. אלה כוללים את חבילות GolangCI Lint, Go Meta Linter ו-Staticcheck.

חבילת GolangCI Lint

חבילת golangci-lint הוא linter חזק וגמיש עבור Go שיכול לעזור לך לזהות ולתקן שגיאות קוד. קלות השימוש של החבילה, יכולת ההרחבה והסט המקיף של לינטרים מובנים הופכים אותה לבחירה פופולרית עבור מפתחי Go רבים.

GolangCI Lint מנתח את קוד המקור של Go ומספק משוב על באגים פוטנציאליים, בעיות אבטחה ו הפרות בסגנון קידוד עם פונקציונליות לניתוח ביצועים גבוהים ואינטגרציה מתמשכת (CI) תמיכה.

הפעל את פקודת הטרמינל הזו בספריית העבודה של הפרויקט שלך כדי להתקין את חבילת Golangci-lint:

instagram viewer
לך להתקין github.com/golangci/golangci-lint/cmd/golangci-lint@v1.51.1

גרסת ה-Go שלך חייבת להיות 1.19 ואילך כדי שהפקודה תתקין את החבילה. אתה יכול גם לבדוק את התקנות golangci-lint עמוד לשיטות התקנה זמינות אחרות.

הפקודה תתקין את GolangCI במערכת שלך ככלי CLI. אתה יכול לאמת את ההתקנה עם הפקודה הזו:

golangci-lint --גרסה

הפקודה אמורה להציג את הגרסה של golangci-lint שהתקנת.

הגדרת ה-Linter

Linters הם מאוד תכליתי, אז כדי להתקין linter, תצטרך להגדיר את linter עבור הפרויקט שלך.

ה golangci-lint שימושים בכלי קבצי YAML להגדרה. תציין את הגדרות ה-linter שלך בקובץ YAML כדי שהחבילה תקרא.

אתה יכול ליצור קובץ תצורה ברירת מחדל באמצעות הפקודה הזו:

golangci-lint config > .golangci.yml

הפקודה יוצרת קובץ חדש בשם .golangci.yml בספרייה הנוכחית שלך. אתה יכול להמשיך לערוך קובץ זה כדי להגדיר את ה-linter עבור הפרויקט שלך.

להלן התוכן של .golangci.yml קובץ כאשר אתה מפעיל את הפקודה:

הקובץ מכיל מידע על golangci-lint הכלי והאפשרויות שבהן תוכל להשתמש כדי להגדיר את תהליך הרישום שלך.

תצטרך לערוך את הקובץ כדי להוסיף את כללי המוך עבור התוכנית שלך. אתה יכול למצוא את הרשימה המלאה של linters זמין ב Golangci-lint Linters דף תיעוד. או שאתה יכול להפעיל את linters לעזור פקודה כדי להציג את הלינטרים בשורת הפקודה שלך:

linters help golangci-lint

הפקודה מפלטת את כל ה-Linters הזמינים עבור גרסת החבילה שהתקנת.

הפעלת ה-Linter

הנה הדגמה של מוך את ה"שלום, עולם!" תוכנית המשתמשת ב- net/http חֲבִילָה:

חֲבִילָה רָאשִׁי

יְבוּא (
"fmt"
"נטו/http"
)

funcמטפל(w http. ResponseWriter, r *http. בַּקָשָׁה) {
fmt. Fprintf (w, "שלום עולם!")
}

funcרָאשִׁי() {
http. HandleFunc("/", מטפל)
http. ListenAndServe(":8080", אֶפֶס)
}

תוכנית זו מגדירה את א מטפל פונקציה שלוקחת מופעי כותב ובקשה מה- http של החבילה כותב תגובה ו בַּקָשָׁה סוגי מבנה. ה מטפל הפונקציה כותבת "שלום, עולם!" ללקוח לפי בקשה.

ה רָאשִׁי הפונקציה מעלה את / מסלול אל מטפל פונקציה, ואת ListenAndServe הפונקציה מפעילה את השרת ביציאת localhost 8080.

ה ListenAndServe הפונקציה מחזירה שגיאה, אך התוכנית מתעלמת ממנה. תצורה זו תבטיח שה-linter מדגיש את הבעיה:

הגדרות linters:
קוד מת:
# התעלם מכל קבצי הבדיקה
דילוג על קבצים: "_test\\.go$"
govet:
# השבת את בדיקת הצללות
צ'ק-הצללה: שֶׁקֶר
גולינט:
# התעלם משגיאות לגבי שמות פונקציות מיוצאות
לא לכלול-שימוש-בְּרִירַת מֶחדָל-מְיוּצָא: נָכוֹן

# התעלם משגיאות לגבי קווים תחתונים ב חֲבִילָה שמות
exclude-less-name-name: נָכוֹן
gosec:
# השבת מבחני gosec, מכיוון שהם איטיים ויכולים לייצר שֶׁקֶר חיוביות
מבחנים: שֶׁקֶר
לא בשימוש:
# דווח על ארגומנטים של פונקציה שאינה בשימוש, אך לא על משתנים שאינם בשימוש
יצוא צ'קים: נָכוֹן
סימון ריק: נָכוֹן
בדיקות בדיקה: נָכוֹן

לאחר הגדרת תצורת ה-linter, אתה יכול להפעיל את ה-linter עם לָרוּץ פקודה:

ריצת golangci-lint

# שווה ערך, מריץ את כל התוכניות
ריצת גולנגצי מוך ./...

לחלופין, אתה יכול לצבוע קבצים ספציפיים על ידי ציון שם הקובץ או הנתיב אחרי ה- לָרוּץ פקודה:

 golangci-lint run dir1 dir2/... dir3/file1.go

הנה התוצאה של הפעלת ה-linter נגד התוכנית:

ה golangci-lint הכלי הוא רב תכליתי, והתצורה שלך תשתנה בהתאם לפרויקט שלך.

אתה יכול לשלב את פרויקטי ה-JavaScript שלך עם ESLint

Linting היא משימת פיתוח תוכנה פופולרית, ורוב שפות התכנות וה-IDE מספקות כלים לתוכניות מוך. עבור JavaScript, ESLint הוא ה-linter הפופולרי ביותר.

Eslint מספקת כללי מוך מרובים העומדים בסטנדרטים של התעשייה בכלי CLI, IDE ועורך טקסט, מה שהופך את כלי המוך לבחירה מצוינת עבור מפתחי JavaScript.