Goда метрикаларды жазуу үчүн кайсы китепканалар колдонулат?
Golang
Бул код эмне үчүн жазылган? Кантип бизнес-техникалык маселени чечет?
Кайсы метрикалар? Бул метрикаларды кайсы инструменттер менен жазабыз?
// Вазифа 4 // "Типик" CRUD кызматы үчүн - бир убакта кээ бир методдор жай иштей баштады жана кызматы таймаут болуп калды. // Кызмат төмөнкүлөрдөн турат: // * Application Load Balancer (L7) - кирүүчү суроолорду кабыл алуу жана tls'ни аяктоо // * Backend (rest, java/kotlin же golang) - кирүүчү суроолорду иштетүү жана бизнес логикасы // * Database (postgres) - SQL суроолорун сактоо жана иштетүү // Маселелердин себебин туура түшүнүү жана абалды жакшыртуу үчүн чечимдерди иштеп чыгуу үчүн кандай туура аракеттерди көрүү керек?
// Тапшырма 3 // Бул код кайсы тапшырманы чечеттигин сүрөттөп бериңиз // Бул чечимде кандай көйгөйлөр бар? // Бул кодду кандайча кайра жазасыз?
Иштөө мүмкүнчүлүгүнүн көйгөйлөрү болсо, маалыматтар базасы жана жүктү теңдестирүүчү менен эмне кылуу керек?
Иштеп чыгуу серверинде pprof профилирлөөгө кантип кирүүгө болот?
Иште эмне кылдың?
// Вазифа 3 // Бул код кайсы тапшырманы чечеттигин сүрөттөп бериңиз // Бул чечимде кандай көйгөйлөр бар? // Бул кодду кандайча кайра жазасыз? var c int type Trace struct { // Айрым талаалар бул жерде } type Sender interface { Send(Trace) } func Do(sender Sender, tr Trace) { c++ if c == 100 { sender.Send(tr) c = 0 } }
Иште кайсы индекстерге таяндыныз? Практикада эмне колдондуңуз? Wildberriesте?
PostgreSQL-д бөлүмдөш кандай иштейт?
Тимдеги артыкчылыктар күн сайын өзгөрүп, жаңы шұғыл тапшырмалар пайда болсо, эмне кыласыз?
PostgreSQL-де кайсы индекстерди колдонуп жатасың?
Глобалдык эсептегич менен коддо кандай көйгөйлөр бар? Кантип оңдоого болот?
Increaser-ди кандайча универсал кылса болот — 100 санына байланбаган?
pprof колдонуп жатканда көйгөйдү кайсы графикте көрдүңүз?
// Суроо 3 // Бул код кандай тапшырманы чечет экенин сүрөттөп бериңиз // Бул чечимде кандай көйгөйлөр бар? // Бул кодду кантип кайра жазмакчы болосуз? var c int var mu sync.RWMutex type Trace struct { // Айрым талаалар бул жерде } type Sender interface { Send(Trace) } func Do(sender Sender, tr Trace) { mu.Lock() defer mu.Unlock() c++ if c == 100 { go func() { sender.Send(tr) }() c = 0 } }
func normalize2(str []rune) []rune { result := str[:0] for val := range str { if val != ' ' { result = append(re) } } l, r := 0, 0 isSpace := false for i := 0, i < len(str); i++ { val := string(str[i]) if val == " " { if isSpace { continue } else { str[r] = val r++ isSpace = true } } else { str[r] = val r++ isSpace = false } } return str[:r] }
Платформанын ички жана тышкы кызматтары үчүн REST жана gRPC API'лерин кантип долбоорлодуңуз жана ишке ашырдыңыз?
Increaser Senderдин ишке ашуусуна айланса болобу? Increaser менен Sender логикалык жактан эмнеге айырмаланат?