GoDasturchi
Package Naming

Package Naming

Paket nomlash

Go paket nomlari qisqa, kichik harfli, birlik son (ko'plik emas) va pastki chiziqsiz bo'ladi: http, time, stringsuserUtils, Http_Helpers emas.

example.go
// 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.

Hints (0/3)

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

OUTPUT

$ go run main.go
Kodingizni ishga tushiring

Package Naming

Paket nomlash

Go paket nomlari qisqa, kichik harfli, birlik son (ko'plik emas) va pastki chiziqsiz bo'ladi: http, time, stringsuserUtils, Http_Helpers emas.

example.go
// 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.

Hints (0/3)

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