Sobes.tech

Golang

Wie haben Sie Kafka und RabbitMQ als Broker verwendet? Warum zwei?

212

Warum brauchst du überhaupt einen Vorgesetzten bei der Arbeit? Wozu?

208

Wie funktioniert eine Hashtabelle? Wie ist die Komplexität beim Einfügen und Lesen? Merkmale der Implementierung in Go.

207

Hast du eine Vorstellung davon, in welchem Team du gerne arbeiten würdest? Wie sollte dieses Team sein?

206

Wenn du die Wahl zwischen zwei Unternehmen oder zwei Teams hättest, worauf würdest du achten und wie würdest du wählen?

206

Haben Sie schon einmal etwas lange gemacht, das letztendlich nicht umgesetzt oder in den Stapel verschoben wurde?

201

Wie erfährt der Kunde von den Nachrichten, die er erhalten hat, während er offline war?

197

Es ist notwendig, die Backend-Architektur für einen Messenger (Slack, Teams, Mattermost) zu entwerfen. Anforderungen und Einschränkungen: Nur 1x1-Chats, keine Gruppenchats Nur Textnachrichten, keine Anhänge Der Dienst ist über das Internet zugänglich Bis zu 10.000 Nutzer im System Nachrichten müssen schnell zugestellt werden, innerhalb weniger Sekunden Die Reihenfolge der Nachrichten muss beibehalten werden, keine Duplikate Es muss möglich sein, den Chat in die Vergangenheit zu scrollen, d.h. Nachrichten müssen gespeichert werden Die Clients sind mobile Geräte, deren Design ist nicht erforderlich Die Gestaltung der Authentifizierung ist nicht erforderlich

196

Für die korrekte Ausführung des Codes: der Einstiegspunkt -- die Funktion main im Paket main 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() { tests := []string{"a", "12", "abc333d"} ok := true for _, exp := range tests { h := hashPassword(exp) act := RecoverPassword(h) if act != exp { fmt.Printf("Fehler: erwartet %q, erhalten %q\n", exp, act) ok = false } } if ok { fmt.Println("Alle Tests erfolgreich bestanden") } }

194

Was möchtest du jetzt lieber: Produktentwicklung oder Plattformentwicklung?

191

Was ist der Unterschied zwischen Prozessen, Threads und Goroutines in Go?

191

SELECT * c.id, -- alle Chats auswählen (c.id, c.name) für alle Benutzer nach Name ($1) where text > 'abc'

190

Was ist HTTPS? Wie unterscheidet es sich von HTTP? Wie schützt es vor 'Man-in-the-Middle'-Angriffen?

190

Bedingung 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, sie kann nicht gleichzeitig mehreren Chats zugeordnet sein • Der Bereich soll in Form von Tabellen beschrieben werden -- verteilt -- message_count in chats Limit 100 --getShard(time zone) -> shard_id -> 1 --getShard(time zone) -> shard_id -> 2 --shard1 [1..100] --shard2 [101..200] CREATE TABLE users ( id int PRIMARY KEY, name varchar(255) NOT NULL, reg_at TIMESTAMP NOT NULL DEFAULT NOW() ); CREATE TABLE chats ( id int PRIMARY KEY, name VARCHAR(255) NOT NULL, created_at TIMESTAMP NOT NULL DEFAULT NOW(), message_count int NOT NULL CHECK <= 100 ); CREATE TABLE user_chats ( user_id int not null REFERENCES users(id), chat_id int NOT NULL REFERENCES chats(id), PRIMARY KEY (user_id, chat_id) ); CREATE TABLE messages ( id int PRIMARY KEY, chat_id int NOT NULL REFERENCES chats(id), author_id int NOT NULL REFERENCES users(id), created_at TIMESTAMP NOT NULL DEFAULT NOW(), text TEXT NOT NULL );

189

Erzähle allgemein über das Projekt — was war es für den Endbenutzer?

189

Was ist Sharding und wofür wird es verwendet? Wie wählt man den Sharding-Schlüssel für die Tabellen des Taxidienstes (Fahrer, Kunden, Bestellungen)?

189

Schreiben Sie eine SQL-Abfrage, um Autoren anzuzeigen, die mehr als 10 Bücher haben (Tabellen: Autoren, Bücher, Viele-zu-viele-Beziehung)

187

Wie beendet man einen Prozess in Linux? Was tun, wenn kill pid nicht hilft?

185
/4