Golang
Hast du Erfahrung mit gRPC und GraphQL? Erzähle mir davon.
Typ Response Schnittstelle {} typ Backend Schnittstelle { Invoke(ctx context.Context, req Request) (Response, error) } var _ Backend = &BackendImpl{} // addr enthält ip:port einer bestimmten Instanz func NewBackend(addr string) *BackendImpl type Balancer struct { // TODO backends []*BackendImpl index int mu sync.Mutex } var _ Backend = &Balancer{} func (b *Balancer) Invoke(ctx context.Context, req Request) (Response, error) { wenn len(b.backends) == 0 { return nil, fmt.Errorf("Anzahl der backends im Slice ist 0") } b.mu.Lock() index := b.index wenn b.index + 1 == len(b.backends) { b.index = 0 index = 0 } b.mu.Unlock() resp, err := b.backends[index].Invoke(ctx, req) return resp, err } // addrs enthält die Adressen aller ausbalancierten Instanzen func NewBalancer(addrs []string) *Balancer { // TODO backends := make([]*BackendImpl, len(addrs))
Wie teilt man Speicher zwischen Goroutinen? In welchen Fällen ist es besser, Atomic zu verwenden, und in welchen Mutex/RWMutex/SyncMap?
Welche Aufgaben magst du am liebsten und welche weniger?
Kannst du die Top 3 Dinge nennen, auf die man bei Code-Reviews achten sollte?
Wie ist eine Map in Go aufgebaut?
Wie überprüft man die CPU- und Speicherauslastung in Linux?
Bezüglich der Spezifik der Startup: Die Aufgaben sind nicht immer klar definiert, manchmal verschwommen, Eigeninitiative und Autonomie sind gefragt, die Arbeitsbelastung kann ungleichmäßig sein. Wie fühlen Sie sich dabei?
Nennen Sie vier Protokolle: HTTP, gRPC, WebDAV, ACSA — welches ist überflüssig?
Skalierungsaufgabe: Dienst B erfährt eine zunehmende Belastung durch Dienst A. Was kann man tun?
Was ist Daten-Ausrichtung in Go?
Was sind Ihre Erwartungen an einen neuen Arbeitsplatz?
Schreiben Sie eine Aufgabe in der Programmiersprache Go — praktischer Abschnitt (Probleme aus dem Entwicklerleben, ohne Algorithmen): Dienst verbessern oder korrigieren. Dauer — 1,5 Stunden.
Was ist TLS und wozu braucht man ein Zertifikat?
Warum brauchen wir in dieser Aufgabe eine WaitGroup?
Wie haben Sie die Nachrichten aus Kafka validiert? Was passierte mit einer Nachricht, wenn sie nicht validiert wurde?
Was ist der Unterschied zwischen einem L4- und einem L7-Load-Balancer?
Welche Bibliotheken und Frameworks wurden im Go-Service verwendet?
Was ist der Unterschied zwischen Kafka und RabbitMQ?
Haben Sie etwas mit CTE (Common Table Expression, WITH) geschrieben?