لنٹنگ ممکنہ کوڈ بیس کی غلطیوں کی نشاندہی کرنے کے لیے جامد کوڈ تجزیہ کی ایک قسم ہے۔ لنٹر نحو کی غلطیوں اور طرز کے مسائل کے لیے کوڈ کا تجزیہ کرتے ہیں۔ یہ عمل کیڑے کو روکنے، پڑھنے کی اہلیت کو بہتر بنانے، بہترین طریقوں کو نافذ کرنے اور وقت بچانے میں مدد کر سکتا ہے۔
لنٹنگ سافٹ ویئر کی ترقی میں ایک معیاری مشق ہے۔ گو کہ گو کی معیاری لائبریری میں کوئی لنٹر نہیں بنایا گیا ہے، تاہم گو ایکو سسٹم میں تھرڈ پارٹی لِنٹنگ ٹولز موجود ہیں۔ ان میں GolangCI Lint، Go Meta Linter، اور Staticcheck پیکجز شامل ہیں۔
دن کی ویڈیو کا میک یوز
گولانگ سی آئی لنٹ پیکیج
گولانگسی لنٹ پیکیج Go کے لیے ایک طاقتور اور لچکدار لنٹر ہے جو آپ کو کوڈ کی غلطیوں کی شناخت اور اسے ٹھیک کرنے میں مدد کر سکتا ہے۔ پیکیج کے استعمال میں آسانی، توسیع پذیری، اور بلٹ ان لنٹرز کا جامع سیٹ اسے بہت سے گو ڈویلپرز کے لیے ایک مقبول انتخاب بناتا ہے۔
GolangCI Lint Go سورس کوڈ کا تجزیہ کرتا ہے اور اعلی کارکردگی کے تجزیے اور مسلسل انضمام (CI) سپورٹ کے لیے فعالیت کے ساتھ ممکنہ کیڑے، سیکیورٹی کے مسائل، اور کوڈنگ اسٹائل کی خلاف ورزیوں پر فیڈ بیک فراہم کرتا ہے۔
Golangci-lint پیکیج کو انسٹال کرنے کے لیے اس ٹرمینل کمانڈ کو اپنے پروجیکٹ کی ورکنگ ڈائرکٹری میں چلائیں۔
go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.51.1
پیکیج کو انسٹال کرنے کے لیے آپ کا گو ورژن 1.19 یا اس کے بعد کا ہونا چاہیے۔ آپ بھی چیک کر سکتے ہیں۔ golangci-lint تنصیبات دیگر دستیاب تنصیب کے طریقوں کے لیے صفحہ۔
کمانڈ آپ کے سسٹم پر CLI ٹول کے طور پر GolangCI انسٹال کرے گی۔ آپ اس کمانڈ سے انسٹالیشن کی تصدیق کر سکتے ہیں:
اگر آپ فیس بک پر کسی کو غیر دوست بناتے ہیں تو کیا آپ ان سے دوبارہ دوستی کر سکتے ہیں؟
golangci-lint --version
کمانڈ کو آپ کے انسٹال کردہ گولانگسی لِنٹ کا ورژن دکھانا چاہیے۔
لنٹر کو ترتیب دینا
لنٹر بہت ورسٹائل ہیں۔ ، لہذا لنٹر انسٹال کرنے کے لیے، آپ کو اپنے پروجیکٹ کے لیے لنٹر کو کنفیگر کرنا ہوگا۔
دی golangci-lint آلے کا استعمال کرتا ہے ترتیب کے لیے YAML فائلیں۔ . آپ پیکج کو پڑھنے کے لیے YAML فائل میں اپنے لنٹر کی ترتیبات کی وضاحت کریں گے۔
آپ اس کمانڈ کا استعمال کرکے ڈیفالٹ کنفیگریشن فائل بنا سکتے ہیں۔
golangci-lint config > .golangci.yml
کمانڈ نام سے ایک نئی فائل بناتی ہے۔ .golangci.yml آپ کی موجودہ ڈائریکٹری میں۔ آپ اپنے پروجیکٹ کے لیے لنٹر کو ترتیب دینے کے لیے اس فائل میں ترمیم کرنے کے لیے آگے بڑھ سکتے ہیں۔
کے مندرجات یہ ہیں۔ .golangci.yml فائل جب آپ کمانڈ چلاتے ہیں:
فائل کے بارے میں معلومات پر مشتمل ہے۔ golangci-lint ٹول اور وہ اختیارات جو آپ اپنی فہرست سازی کے عمل کو ترتیب دینے کے لیے استعمال کر سکتے ہیں۔
آپ کو اپنے پروگرام کے لیے لنٹنگ کے اصول شامل کرنے کے لیے فائل میں ترمیم کرنے کی ضرورت ہوگی۔ آپ پر دستیاب لنٹرز کی مکمل فہرست تلاش کر سکتے ہیں۔ golangci-lint Linters دستاویزات کا صفحہ۔ یا آپ چلا سکتے ہیں۔ مدد لینٹرز اپنی کمانڈ لائن پر لنٹرز کو دیکھنے کے لئے کمانڈ:
انسٹال شدہ پروگراموں کو دوسری ڈرائیو میں منتقل کریں۔
golangci-lint help linters
کمانڈ آپ کے انسٹال کردہ پیکیج کے ورژن کے لیے دستیاب تمام لنٹرز کو آؤٹ پٹ کرتی ہے۔
لنٹر چلانا
یہاں مندرجہ ذیل 'ہیلو، ورلڈ!' کو لنٹنگ کرنے کا ایک مظاہرہ ہے۔ پروگرام جو استعمال کرتا ہے۔ net/http پیکیج:
package main
import (
"fmt"
"net/http"
)
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello, world!")
}
func main() {
http.HandleFunc("/", handler)
http.ListenAndServe(":8080", nil)
}
یہ پروگرام ایک کی وضاحت کرتا ہے۔ ہینڈلر فنکشن جو مصنف میں لیتا ہے اور سے مثالوں کی درخواست کرتا ہے۔ http پیکج رسپانس رائٹر اور درخواست ساخت کی اقسام دی ہینڈلر فنکشن لکھتا ہے 'ہیلو، ورلڈ!' درخواست پر کلائنٹ کو.
دی مرکزی فنکشن ماؤنٹ کرتا ہے۔ / کا راستہ ہینڈلر فنکشن، اور سنیں اور خدمت کریں۔ فنکشن سرور کو لوکل ہوسٹ پورٹ پر شروع کرتا ہے۔ 8080 .
دی سنیں اور خدمت کریں۔ فنکشن ایک غلطی واپس کرتا ہے، لیکن پروگرام اسے نظر انداز کرتا ہے. یہ ترتیب اس بات کو یقینی بنائے گی کہ لنٹر مسئلہ کو نمایاں کرتا ہے:
linters-settings:
deadcode:
# ignore all test files
skip-files: "_test\.go$"
govet:
# disable shadowing check
check-shadowing: false
golint:
# ignore errors about exported function names
exclude-use-default-exported: true
# ignore errors about underscores in package names
exclude-useless-naming: true
gosec:
# disable gosec tests, since they are slow and can produce false positives
tests: false
unused:
# report unused function arguments, but not unused variables
check-exported: true
check-blank: true
check-tests: true
اس لنٹر کنفیگریشن کو سیٹ کرنے کے بعد، آپ لنٹر کو کے ساتھ چلا سکتے ہیں۔ رن کمانڈ:
golangci-lint run
# equivalent, runs all programs
golangci-lint run ./...
متبادل طور پر، آپ فائل کا نام یا راستہ بتا کر مخصوص فائلوں کو لنٹ کر سکتے ہیں۔ رن کمانڈ:
golangci-lint run dir1 dir2/... dir3/file1.go
پروگرام کے خلاف لنٹر چلانے کا نتیجہ یہ ہے:
دی golangci-lint ٹول ورسٹائل ہے، اور آپ کی ترتیب آپ کے پروجیکٹ کی بنیاد پر مختلف ہوگی۔
آپ ESLint کے ساتھ اپنے جاوا اسکرپٹ پروجیکٹس کو لنٹ کر سکتے ہیں۔
لنٹنگ سافٹ ویئر کی ترقی کا ایک مقبول کام ہے، اور زیادہ تر پروگرامنگ زبانیں اور IDEs linting پروگراموں کے لیے ٹولز فراہم کرتے ہیں۔ JavaScript کے لیے، ESLint سب سے زیادہ مقبول لنٹر ہے۔
Eslint linting کے متعدد قواعد فراہم کرتا ہے جو CLI، IDE، اور ٹیکسٹ ایڈیٹر ٹولز میں صنعتی معیارات کی پیروی کرتے ہیں، جس سے linting ٹول JavaScript کے ڈویلپرز کے لیے بہترین انتخاب ہے۔