Er zijn 3 entiteiten: gebruiker, chat, bericht • De gebruiker heeft een naam en een registratiedatum • De chat heeft een naam en een aanmaakdatum • Het bericht heeft tekst, auteur en aanmaakdatum • Een gebruiker kan tegelijkertijd in meerdere chats zijn • Een bericht moet verplicht bij een chat horen en kan niet tegelijkertijd bij meer dan één chat horen • Het domein moet worden beschreven in de vorm van tabellen
Golang
Hoe werkt een slice in Go van binnen? Hoe werkt de functie append?
Wat is een raceconditie in Go? Geef een voorbeeld.
Wat zijn EXPLAIN en EXPLAIN ANALYZE in PostgreSQL, wat is het verschil?
Hoeveel jaar commerciële ervaring in ontwikkeling met Go?
Vertel over een interessante/moeilijke technische taak die je hebt opgelost
We hebben een database met gebruikerswachtwoorden, de wachtwoorden zijn gehasht (functie hashPassword), en we kennen ook de set tekens die in wachtwoorden kunnen worden gebruikt (variabele alphabet). Onze taak is om de functie RecoverPassword te implementeren zodat deze het wachtwoord herstelt op basis van de bekende hash en dat TestRecoverPassword succesvol wordt. Basisvereisten: Elke methode is toegestaan package main import ( "crypto/md5" "fmt" ) var alphabet = []rune{'a', 'b', 'c', 'd', '1', '2', '3'} func RecoverPassword(h []byte) string { return "" } func hashPassword(in string) []byte { h := md5.Sum([]byte(in)) return h[:] } func main() {
Met welke databases hebt u het nauwst gewerkt?
Welke HTTP-methoden bestaan er? Welke daarvan zijn idempotent?
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") } }
Hoe zal het proces van het verzenden en ontvangen van berichten tussen twee klanten verlopen? Beschrijf de volledige flow.
Code review: cache in Go met mutex. Vind problemen en stel verbeteringen voor. Voorwaarde: lees/schrijfbelasting 80/20.
package main import ( "crypto/md5" "fmt" ) var alphabet = []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 geslaagd") } } Voor correcte uitvoering van de code: het ingangspunt -- functie main in het pakket main Taak: Implementeer de functie HerstelWachtwoord, die het originele wachtwoord herstelt op basis van de MD5-hash, bestaande uit tekens uit het gegeven alfabet.
Hoe implementeer je een graceful shutdown van een Go-service in Kubernetes bij het uitrollen van een nieuwe versie?
Beschrijf de structuur van een HTTP-verzoek en -antwoord. Hoe worden de antwoordcodes geclassificeerd?
Waarom overweeg je nieuwe aanbiedingen? Actief of passief zoeken?
Wat wil je nu — wat zijn je verwachtingen van het nieuwe werk?
Welke tabellen en velden zijn nodig in de PostgreSQL-database voor deze messenger?
Wat was het moeilijkste en het meest interessante bij de overgang van een monoliet naar microservices?
Wat betekent het als het top-proces 150% CPU aangeeft? Is dit normaal?