GoDasturchi
Request Gatekeeper

Request Gatekeeper

So'rovlar qorovuli

Input Cleanup darsida ID'larni tozaladingiz, lekin nima bo'ladi, agar tozalashdan keyin ID bo'sh qolsa (masalan, foydalanuvchi faqat bo'sh joy yuborgan bo'lsa)? Bo'sh ID'ni haqiqiy mijoz sifatida qabul qilish xato bo'lardi — barcha bunday so'rovlar bitta soxta "mijoz"ga aylanib, ular uchun umumiy limitni buzib yuboradi.

Gatekeeper (qorovul) naqshi — bu tozalash va tekshirishni bitta joyga birlashtirgan funksiya: u so'rovni yoki rad etadi, yoki tozalangan, ishlatishga tayyor ID bilan o'tkazadi. Bu Errors Are Values darsidagi ikki qiymatli qaytarish andazasining davomi:

example.go
func Gatekeeper(raw string) (string, bool) {
    id := CleanID(raw)
    if id == "" {
        return "", false
    }
    return id, true
}

Chaqiruvchi kod endi juda oddiy bo'ladi: id, ok := Gatekeeper(rawInput); if !ok { ... rad etish ... }. Barcha tekshirish mantig'i bitta joyda jamlangan, va qolgan kod faqat allaqachon tekshirilgan, tozalangan ID bilan ishlaydi.

>_ Exercise

Berilgan CleanID funksiyasidan foydalanib, Gatekeeper(raw string) (string, bool) funksiyasini yozing. U ID'ni tozalaydi; agar tozalangandan keyin bo'sh bo'lsa, "", false qaytaradi; aks holda tozalangan ID va true qaytaradi.

Stuck? Reveal a hint to help you.

Hints (0/3)

Key Takeaway

Key Takeaway:

Gatekeeper naqshi — tozalash va tekshirishni bitta funksiyaga birlashtirib, ikki qiymat (natija va muvaffaqiyat belgisi) qaytaradi. Bu chaqiruvchi kodni soddalashtiradi: u faqat okni tekshiradi, tekshirish mantig'ining ichki detallarini bilishi shart emas.

NEXT UP

Counting Requests

OUTPUT

$ go run main.go
Kodingizni ishga tushiring

Request Gatekeeper

So'rovlar qorovuli

Input Cleanup darsida ID'larni tozaladingiz, lekin nima bo'ladi, agar tozalashdan keyin ID bo'sh qolsa (masalan, foydalanuvchi faqat bo'sh joy yuborgan bo'lsa)? Bo'sh ID'ni haqiqiy mijoz sifatida qabul qilish xato bo'lardi — barcha bunday so'rovlar bitta soxta "mijoz"ga aylanib, ular uchun umumiy limitni buzib yuboradi.

Gatekeeper (qorovul) naqshi — bu tozalash va tekshirishni bitta joyga birlashtirgan funksiya: u so'rovni yoki rad etadi, yoki tozalangan, ishlatishga tayyor ID bilan o'tkazadi. Bu Errors Are Values darsidagi ikki qiymatli qaytarish andazasining davomi:

example.go
func Gatekeeper(raw string) (string, bool) {
    id := CleanID(raw)
    if id == "" {
        return "", false
    }
    return id, true
}

Chaqiruvchi kod endi juda oddiy bo'ladi: id, ok := Gatekeeper(rawInput); if !ok { ... rad etish ... }. Barcha tekshirish mantig'i bitta joyda jamlangan, va qolgan kod faqat allaqachon tekshirilgan, tozalangan ID bilan ishlaydi.

>_ Exercise

Berilgan CleanID funksiyasidan foydalanib, Gatekeeper(raw string) (string, bool) funksiyasini yozing. U ID'ni tozalaydi; agar tozalangandan keyin bo'sh bo'lsa, "", false qaytaradi; aks holda tozalangan ID va true qaytaradi.

Stuck? Reveal a hint to help you.

Hints (0/3)

Key Takeaway

Key Takeaway:

Gatekeeper naqshi — tozalash va tekshirishni bitta funksiyaga birlashtirib, ikki qiymat (natija va muvaffaqiyat belgisi) qaytaradi. Bu chaqiruvchi kodni soddalashtiradi: u faqat okni tekshiradi, tekshirish mantig'ining ichki detallarini bilishi shart emas.

NEXT UP

Counting Requests