Is het mogelijk om expliciet een variabele te alloceren op de stack of heap? Hoe te begrijpen waar de variabele is gealloceerd?
Golang
Hoe is het Outbox-patroon geïmplementeerd? Welke tool stuurde vanuit de outbox-tabel naar Kafka?
Wat is het verschil tussen VACUUM en VACUUM FULL?
Waarom Kafka en niet andere systemen?
Hoe evalueer je vooraf de effectiviteit en nuttigheid van een index voordat je deze in productie neemt?
Welke transportlaag gebruikt gRPC? Wat is het verschil tussen HTTP/2 en HTTP/1.1?
Welke informatie toont EXPLAIN ANALYZE?
Wat gebeurt er in PostgreSQL wanneer een DELETE FROM table zonder voorwaarden wordt uitgevoerd?
Wat gebeurt er als je een al gesloten kanaal sluit? Wat gebeurt er als je schrijft in een nil-kanaal?
Wat is het verschil tussen SSL en TLS?
Wat is het verschil tussen de datatypes int32, int64 en gewoon int?
Wat is een map in Go? Hoe werkt het onder de motorkap? Wat gebeurt er bij een botsing?
Wat is Rate Limiting? Welke algoritmen bestaan er?
Vertel over een interessante taak waar je trots op bent, een ervaring of moeilijkheden.
Wat is het principe van Duurzaamheid in ACID? Hoe wordt het bereikt in PostgreSQL?
Wat is pessimistische blokkering?
// Bij het bijwerken van een bestelling moeten we de bestelgegevens naar meerdere services sturen (derde partij API's) // het aantal services groeit (kan duizenden+ zijn) // we hebben de code geschreven, in het begin ging alles goed, maar na verloop van tijd begon onze service veel geheugen te gebruiken func (s *orderService) SendOrder(ctx context.Context, hosts []string, order Order) { for i := 0; i < len(hosts); i++ { go func() { // Stel je voor dat dit een lange netwerkoproep is response, err := s.httpClient.Send(ctx, hosts[i], order) if err != nil { s.logger.Error(ctx, "fout bij verzenden", err) return } s.logger.Info(ctx, "succes", response) }() } }
// We hebben een methode om informatie over producten te krijgen, deze methode wordt heel vaak aangeroepen // Zijn er problemen in deze code en hoe kunnen we ze oplossen? postgress database 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 }
Wat zijn kanalen in Go? Welke zijn er? Hoe zijn ze van binnen opgebouwd?
Hoe is het cachen van gegevens geïmplementeerd? Welke cache-beleid werd gebruikt?