Pipeline

Pipeline

Pipeline

Sizda endi to'rtta mustaqil funksiya bor: ParseYAML, TransformRows, GroupByCategory, va ComputeStats. Har biri bitta ishni qiladi va o'zidan oldingi bosqichning natijasini kutadi. Bu — Go Basics kursidagi toSlug darsida ko'rgan kompozitsiya g'oyasining aynan o'zi, faqat endi to'rtta bosqichli katta miqyosda: kichik, aniq maqsadli funksiyalarni birlashtirib, Pipeline yasang.

example.go
func RunPipeline(input string) (map[string]CategoryStats, error) {
	rows := ParseYAML(input)

	products, err := TransformRows(rows)
	if err != nil {
		return nil, err
	}

	groups := GroupByCategory(products)
	return ComputeStats(groups), nil
}

E'tibor bering: ParseYAML xato qaytarmaydi (u shunchaki bo'sh qatorlarni e'tiborsiz qoldiradi), lekin TransformRows qaytarishi mumkin (narx noto'g'ri bo'lsa). Pipeline shu yerda erta chiqish qiladi: agar transformatsiya muvaffaqiyatsiz bo'lsa, guruhlash yoki hisoblashga umuman urinib ko'rilmaydi — xato darhol yuqoriga uzatiladi.

Bu andaza — nega Go'da funksiyalar odatda kichik va bitta ishga yo'naltirilgan bo'lishini ko'rsatadi: har bir bosqichni alohida sinash, tushunish va, kerak bo'lsa, almashtirish oson. RunPipelinening o'zi esa faqat tartibni tasvirlaydi — u hech qanday tahlil, transformatsiya yoki hisoblash mantig'ini o'z ichiga olmaydi.

>_ Exercise

Kirish satridan yakuniy statistikagacha bo'lgan to'rtta bosqichni birlashtiradigan RunPipeline(input string) (map[string]CategoryStats, error) funksiyasini yozing. ParseYAML, TransformRows, GroupByCategory, va ComputeStats sizga allaqachon berilgan.

Talablar

  • inputni ParseYAML bilan tahlil qiling
  • Natijani TransformRows bilan o'zgartiring; xato bo'lsa, darhol nil va o'sha xatoni qaytaring
  • Mahsulotlarni GroupByCategory bilan guruhlang
  • ComputeStats natijasini nil xato bilan qaytaring

Stuck? Reveal a hint to help you.

Hints (0/4)

Key Takeaway

Key Takeaway:

Pipeline — bosqichlarni tartib bilan chaqiradigan va birinchi xatoda erta chiqadigan yupqa orkestrator funksiya. Har bir bosqich kichik va mustaqil qolgani uchun, Pipeline'ning o'zi o'qish va ishonch bilan o'zgartirish oson bo'lib qoladi.

NEXT UP

Pipeline Report

OUTPUT

$ go run main.go
Kodingizni ishga tushiring

Pipeline

Pipeline

Sizda endi to'rtta mustaqil funksiya bor: ParseYAML, TransformRows, GroupByCategory, va ComputeStats. Har biri bitta ishni qiladi va o'zidan oldingi bosqichning natijasini kutadi. Bu — Go Basics kursidagi toSlug darsida ko'rgan kompozitsiya g'oyasining aynan o'zi, faqat endi to'rtta bosqichli katta miqyosda: kichik, aniq maqsadli funksiyalarni birlashtirib, Pipeline yasang.

example.go
func RunPipeline(input string) (map[string]CategoryStats, error) {
	rows := ParseYAML(input)

	products, err := TransformRows(rows)
	if err != nil {
		return nil, err
	}

	groups := GroupByCategory(products)
	return ComputeStats(groups), nil
}

E'tibor bering: ParseYAML xato qaytarmaydi (u shunchaki bo'sh qatorlarni e'tiborsiz qoldiradi), lekin TransformRows qaytarishi mumkin (narx noto'g'ri bo'lsa). Pipeline shu yerda erta chiqish qiladi: agar transformatsiya muvaffaqiyatsiz bo'lsa, guruhlash yoki hisoblashga umuman urinib ko'rilmaydi — xato darhol yuqoriga uzatiladi.

Bu andaza — nega Go'da funksiyalar odatda kichik va bitta ishga yo'naltirilgan bo'lishini ko'rsatadi: har bir bosqichni alohida sinash, tushunish va, kerak bo'lsa, almashtirish oson. RunPipelinening o'zi esa faqat tartibni tasvirlaydi — u hech qanday tahlil, transformatsiya yoki hisoblash mantig'ini o'z ichiga olmaydi.

>_ Exercise

Kirish satridan yakuniy statistikagacha bo'lgan to'rtta bosqichni birlashtiradigan RunPipeline(input string) (map[string]CategoryStats, error) funksiyasini yozing. ParseYAML, TransformRows, GroupByCategory, va ComputeStats sizga allaqachon berilgan.

Talablar

  • inputni ParseYAML bilan tahlil qiling
  • Natijani TransformRows bilan o'zgartiring; xato bo'lsa, darhol nil va o'sha xatoni qaytaring
  • Mahsulotlarni GroupByCategory bilan guruhlang
  • ComputeStats natijasini nil xato bilan qaytaring

Stuck? Reveal a hint to help you.

Hints (0/4)

Key Takeaway

Key Takeaway:

Pipeline — bosqichlarni tartib bilan chaqiradigan va birinchi xatoda erta chiqadigan yupqa orkestrator funksiya. Har bir bosqich kichik va mustaqil qolgani uchun, Pipeline'ning o'zi o'qish va ishonch bilan o'zgartirish oson bo'lib qoladi.

NEXT UP

Pipeline Report