Golang
Wat is een microservices-architectuur en wat zijn de voor- en nadelen in vergelijking met een monoliet?
Konnten de limieten en regels tijdens runtime worden gewijzigd? Was er een gebruikersinterface voor?
Hoe beheer je de invalidatie van in-memory cache op verschillende pods? Hoe synchroniseer je caches tussen verschillende instanties van de service?
Wat is Kafka en hoe verschilt het van RabbitMQ?
main pakket importeer ( "crypto/md5" "fmt" ) var alfabet = []rune{'a', 'b', 'c', 'd', '1', '2', '3'} func HerstelWachtwoord(h []byte) string { return "" } func hashWachtwoord(in string) []byte { h := md5.Sum([]byte(in)) return h[:] } func main() { tests := []string{"a", "12", "abc333d"} ok := true for _, exp := range tests { h := hashWachtwoord(exp) act := HerstelWachtwoord(h) if act != exp { fmt.Printf("Fout: verwacht %q, gekregen %q\n", exp, act) ok = false } } if ok { fmt.Println("Alle tests succesvol doorstaan") } }
Wat gebeurt er bij het verwijderen van een lezer die een boek in bezit heeft? Hoe bescherm je de gegevensintegriteit?
Wie moet het kanaal sluiten?
/* We moeten gegevens van een bron naar een ontvanger overbrengen. De bron geeft gegevens in kleine batches (~tien records), terwijl de ontvanger efficiënter werkt met grote batches (~duizend records). Een echt voorbeeld is het overzetten van gegevens van Kafka-achtige wachtrijen naar een Clickhouse-database. Bron: - Bijna oneindig. - De bron geeft nooit meer dan MaxItems records terug in één Next-aanroep. - Tijdens één "sessie" (één aanroep van de Pipe-functie) geeft de bron bij elke Next-aanroep nieuwe gegevens. - Na een herstart begint de bron vanaf de vorige "bevestigde" positie, bepaald door cookie. Daarom moet elke cookie-waarde die Next teruggeeft, na het opslaan van gegevens in de ontvanger, worden bevestigd met een Commit-aanroep, in dezelfde volgorde als waarin ze door Next werden teruggegeven. Ontvanger: - Kan niet meer dan MaxItems tegelijk verwerken. Het is nodig om de functie func Pipe(p Producer, c Consumer) error te implementeren, die gegevens uit de bron leest, deze groepeert in een buffer van niet groter dan MaxItems en opslaat in de ontvanger, waarna de voortgang in de bron wordt bevestigd. */ const MaxItems = 9999 type Producer interface { // Next geeft: // - een batch van items om te verwerken // - cookie om te bevestigen wanneer de verwerking is voltooid // - fout Next() (items []any, cookie int, err error) // Commit wordt gebruikt om de gegevensbatch als verwerkt te markeren Commit(cookie int) error } type Consumer interface { Process(items []any) error } func Pipe(p Producer, c Consumer) error { // TODO }
Hoe is het getal van 25% berekend? Waarom niet 20 of 30?
Wat zoek je nu voor jezelf, wat is belangrijk voor jou?
Hoe werkt de map in Go? Vertel over de interne structuur, buckets, botsingen.
Wat is caching en waarom is het nodig?
```go import ( "fmt" "runtime" "time" ) func main() { runtime.GOMAXPROCS(2) var c chan int for i := 0; i < 5; i++ { go sleeping(i, c) } for i := 0; i < 5; i++ { gopherID := <-c fmt.Println("routine ", gopherID, " is klaar met slapen") } } func sleeping(id int, c chan int) { time.Sleep(3 * time.Second) fmt.Println("... ", id, " tijd om te stoppen ...") c <- id } ```
Welke typen/groepen ontwerppatronen zijn er?
Welke gegevensstructuren kent u?
Wordt een kanaal doorgegeven aan een functie, wordt het dan door waarde of door referentie doorgegeven?
Welke technische probleem lost blockchain op? Beantwoord in één zin.
Als je een taak uit een ander domein krijgt en niet weet wat je ermee moet doen — hoe ga je het oplossen?
Wat is de context in Go, hoe wordt het gebruikt, waarvoor is het en welke soorten zijn er?
Bevestiging van commerciële ervaring: ervaring via arbeidsovereenkomst of via GPH?