Kokiose bibliotekose rašomi metrikos Go?
Golang
Kokia šio kodo paskirtis? Kokį verslo-techninį problemą jis sprendžia?
Kokios metrikos? Su kokiais įrankiais rašysime šias metrikas?
// Užduotis 4 // Tipiniame CRUD serveryje - tam tikru momentu kai kurios metodai pradėjo veikti lėtai ir paslauga pradėjo laukti. // Paslauga susideda iš: // * Application Load Balancer (L7) - priima įeinančius užklausas ir užbaigia tls // * Backend (rest, java/kotlin arba golang) - apdoroja įeinančias užklausas ir verslo logiką // * Database (postgres) - saugo ir apdoroja SQL užklausas // Kaip teisingai elgtis, kad suprastumėte problemų priežastį ir sukurtumėte sprendimus situacijai pagerinti?
// Užduotis 3 // Aprašykite, kokią užduotį šis kodas sprendžia // Kokios problemos yra šiame sprendime? // Kaip perrašytumėte šį kodą?
Ką daryti su duomenų baze ir apkrovos balansavimo priemone, jei kyla našumo problemų?
Kaip prisijungti prie pprof profiliavimo serveryje?
Ką veikėte darbe?
// Užduotis 3 // Aprašykite, kokią užduotį sprendžia šis kodas // Kokios problemos yra šiame sprendime? // Kaip perrašytumėte šį kodą? var c int type Trace struct { // Kai kurie laukai čia } type Sender interface { Send(Trace) } func Do(sender Sender, tr Trace) { c++ if c == 100 { sender.Send(tr) c = 0 } }
Kokius indeksus naudojote darbe? Ką taikėte praktikoje? Wildberries?
Ką darysite, kai jūsų komandoje kasdien keičiasi prioritetai ir atsiranda naujų skubių užduočių?
Kaip veikia skirstymas PostgreSQL po gaubtu?
Kokius indeksus naudoji PostgreSQL?
Kokios problemos yra su globaliu skaitikliu kode? Kaip tai ištaisyti?
Kaip padaryti Increaser universalų — nesusijusį su skaičiumi 100?
Kuriame grafike pprof naudojimo metu pamatėte problemą?
// Klausimas 3 // Aprašykite, kokį uždavinį sprendžia šis kodas // Kokios problemos yra šiame sprendime? // Kaip perrašytumėte šį kodą? var c int var mu sync.RWMutex type Trace struct { // Kai kurie laukai čia } 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] }
Ar Increaser gali tapti Sender įgyvendinimu? Kuo Increaser logiškai skiriasi nuo Sender?
Ar galite papasakoti, kaip sukūrėte ir įgyvendinote REST ir gRPC API platformos vidiniams ir išoriniams servisams?