Go-da metriklər hansı kitabxanalarla yazılır?
Golang
Bu kod nə üçün yazılıb? Hangi biznes-texniki problemi həll edir?
Hansı metriklər? Bu metrikləri hansı alətlərlə yazacağıq?
// Tapşırıq 4 // "Tipik" CRUD xidməti üçün - müəyyən bir vaxtda bəzi metodlar yavaş işləməyə başladı və xidmət vaxt aşımına uğrayıb. // Xidmət aşağıdakı hissələrdən ibarətdir: // * Application Load Balancer (L7) - daxil olan sorğuları qəbul etmək və tls-ni sonlandırmaq // * Backend (rest, java/kotlin və ya golang) - daxil olan sorğuları işləmək və biznes məntiqi // * Database (postgres) - SQL sorğularını saxlamaq və işləmək // Problemlərin səbəbini düzgün başa düşmək və vəziyyəti yaxşılaşdırmaq üçün həllər hazırlamaq üçün düzgün şəkildə necə hərəkət etmək olar?
// Tapşırıq 3 // Bu kod hansı vəzifəni həll edir // Bu həllərdə hansı problemlər var? // Bu kodu necə yenidən yazardınız?
İşdə nə etdin?
// Tapşırıq 3 // Bu kod hansı vəzifəni həll edir təsvir edin // Bu həlldə hansı problemlər var? // Bu kodu necə yenidən yazardınız? var c int type Trace struct { // Bəzi sahələr burada } type Sender interface { Send(Trace) } func Do(sender Sender, tr Trace) { c++ if c == 100 { sender.Send(tr) c = 0 } }
İşdə hansı indekslərdən istifadə etmisiniz? Praktikada nə tətbiq etdiniz? Wildberries-də?
Komanda daxilində hər gün prioritetlər dəyişirsə və yeni təcili tapşırıqlar yaranırsa, nə edəcəksiniz?
PostgreSQL-də bölmələmə necə işləyir?
İş performansında problemlər olduqda verilənlər bazası və yük balanslayıcı ilə nə etmək lazımdır?
PostgreSQL-də hansı indekslərdən istifadə edirsiniz?
Qlobal sayğac ilə kodda hansı problemlər var? Necə düzəltmək olar?
İstehsal serverində pprof profilinə necə daxil olmaq olar?
pprof istifadə edərkən problemi hansı qrafikdə gördünüz?
Increaser-i necə ümumi etmək olar — 100 sayına bağlı olmayan?
// Sual 3 // Bu kodun hansı vəzifəni həll etdiyini təsvir edin // Bu həllərdə hansı problemlər var? // Bu kodu necə yenidən yazardınız? var c int var mu sync.RWMutex type Trace struct { // Bəzi sahələr burada } 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] }
Increaser, Sender-in həyata keçirilməsi ola bilərmi? Increaser ilə Sender arasında məntiqi fərq nədir?
Platformanın daxili və xarici xidmətləri üçün REST və gRPC API-lərini necə layihələndirdiyinizi və həyata keçirdiyinizi izah edə bilərsinizmi?