Es gibt 3 Entitäten: Benutzer, Chat, Nachricht • Der Benutzer hat einen Namen und ein Registrierungsdatum • Der Chat hat einen Namen und ein Erstellungsdatum • Die Nachricht hat Text, Autor und Erstellungsdatum • Ein Benutzer kann gleichzeitig in mehreren Chats sein • Eine Nachricht gehört unbedingt zu einem Chat und kann nicht gleichzeitig mehreren Chats zugeordnet sein • Der Anwendungsbereich soll in Form von Tabellen beschrieben werden
Golang
Wie ist ein Slice in Go von innen aufgebaut? Wie funktioniert die Funktion append?
Was ist ein Race Condition in Go? Geben Sie ein Beispiel.
Was sind EXPLAIN und EXPLAIN ANALYZE in PostgreSQL, was ist der Unterschied?
Erzähle von einer interessanten oder komplexen technischen Aufgabe, die du gelöst hast
Wie viele Jahre Berufserfahrung in der Entwicklung mit Go?
Wir haben eine Datenbank mit Benutzerpasswörtern, die Passwörter sind gehasht (Funktion hashPassword), und es ist auch bekannt, welche Zeichen in den Passwörtern verwendet werden können (Variable alphabet). Unsere Aufgabe ist es, die Funktion RecoverPassword zu implementieren, damit sie das Passwort anhand des bekannten Hashes wiederherstellt und TestRecoverPassword erfolgreich ist. Grundlegende Anforderungen: Jede Methode ist erlaubt 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() {
Mit welchen Datenbanken haben Sie am engsten gearbeitet?
Welche HTTP-Methoden gibt es? Welche davon sind idempotent?
Hauptpaket importiere ( "crypto/md5" "fmt" ) var alphabet = []rune{'a', 'b', 'c', 'd', '1', '2', '3'} func PasswortWiederherstellen(h []byte) string { return "" } func hashPasswort(eingabe string) []byte { h := md5.Sum([]byte(eingabe)) return h[:] } func main() { tests := []string{"a", "12", "abc333d"} ok := true for _, exp := range tests { h := hashPasswort(exp) act := PasswortWiederherstellen(h) if act != exp { fmt.Printf("Fehler: Erwartet %q, erhalten %q\n", exp, act) ok = false } } if ok { fmt.Println("Alle Tests erfolgreich bestanden") } }
Wie verläuft der Prozess des Sendens und Empfangens von Nachrichten zwischen zwei Clients? Beschreiben Sie den vollständigen Ablauf.
Code-Review: Cache in Go mit Mutex. Finden Sie Probleme und schlagen Sie Verbesserungen vor. Bedingung: Lese-/Schreibbelastung 80/20.
package main import ( "crypto/md5" "fmt" ) var alphabet = []rune{'a', 'b', 'c', 'd', '1', '2', '3'} func WiederherstellenPasswort(h []byte) string { return "" } func hashPasswort(in string) []byte { h := md5.Sum([]byte(in)) return h[:] } func main() { tests := []string{"a", "12", "abc333d"} ok := true for _, exp := range tests { h := hashPasswort(exp) act := WiederherstellenPasswort(h) if act != exp { fmt.Printf("Fehler: erwartet %q, erhalten %q\n", exp, act) ok = false } } if ok { fmt.Println("Alle Tests erfolgreich bestanden") } } Für die korrekte Ausführung des Codes: Einstiegspunkt -- Funktion main im Paket main Aufgabe: Implementieren Sie die Funktion WiederherstellenPasswort, die das ursprüngliche Passwort anhand des MD5-Hashes wiederherstellt, bestehend aus Zeichen des gegebenen Alphabets.
Wie implementiert man einen sanften Shutdown eines Go-Dienstes in Kubernetes beim Deployment einer neuen Version?
Beschreiben Sie die Struktur einer HTTP-Anfrage und -Antwort. Wie werden die Antwortcodes klassifiziert?
Warum ziehst du neue Angebote in Betracht? Aktive oder passive Suche?
Was möchtest du jetzt — was sind deine Erwartungen an die neue Arbeit?
Welche Tabellen und Felder werden in der PostgreSQL-Datenbank für diesen Messenger benötigt?
Was war das Schwierigste und Interessanteste beim Umstieg von einem Monolithen auf Microservices?
Was bedeutet es, wenn der Top-Prozess 150% CPU anzeigt? Ist das normal?