Golang
От каква сума започвате при разглеждане на обяви за работа?
В момента работите в [компания], още една седмица ли имате за довършване?
Къде се виждаш в бъдеще — като експерт, Tech Lead, архитект?
Какво ще изведе този код и защо? ```go package main import "fmt" func main() { lst := []string{"a", "b", "c", "d"} for k, v := range lst { if k == 0 { lst = []string{"aa", "bb", "cc", "dd"} } fmt.Println(v) } } ```
На каква сума разчитате?
Какъв е подходът, ако данните са динамични и се променят на всеки 10 минути, а ги четат милиони на минута?
Как се почистват мъртвите редове в PostgreSQL? Как работи Vacuum?
Как разбрахте, че има натоварване на базата данни? Как участвахте в идентифицирането на проблема?
Разкажете конкретно с какво се занимавахте в [компания].
Можеш ли да обясниш протоколите TCP и UDP, как се различават?
Чел ли си за реализирането на хеш таблица (карта) в Go? Колко лош може да бъде хеш-функцията в най-лошия случай?
Как да разберем кога е необходим партициониране или шардиране?
пакет главен импортиране ( "crypto/md5" "fmt" ) var азбучен = []rune{'a', 'b', 'c', 'd', '1', '2', '3'} func ВъзстановяванеНаПарола(h []byte) string { return "" } func хешПарола(вход string) []byte { h := md5.Sum([]byte(вход)) return h[:] } func main() { тестове := []string{"a", "12", "abc333d"} ok := true for _, очаквано := range тестове { h := хешПарола(очаквано) активно := ВъзстановяванеНаПарола(h) if активно != очаквано { fmt.Printf("Грешка: очакваше %q, получи %q\n", очаквано, активно) ok = false } } if ok { fmt.Println("Всички тестове преминаха успешно") } }
Ще е необходим конструктор за това решение?
Имали ли сте грешки? Какви изводи направихте, как ги решихте?
func Do(ctx context.Context, users []User) (map[string]int64, error) { var mu sync.Mutex var wg sync.WaitGroup ch := make(chan error, len(users)) names := make(map[string]int64, 0) ctxWithCancel, cancel := context.WithCancel(ctx) wg.Add(len(users)) for _, u := range users { go func() { defer wg.Done() select { case name, err := fetch(ctx, u): if err != nil { ch <- err return } mu.Lock() names[name] = names[name] + 1 mu.Unlock() case <-ctxWithCancel.Err: } }() } return names, nil }
Обичайна практика ли е да поставяте файла auth.go и теста auth_test.go в една и съща директория?
Защо излезе на пазара и защо отговори на тази обява?
Ако няколко поръчки на един клиент имат еднаква сума, как ще се промени поведението на DENSE_RANK() в сравнение с RANK()? - DENSE_RANK() пропуска следващия номер, RANK() не - DENSE_RANK() присвоява еднакъв ранг на еднакви суми и не пропуска следващия номер, RANK() пропуска - Няма разлика - DENSE_RANK() дава уникални номера, RANK() еднакви номера
Къде искаш да растеш?