Se poate aloca explicit o variabilă pe stivă sau pe heap? Cum înțelegem unde a fost alocată variabila?
Golang
Cum a fost implementat modelul Outbox? Ce instrument trimitea din tabelul outbox către Kafka?
Care este diferența dintre VACUUM și VACUUM FULL?
De ce Kafka și nu alte sisteme?
Cum să evaluezi în prealabil eficacitatea și utilitatea unui index înainte de a-l adăuga în producție?
Ce protocol de transport folosește gRPC? Care este diferența între HTTP/2 și HTTP/1.1?
Ce se întâmplă în PostgreSQL atunci când se execută o interogare DELETE FROM table fără condiții?
Ce informații afișează EXPLAIN ANALYZE?
Care este diferența dintre tipurile de date int32, int64 și pur și simplu int?
Care este diferența dintre SSL și TLS?
Ce se întâmplă dacă închizi un canal deja închis? Ce se întâmplă dacă scrii într-un canal nil?
Ce este un map în Go? Cum funcționează în interior? Ce se întâmplă în cazul unei coliziuni?
Ce este Rate Limiting? Ce algoritmi există?
Povestește o sarcină interesantă de care ești mândru, o experiență sau dificultăți.
Ce este blocarea pesimistă?
// La actualizarea unei comenzi, trebuie să trimitem datele comenzii către mai multe servicii (API-uri terțe) // numărul de servicii crește (poate fi mii+) // am scris codul, la început totul mergea bine, dar cu timpul serviciul nostru a început să consume multă memorie func (s *orderService) SendOrder(ctx context.Context, hosts []string, order Order) { for i := 0; i < len(hosts); i++ { go func() { // Să presupunem că acesta este un apel de rețea lung response, err := s.httpClient.Send(ctx, hosts[i], order) if err != nil { s.logger.Error(ctx, "eșec la trimitere", err) return } s.logger.Info(ctx, "succes", response) }() } }
Care sunt metodele de concatenare a șirurilor în Go? Care este diferența dintre + și strings.Builder?
// Avem o metodă pentru obținerea informațiilor despre produse, această metodă este apelată foarte des // există probleme în acest cod și cum le putem corecta? bază de date postgress func (r *ProductRepository) GetProductDetails(ctx context.Context, productIDs []int) []Product { products := make([]Product, 0, len(productIDs)) for _, id := range productIDs { go func(id int) { var p Product query := "SELECT name, price, description FROM products WHERE id = $1" err := r.db.QueryRowContext(ctx, query, id).Scan(&p.Name, &p.Price, &p.Desc) if err != nil { r.logger.Error("error get product", "err", err) return } products = append(products, p) }(id) } return products }
Ce sunt canalele în Go? Care există? Cum sunt structurate în interior?
Ce este principiul Durabilității în ACID? Cum se realizează în PostgreSQL?