Package Naming
Paket nomlash
Go paket nomlari qisqa, kichik harfli, birlik son (ko'plik emas) va pastki chiziqsiz bo'ladi: http, time, strings — userUtils, Http_Helpers emas.
// package user — to'g'ri: qisqa, kichik harf
// package users — noto'g'ri: ko'plik shart emas
// package userUtils — noto'g'ri: aralash registr, "Utils" umumiy
// Paket nomi allaqachon kontekst bergani uchun, undagi turlar
// paket nomini TAKRORLAMASLIGI kerak ("stutter" — takrorlanish):
package user
type Profile struct { // user.Profile — yaxshi
Name string
}
// type UserProfile struct{} // user.UserProfile — YOMON, "user" ikki marta takrorlanadi"Stutter" (takrorlanish) muammosi: agar paket user deb nomlansa-yu, ichidagi tur UserProfile deb nomlansa, uni chaqirganda user.UserProfile chiqadi — "user" so'zi ikki marta takrorlanadi. To'g'risi — user.Profile, chunki paket nomi allaqachon "bu foydalanuvchi haqida" degan ma'noni bergan. Bu tamoyilni "Code Organization" kursida yana ko'rasiz.
>_ Exercise
Paket ichidagi "stutter"ni bartaraf eting (simulyatsiya: bitta faylda ikkita struct orqali).
- •PaymentGateway struct'ini Gateway deb qayta nomlang (chunki bu "payment" paketi ichida bo'lardi)
- •Gateway'ni ishlatib, uning Name maydonini chop eting
Stuck? Reveal a hint to help you.
Key Takeaway
Key Takeaway:
Paket nomlari qisqa va kichik harfli bo'ladi; ichidagi turlar paket nomini takrorlamasligi ("stutter" bo'lmasligi) kerak, chunki chaqiruvda paket nomi allaqachon mavjud.
NEXT UP
Make Zero Values Useful Part 1: Ready-to-Use Types
$ go run main.go
Kodingizni ishga tushiring