Tashqi kutubxonalar va Dependency management
Dependency management
Dependency management — bu dasturda tashqi kutubxonalar (ya'ni boshqa odamlar yozgan kodlar) bilan ishlashni boshqarish jarayonidir.
Nega bu muhim?
- Versiyalar: Har bir kutubxona turli versiyalarda bo'ladi (v1.0.0, v2.3.4).
- Moslik: Ba'zi versiyalar sizning kodingizga mos kelmasligi mumkin.
- Yangilash va xavfsizlik: Kutubxonalarni yangilab borish kerak, bug yoki xavfsizlik muammolarini tuzatish uchun.
Shu vaqtgacha biz Go dasturlash tilida mavjud bo'lgan, ya'ni Go'ni kompyuterimizga o'rnatganimizda birga keladigan kutubxonalar (packages) bilan ishladik. Masalan, fmt, math kabi standart kutubxonalarni misol qilib keltirish mumkin. Ushbu kutubxonalar oldindan yozilib, Go'ning manba kodiga qo'shilgan.
Ba'zan duch keladigan muammolarni hal qilishda Go'ning standart kutubxonalari yetarli bo'lmasligi mumkin. Bunday holatlarda boshqa dasturchilar tomonidan yozilgan va Go kutubxonalari ro'yxatiga qo'shilgan tashqi paketlardan foydalanishimiz kerak bo'ladi. Goning kutubxonalari https://pkg.go.dev/ bazasida saqlanadi.
Tashqi kutubxonalarni o'rnatish
Go dasturida tashqi kutubxonalarni boshqarish va o'rnatish uchun Go modules tizimidan foydalaniladi. Tashqi kutubxonani loyihaga qo'shish uchun quyidagi buyruqdan foydalanish mumkin:
go get dan so'ng kutubxona nomi kiritiladi. Bu buyruq ishlashi uchun avval Go modul yaratishimiz kerak bo'ladi, quyidagi buruq bilan amalga oshiriladi:Yuqoridagi buyruq ishga tushuriliganidan so'ng go.mod fayl hosil bo'ladi. Ushbu fayl loyiha nomini hamda loyiha ishga tushirilgan Go versiyasini o'zida saqlaydi.
Endi esa go get
buyrug'i bilan web api
lar ishlab chiqish uchun mo'ljallangan Gin kutubxonasini o'rnatib ko'ramiz.
Bu buyruq gin-gonic veb-freyvorkini yuklab olib, go.mod va go.sum fayllariga qo'shadi. Agar go.sum bo'lmasa yangi yaratiladi. go.sum fayli go get yordamida yuklab olingan barcha bog'liqliklar (dependencies) ning xesh (checksum) qiymatlarini saqlaydi. go.sum loyihada ishlatilgan bog'liqliklar to'g'ri yuklashi va jamoa a’zolari yoki serverlar bir xil bog'liqliklarni yuklab olishi uchun xizmat qiladi.
Yuklab olingan kutubxonadan foydalanish uchun, loyihaga quyidagicha qo'shish(import qilish) kerak bo'ladi.
Odatda loyihaga qanday qo'shish kerakligi kutubxona hujjatida mavjud bo'ladi.
Foydali buyruqlar
go mod init myapp
- Yangi modul (project) yaratadigo get kutubxona@versiya
- Kutubxonani yuklaydi yoki yangilaydigo mod tidy
- Keraksiz dependencylarni o'chiradigo list -m all
- Hozirgi barcha kutubxonalarni ko'rsatadi