Sobes.tech

Golang

Wann werden die Argumente verzögerter Funktionen berechnet – beim Definieren oder beim Aufrufen der Funktion?

Senior
КасперскийКасперский
78

Erzähle mir von Goroutinen. Angenommen, wir haben eine Anwendung, in der Goroutinen laufen, und etwas ist schief gelaufen — wie beendet man eine Goroutine zwangsweise?

Middle+
Napoleon IT
78

Können wir Code ohne Schnittstellen schreiben?

Middle+
Napoleon IT
78

Warum werden Trigger hauptsächlich für Legacy-Systeme verwendet?

Middle+
Озон банк
78

In welcher Reihenfolge werden die Admission Webhooks ausgeführt und warum gerade so?

Senior
Flant
78

Was passiert, wenn der Leser den Kanal schließt, während der Schriftsteller noch schreibt? Wie kann man Panik vermeiden?

Middle+
Астрал-Софт
78

Was ist DNS und wie funktioniert es?

Senior
YadroYadro
78

Haben Sie schon einmal Kontakt mit den Produkten des Unternehmens gehabt? Arbeitet jemand aus Ihrem Bekanntenkreis dort?

Senior
Flant
78

Kann man in Go in einen geschlossenen Kanal schreiben?

Senior
purrweb
78

Wie kann man verhindern, dass man beim Lesen aus einem leeren Kanal dauerhaft blockiert? Was ist select und welche Muster gibt es?

Senior
YadroYadro
78

Warum hast du beschlossen, auf den Markt zu achten? Was suchst du momentan für dich? Worauf achtest du bei der Auswahl eines neuen Unternehmens?

Senior
Магнит Тех
78

Gibt es Mechanismen, die helfen, Kollisionen in der Programmierung zu vermeiden?

Middle+
OZONOZON
78

Was ist eine Zeichenkette in Go?

Senior
Small
78

Live-Coding: Semaphore — wie es funktioniert und die Implementierung auf Basis eines gepufferten Kanals.

Middle+
Веро Трейс
78

type Balancer struct { // TODO backends []*BackendImpl index int mu sync.Mutex N int K time.Duration } var _ Backend = &Balancer{} func (b *Balancer) Invoke(ctx context.Context, req Request) (Response, error) { if len(b.backends) == 0 { return nil, fmt.Errorf("Anzahl der backends im slice 0") } b.mu.Lock() index := b.index for b.backends[index].banned { b.index = (b.index + 1) % len(b.backends) index = b.index } b.index = (b.index + 1) % len(b.backends) b.mu.Unlock() backend := b.backends[index] resp, err := backend.Backend.Invoke(ctx, req) if err != nil && backend.countErrors < b.N { backend.mu.Lock() backend.countErrors += 1 if backend.countErrors == b.N { backend.banned = true go func() { time.Sleep(b.K) backend.mu.Lock() defer backend.mu.Unlock() backend.banned = false backend.countErrors = 0 }() } backend.mu.Unlock() } return resp, err } // addrs enthalten die Adressen aller balancierten Instanzen func NewBalancer(addrs []string) *Balancer { // TODO backends := make([]*BackendImplF, len(addrs)) for _, addr := range addrs { implF := BackendImplF{ Backend: NewBackend(addr), } backends = append(backends, &implF) } }

Middle
Яндекс
78

Warum brauchen wir in dieser Aufgabe eine WaitGroup?

Senior
Cloud.ru
78

Wie viele Zeilen waren in der Datenbank?

Senior
Бюро 1440Бюро 1440
78

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

Senior
Ozon ФинтехOzon Финтех
78

Welche Sperren erstellt PostgreSQL beim Löschen bestimmter Zeilen?

Senior
Итрея
78

Was ist eine Schnittstelle in Go? Wie funktioniert Duck Typing? Kann man die Implementierung einer Schnittstelle während der Kompilierung überprüfen?

Middle
YadroYadro
78
/412