Може ли явно да се задели променлива в стека или на купчината? Как да разберем къде е заделена променливата?
Golang
Как беше реализиран моделът Outbox? Какъв инструмент изпращаше от таблицата outbox към Kafka?
Каква е разликата между VACUUM и VACUUM FULL?
Защо Kafka, а не други системи?
Как предварително да оцените ефективността и полезността на индекс преди да го добавите към продукцията?
Кой транспортен протокол използва gRPC? Каква е разликата между HTTP/2 и HTTP/1.1?
Какво се случва в PostgreSQL, когато се изпълни заявка DELETE FROM table без условия?
Каква информация показва EXPLAIN ANALYZE?
Какво ще стане, ако затворите вече затворен канал? Какво ще стане, ако пишете в nil канал?
Каква е разликата между SSL и TLS?
Каква е разликата между типовете данни int32, int64 и просто int?
Какво е map в Go? Как работи вътрешно? Какво се случва при сблъсък?
Какво е Rate Limiting? Какви алгоритми съществуват?
Разкажи за интересна задача, с която се гордееш, някакъв опит, трудности.
Какво е песимистично блокиране?
Какво е принципът на издръжливост в ACID? Как се постига в PostgreSQL?
// При актуализиране на поръчка, трябва да изпратим данните за поръчката към няколко услуги (API на трети страни) // броят на услугите расте (може да са хиляди+) // написахме кода, в началото всичко вървеше добре, но с времето нашата услуга започна да консумира много памет func (s *orderService) SendOrder(ctx context.Context, hosts []string, order Order) { for i := 0; i < len(hosts); i++ { go func() { // Представете си, че това е дълго мрежово повикване response, err := s.httpClient.Send(ctx, hosts[i], order) if err != nil { s.logger.Error(ctx, "неуспешно изпращане", err) return } s.logger.Info(ctx, "успех", response) }() } }
Какви са каналите в Go? Кои съществуват? Как са структурирани под капака?
Как беше реализирано кеширането на данни? Каква политика за кеширане беше използвана?
Какви начини има за конкатениране на низове в Go? Каква е разликата между + и strings.Builder?