Ozon / Озон (вопросы и ревью кода)
Актуальность: 4 кв 2025
Вопросы
Заголовок раздела «Вопросы»- Какую самую сложную инженерную задачу вы решали?
hr-behavioral/about-you - Как вы использовали Kafka?
brokers/kafka - Как устроена структура данных хэш-таблицы?
algorithms/data-structures - Если хэш-функция возвращает огромное число, а массив хэш-таблицы имеет фиксированный размер (например, 100 ячеек), как именно это большое значение преобразуется в конкретный индекс массива?
algorithms/data-structures - Какие проблемы возникают при работе хэш-таблицы?
sql/general - При каких условиях в хэш-таблице происходит эвакуация?
sql/general - Чему равна временная сложность операций старой мапы в худшем случае?
algorithms/complexity - Как обрабатываются коллизии в хэш-таблице?
go/maps - В утилите top на Linux процесс отображается с нагрузкой 146% CPU. Возможно ли, чтобы один процесс использовал больше 100% процессора? Как интерпретировать это значение?
linux-os/processes - Что такое переменная GOMAXPROCS в Go и зачем она нужна?
go/runtime - Входит ли системная горутина sysmon в лимит потоков, заданный GOMAXPROCS?
go/concurrency - Как убить процесс в Linux?
linux-os/processes - Какие флаги бывают у команды kill?
hr-behavioral/teamwork - На физическом сервере без контейнеризации запущен процесс с утечкой памяти. Что произойдет, когда он исчерпает доступную память?
go/memory-gc - Что такое HTTP-протокол?
network/http - Из каких частей состоит HTTP-запрос?
network/http - Чем HTTP-ответ отличается от HTTP-запроса?
network/http - Что такое cookies и как они используются в HTTP?
network/http - Где хранятся cookies?
network/http - Что такое cookies в контексте семантики HTTP-запроса?
network/http
Задача: Провести ревью код. Затем исправить проблемы: go/basics
Заголовок раздела «Задача: Провести ревью код. Затем исправить проблемы: go/basics»package main
import ( "fmt " "sync ")
func main() { fmt.Println(GetOrCreate("hello ", "world ")) fmt.Println(Get("hello "))}
var cache = make(map[string]string)
// GetOrCreate проверяет существование ключа key// Если такого нет, то создает новое значениеfunc GetOrCreate(key, value string) string { var m sync.Mutex
m.Lock() value = cache[key] m.Unlock()
if value != "" { return value }
m.Lock() cache[key] = value m.Unlock() return value}
func Get(key string) string { var m sync.Mutex m.Lock() v := cache[key] m.Unlock() return v}