GoDasturchi
Keep main Small

Keep main Small

main'ni kichik saqlang

func main() ichiga hamma narsani (konfiguratsiya yuklash, server sozlash, biznes mantiq) yozish vasvasasi katta. Lekin main() qanchalik kichik bo'lsa, qolgan kodni sinash (test yozish) shunchalik osonlashadi — chunki main()ning o'zini test qilib bo'lmaydi.

example.go
package main

import "fmt"

func loadConfig() map[string]string {
	return map[string]string{"port": "8080"}
}

func startServer(cfg map[string]string) string {
	return "server started on :" + cfg["port"]
}

// run() — haqiqiy mantiq shu yerda, va uni TEST QILISH MUMKIN
func run() string {
	cfg := loadConfig()
	return startServer(cfg)
}

// main() — deyarli bo'sh, faqat run()ni chaqiradi
func main() {
	fmt.Println(run())
}

Naqsh sodda: haqiqiy mantiqni run() (yoki shunga o'xshash) funksiyaga chiqarib, main()ni deyarli bo'sh qoldiring. Endi "Professional Go Testing" kursida ko'rgan TestRunni yozish mumkin — main()ning o'zi uchun esa test yozib bo'lmaydi (go test uni chaqirmaydi). Bu — kichik, lekin katta loyihalarda sinaladigan kod hajmini sezilarli oshiradigan odat.

>_ Exercise

Mantiqni main'dan tashqariga chiqaring.

  • buildGreeting(name string) string funksiyasini yozing: "Salom, " + name + "!" qaytarsin
  • main() faqat buildGreeting'ni chaqirib, natijani chop etsin

Stuck? Reveal a hint to help you.

Hints (0/3)

Key Takeaway

Key Takeaway:

Haqiqiy mantiqni main()dan alohida funksiyalarga chiqaring — main()ning o'zini test qilib bo'lmaydi, lekin undan chaqirilgan funksiyalarni bemalol test qilish mumkin.

NEXT UP

One Package, One Purpose

OUTPUT

$ go run main.go
Kodingizni ishga tushiring

Keep main Small

main'ni kichik saqlang

func main() ichiga hamma narsani (konfiguratsiya yuklash, server sozlash, biznes mantiq) yozish vasvasasi katta. Lekin main() qanchalik kichik bo'lsa, qolgan kodni sinash (test yozish) shunchalik osonlashadi — chunki main()ning o'zini test qilib bo'lmaydi.

example.go
package main

import "fmt"

func loadConfig() map[string]string {
	return map[string]string{"port": "8080"}
}

func startServer(cfg map[string]string) string {
	return "server started on :" + cfg["port"]
}

// run() — haqiqiy mantiq shu yerda, va uni TEST QILISH MUMKIN
func run() string {
	cfg := loadConfig()
	return startServer(cfg)
}

// main() — deyarli bo'sh, faqat run()ni chaqiradi
func main() {
	fmt.Println(run())
}

Naqsh sodda: haqiqiy mantiqni run() (yoki shunga o'xshash) funksiyaga chiqarib, main()ni deyarli bo'sh qoldiring. Endi "Professional Go Testing" kursida ko'rgan TestRunni yozish mumkin — main()ning o'zi uchun esa test yozib bo'lmaydi (go test uni chaqirmaydi). Bu — kichik, lekin katta loyihalarda sinaladigan kod hajmini sezilarli oshiradigan odat.

>_ Exercise

Mantiqni main'dan tashqariga chiqaring.

  • buildGreeting(name string) string funksiyasini yozing: "Salom, " + name + "!" qaytarsin
  • main() faqat buildGreeting'ni chaqirib, natijani chop etsin

Stuck? Reveal a hint to help you.

Hints (0/3)

Key Takeaway

Key Takeaway:

Haqiqiy mantiqni main()dan alohida funksiyalarga chiqaring — main()ning o'zini test qilib bo'lmaydi, lekin undan chaqirilgan funksiyalarni bemalol test qilish mumkin.

NEXT UP

One Package, One Purpose