В кои етапи от процеса на интервю в различни организации често задават този въпрос?
Golang
Как се изпълняват заявките към базата данни PostgreSQL?
Кой беше най-големият по обем проект с база данни, който трябваше да реализирате или поддържате?
Можете ли да обясните принципа на работа на gRPC и неговите основни характеристики?
Колко заявки за запис в секунда са идвали към данните?
В кой слой се поставят клиентите за външни услуги и системи?
Можеш ли да се ориентираш за хостовете? Колко хоста, колко контейнери се стартират?
Какъв е вашият опит в разработването на приложения, използващи многопоточност и паралелни изчисления?
На колко инстанции/контейнера работеше услугата?
Как да организирам архитектурата за заявка, която изпълнява бизнес логика, прави повикване към външен сервис (Google) и запазва резултата в базата данни? Опишете по слоеве отгоре надолу.
По какъв принцип да се намалява или увеличава броячът have?
Как се осъществява свързването и показването на данни в Grafana?
Кой беше най-дългият по време проект, по който сте работили?
Работите ли сега или не, и в какъв формат: офис, хибриден, дистанционен?
Каква е разликата между L4 и L7 балансировчика на натоварването?
func maxPlaces(arr []int) int { maxDistance := 0 prev, first := -1, -1 for i := 0; i < len(arr); i++ { if arr[i] == 1 { if first == -1 { first = i maxDistance = max(maxDistance, i) } else { maxDistance = max(maxDistance, (i - prev) / 2) } prev = i } } maxDistance = max(maxDistance, len(arr) - 1 - prev) return maxDistance }
/* Ние трябва да прехвърлим данни от източник към потребител. Източникът предоставя данните на малки пакети (~десет записа), докато потребителят работи по-ефективно с по-големи пакети. Реален пример е прехвърлянето на данни от Kafka тип опашки към базата данни Clickhouse. Източник: - Почти безкраен. - Източникът никога не връща повече от MaxItems записи в едно извикване на Next. - В рамките на една "сесия" (едно извикване на функцията Pipe), източникът връща нови данни при всяко Next. - След рестарт, източникът ще започне от предишната "потвърдена" позиция, указана с cookie. Затова, всяка стойност на cookie, която Next връща, след като данните са запазени в приемника, трябва да бъде потвърдена с извикване на Commit, в същия ред, в който са били върнати от Next. Приемник: - Не може да обработи повече от MaxItems наведнъж. Основно ниво: Трябва да се реализира функцията func Pipe(p Producer, c Consumer) error, която чете данни от източника, ги групира в буфер с размер не повече от MaxItems и ги запазва в приемника, след което потвърждава напредъка в източника. */ const MaxItems = 9999 type Producer interface { // Next връща: // - пакет от елементи за обработка // - cookie за потвърждение след приключване на обработката // - грешка Next() (items []any, cookie int, err error) // Commit се използва за маркиране на данните като обработени Commit(cookie int) error } type Consumer interface { Process(items []any) error } func Pipe(p Producer, c Consumer) error { var buf []any var cookies []int for { items, cookie, err := p.Next() if err != nil { return err } buf = append(buf, items...) cookies = append(cookies, cookie) if len(buf) >= MaxItems { if err := c.Process(buf); err != nil { return err } for _, c := range cookies { if err := p.Commit(c); err != nil { return err } } buf = buf[:0] cookies = nil } } if len(buf) > 0 { if err := c.Process(buf); err != nil { return err } for _, c := range cookies { if err := p.Commit(c); err != nil { return err } } } return nil }
Каква е сложността на алгоритъма по време и памет?
""" Местата в киното са разположени в един ред. Един току-що пристигнал зрител избира място, за да седне възможно най-далече от останалите зрители в реда. Тоест, разстоянието от това място, до най-близкия зрител, трябва да бъде максимално. Гарантира се, че винаги има свободни места и вече има поне един зрител. Напишете функция, която по даден ред места (масив от нули и единици) ще върне разстоянието (броя на интервалите между седалките) от избраното място до най-близкия зрител. [1, 0, 0, 0, 1] -> 2 [1, 0, 1, 0, 0, 1, 0, 0, 1] -> 2 [1, 0, 1, 0] -> 1 """
Как визуално или алгоритмично да определите, че елементът е уникален в структурата данни Map?