GoDasturchi
Putting It All Together

Putting It All Together

Hammasini birlashtirish

Kursning yakuniy darsi — hozirgacha alohida-alohida qurgan barcha qismlarni (fetching, link extraction, chuqurlik bilan cheklangan kezish, hisobot) bitta yaxlit Crawl funksiyasiga birlashtirish. Bu — butun "Go Fundamentals" yo'lining ruhini aks ettiradi: kichik, mustaqil, sinalgan qismlardan katta, ishonchli tizim qurish.

example.go
func Crawl(pages map[string]string, start string, maxDepth int) string {
    // Depth Limiting darsidagi kezish mantig'i:
    // ... queue, visited, FetchPage, ExtractLinks ...

    // Crawl Results darsidagi hisobot:
    return GenerateReport(pages, crawled)
}

E'tibor bering: Crawl o'zi deyarli hech qanday yangi mantiqqa ega emas — u faqat Tracking Visited URLs, Depth Limiting va Crawl Results darslarida allaqachon yozgan, sinovdan o'tgan funksiyalaringizni to'g'ri tartibda chaqiradi. Bu — YAML Data Pipeline kursidagi RunPipelinening eng katta ko'rinishi: kichik funksiyalarni birlashtirib, ular birgalikda qila olmaydigan darajadagi ishni bajarish.

>_ Exercise

Crawl(pages map[string]string, start string, maxDepth int) string funksiyasini yozing. U (Depth Limiting darsidagi kabi) job{url, depth} navbati bilan boshlang'ich URL'dan kezishni boshlaydi, ko'rilgan sahifalarni yig'adi, maxDepthdan oshmaydi, so'ngra yig'ilgan URL'lar ustida GenerateReportni chaqirib, natijani qaytaradi.

Stuck? Reveal a hint to help you.

Hints (0/4)

Key Takeaway

Key Takeaway:

Butun crawler — mustaqil, alohida sinalgan qismlarning (fetch, extract, track, limit, report) tartibli kompozitsiyasi. Har bir qism o'z ishini yaxshi bajarganda, ularni birlashtirish oddiy va ishonchli bo'ladi — bu butun ushbu roadmap davomida qurgan barcha loyihalaringizning umumiy saboqi.

Finish
OUTPUT

$ go run main.go
Kodingizni ishga tushiring

Putting It All Together

Hammasini birlashtirish

Kursning yakuniy darsi — hozirgacha alohida-alohida qurgan barcha qismlarni (fetching, link extraction, chuqurlik bilan cheklangan kezish, hisobot) bitta yaxlit Crawl funksiyasiga birlashtirish. Bu — butun "Go Fundamentals" yo'lining ruhini aks ettiradi: kichik, mustaqil, sinalgan qismlardan katta, ishonchli tizim qurish.

example.go
func Crawl(pages map[string]string, start string, maxDepth int) string {
    // Depth Limiting darsidagi kezish mantig'i:
    // ... queue, visited, FetchPage, ExtractLinks ...

    // Crawl Results darsidagi hisobot:
    return GenerateReport(pages, crawled)
}

E'tibor bering: Crawl o'zi deyarli hech qanday yangi mantiqqa ega emas — u faqat Tracking Visited URLs, Depth Limiting va Crawl Results darslarida allaqachon yozgan, sinovdan o'tgan funksiyalaringizni to'g'ri tartibda chaqiradi. Bu — YAML Data Pipeline kursidagi RunPipelinening eng katta ko'rinishi: kichik funksiyalarni birlashtirib, ular birgalikda qila olmaydigan darajadagi ishni bajarish.

>_ Exercise

Crawl(pages map[string]string, start string, maxDepth int) string funksiyasini yozing. U (Depth Limiting darsidagi kabi) job{url, depth} navbati bilan boshlang'ich URL'dan kezishni boshlaydi, ko'rilgan sahifalarni yig'adi, maxDepthdan oshmaydi, so'ngra yig'ilgan URL'lar ustida GenerateReportni chaqirib, natijani qaytaradi.

Stuck? Reveal a hint to help you.

Hints (0/4)

Key Takeaway

Key Takeaway:

Butun crawler — mustaqil, alohida sinalgan qismlarning (fetch, extract, track, limit, report) tartibli kompozitsiyasi. Har bir qism o'z ishini yaxshi bajarganda, ularni birlashtirish oddiy va ishonchli bo'ladi — bu butun ushbu roadmap davomida qurgan barcha loyihalaringizning umumiy saboqi.