Sobes.tech

Golang

Jakie biblioteki służą do pisania metryk w Go?

216

Do czego jest napisany ten kod? Jakie problem biznesowo-techniczne rozwiązuje?

209

Jakie metryki? Jakimi narzędziami będziemy je rejestrować?

190

// Zadanie 4 // W "typowej" usłudze CRUD - w pewnym momencie niektóre metody zaczęły działać wolno, a usługa zaczęła się timeoutować. // Usługa składa się z: // * Application Load Balancer (L7) - przyjmowanie przychodzących żądań i kończenie TLS // * Backend (rest, java/kotlin lub golang) - obsługa przychodzących żądań i logika biznesowa // * Baza danych (postgres) - przechowywanie i obsługa zapytań SQL // Jak postępować poprawnie, aby zrozumieć przyczynę problemów i opracować rozwiązania poprawiające sytuację?

178

// Zadanie 3 // Opisz, jakie zadanie rozwiązuje ten kod // Jakie są problemy w tym rozwiązaniu? // Jak byś przepisał ten kod?

167

Co zrobić z bazą danych i load balancerem w przypadku problemów z wydajnością?

159

Jak uzyskać dostęp do profilera pprof na serwerze produkcyjnym?

155

// Zadanie 3 // Opisać, jakie zadanie rozwiązuje ten kod // Jakie problemy są w tym rozwiązaniu? // Jak byś przepisał ten kod? var c int type Trace struct { // Niektóre pola tutaj } type Sender interface { Send(Trace) } func Do(sender Sender, tr Trace) { c++ if c == 100 { sender.Send(tr) c = 0 } }

145

Jakie indeksy używałeś w pracy? Co stosowałeś w praktyce? Na Wildberries?

139

Co zrobisz, gdy w twoim zespole codziennie zmieniają się priorytety i pojawiają się nowe pilne zadania?

136

Jak działa partycjonowanie w PostgreSQL pod maską?

135

Jakie problemy występują w kodzie z globalnym licznikiem? Jak to naprawić?

130

Jak uczynić Increaser uniwersalnym — niezwiązanym z liczbą 100?

128

Na którym wykresie zauważyłeś problem podczas korzystania z pprof?

128

// Zadanie 3 // Opisz, jakie zadanie rozwiązuje ten kod // Jakie są problemy w tym rozwiązaniu? // Jak byś przepisał ten kod? var c int var mu sync.RWMutex type Trace struct { // Niektóre pola tutaj } 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 } }

120

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] }

115

Czy Increaser może stać się implementacją Sender? Czym Increaser różni się logicznie od Sender?

111

Czy możesz opowiedzieć, jak zaprojektowałeś i zaimplementowałeś API REST i gRPC dla wewnętrznych i zewnętrznych usług platformy?

109
/2