Lehet-e egy változót kifejezetten a veremben vagy a heapen lefoglalni? Hogyan lehet megérteni, hol foglalták le a változót?
Golang
Hogyan valósult meg az Outbox minta? Milyen eszköz küldte az outbox táblából a Kafka-ba?
Mi a különbség a VACUUM és a VACUUM FULL között?
Miért Kafka és nem más rendszerek?
Hogyan értékeljük előre egy index hatékonyságát és hasznosságát, mielőtt hozzáadnánk a termeléshez?
Milyen szállítási protokollt használ a gRPC? Mi a különbség a HTTP/2 és a HTTP/1.1 között?
Mi történik a PostgreSQL-ben, amikor egy DELETE FROM table kérés feltételek nélkül fut?
Mi az a Tartósság elve az ACID-ben? Hogyan érhető el a PostgreSQL-ben?
Mit mutat az EXPLAIN ANALYZE?
Mi történik, ha lezársz egy már lezárt csatornát? Mi történik, ha írunk egy nil csatornába?
Mi a különbség az int32, int64 és egyszerű int típusok között?
Mi a különbség az SSL és a TLS között?
Mi az a map Go-ban? Hogyan működik a háttérben? Mi történik ütközés esetén?
Mi az a Rate Limiting? Milyen algoritmusok léteznek?
Mesélj egy érdekes feladatról, amiben büszke vagy, valamilyen tapasztalatról, nehézségekről.
// Van egy módszerünk az adatok lekérésére a termékekről, ezt a módszert nagyon gyakran hívják // vannak problémák ebben a kódban, és hogyan javíthatjuk ki? postgress adatbázis 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 }
Mi az a pesszimista zárolás?
// A rendelés frissítésekor több szolgáltatásnak (harmadik fél API-k) kell küldeni a rendelési adatokat // a szolgáltatások száma növekszik (lehet több ezer+) // megírtuk a kódot, kezdetben minden jól ment, de idővel a szolgáltatásunk sok memóriát kezdett el fogyasztani func (s *orderService) SendOrder(ctx context.Context, hosts []string, order Order) { for i := 0; i < len(hosts); i++ { go func() { // Tegyük fel, hogy ez egy hosszú hálózati hívás response, err := s.httpClient.Send(ctx, hosts[i], order) if err != nil { s.logger.Error(ctx, "hiba a küldésben", err) return } s.logger.Info(ctx, "siker", response) }() } }
Mi azok a csatornák a Go-ban? Milyen típusok léteznek? Hogyan működnek a háttérben?
Mi az a context a Go-ban? Miben különbözik a context.WithTimeout a context.WithDeadline-től?