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.
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.
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
$ go run main.go
Kodingizni ishga tushiring