Golang
Какова мотивация перехода? Почему решил выйти на рынок?
Расскажи про чистую архитектуру и луковую архитектуру
Расскажите разницу между REST, gRPC и GraphQL.
Реализуйте функцию, которая принимает []any и delta int. Необходимо увеличить на delta только первые вхождения уникальных чисел (int). Другие типы и повторные числа оставить без изменений. Функция должна вернуть обновленный слайс и 2 числа: updated — сколько уникальных чисел было изменено, duplicates — сколько числовых элементов оказалось дубликатами func IncrementUniqueIntsInMixed(xs []any, delta int) ([]any, int, int) { // ваш код }
У тебя есть большой файл с миллионами URL адресов картинок. Нужно скачать их все и сложить на диск. Как организовать код, чтобы скачивание было быстрым, компьютер не завис, программа не перезапускалась, и внешний сервис не забанил за слишком частые запросы?
Если все значения попадают в один бакет и накапливаются overflow-бакеты, что произойдёт при same-size grow (переупаковке без увеличения размера)?
Может ли Go определить дедлок? Как рантайм Go обнаруживает дедлок?
Какие стратегии инвалидации кэша бывают в Redis? Какие данные кэшировать, какие нет? L1/L2 кэширование.
Требуется реализовать функцию uniqRandn, которая генерирует слайс длины n уникальных, рандомных чисел. import ( "fmt" "math/rand" ) func main() { fmt.Println(uniqRandn(10)) } func uniqRandn(n int) []int { //... }
Нужно описать модель библиотеки. Есть 3 сущности: «Автор», «Книга», «Читатель». Физически книга только одна и может быть только у одного читателя. Нужно составить таблицы для библиотеки так чтобы это учесть. У книги может быть несколько авторов.
Всегда ли kill убивает процесс?
Помимо Go, из брокеров сообщений, баз данных, с чем работал?
Условие У нас есть база данных с паролями пользователей, пароли захешированы (функция hashPassword), а так же известен набор символов которые могут быть использованы в паролях (переменная alphabet). Наша задача реализовать функцию RecoverPassword так, чтобы она восстанавливала пароль по известному хэшу и TestRecoverPassword завершился успешно Базовые требования: Решить как угодно package main import ( "crypto/md5" "fmt" ) var alphabet = []rune{'a', 'b', 'c', 'd', '1', '2', '3'} func RecoverPassword(h []byte) string { return "" } func hashPassword(in string) []byte { h := md5.Sum([]byte(in)) return h[:] } func main() { tests := []string{"a", "12", "abc333d"} ok := true for _, exp := range range tests { h := hashPassword(exp) act := RecoverPassword(h) if act != exp { fmt.Printf("Ошибка: ожидалось %q, получено %q\n", exp, act) ok = false } } if ok { fmt.Println("Все тесты пройдены успешно") } }
Ты добавляешь WaitGroup, чтобы что?
package main import ( "io" "log" "net/http" ) func handler(w http.ResponseWriter, r *http.Request) { go func() { resp, err := http.Get("[link] if err != nil { log.Println("request error:", err) return } defer resp.Body.Close() body, _ := io.ReadAll(resp.Body) w.Write(body) }() } func main() { http.HandleFunc("/proxy", handler) log.Fatal(http.ListenAndServe(":8080", nil)) }
Писал ли документацию?
Что такое пессимистическая блокировка?
В чём разница между EXPLAIN и EXPLAIN ANALYZE?
Дана строка символов. Найти количество пар индексов i и j (i <= j), между которыми, включительно, нет повторяющихся символов. Для строки "aba" ответ 5: [0, 0] ("a") [0, 1] ("ab") [1, 1] ("b") [1, 2] ("ba") [2, 2] ("a") Для строки "abcb" ответ ?: aba 3 + 2 = 5 abcb 4(a, b, c, d) + 1(ab) + 1(bc) + 1(cb) + 1(abc) = 8
Как вы делали валидацию сообщений из Kafka? Если сообщение не провалидировалось — что с ним происходило?