Sobes.tech

Golang

Mit welchen Datenbanken arbeitest du? Was war das maximale Volumen an gespeicherten Daten?

157

Kannst du kurz deine Erfahrung schildern? Welche Programmiersprache verwendest du hauptsächlich? Wie viele Jahre Erfahrung hast du in der industriellen Entwicklung?

157

Warum haben Sie sich entschieden, LLM zu verwenden, anstatt nur Logik im Code?

157

Worin liegt der Vorteil von JWT gegenüber der Speicherung von Sitzungen auf dem Server?

156

/* Es gibt eine Anwendung mit einer Microservice-Architektur. Ein Microservice kann durch eine Schnittstelle Backend abstrahiert werden. Um auf eine Instanz des Microservice zuzugreifen, kann man den Typ BackendImpl verwenden, der bereits implementiert ist. Jede Microservice-Instanz läuft in mehreren Dutzend Exemplaren, die jeweils unter ihrer eigenen Adresse addr zugänglich sind. Allerdings sind einzelne Instanzen des Microservice nicht zuverlässig: sie können ausfallen, nicht erreichbar sein oder überlastet sein. Daher müssen Sie einen Typ Balancer implementieren, der ebenfalls die Schnittstelle Backend implementiert und die Client-seitige Lastverteilung zwischen den Instanzen des Microservice durchführt, indem er jedes Mal die **am wenigsten belastete** Instanz auswählt.

155

Welche Programmiersprache verwendest du hauptsächlich? Nutzt du C++ oder Python?

153

func Pipe(p Produzent, c Verbraucher) error { // TODO buf := make([]any, 0, MaxItems) cookies := make([]int, 0) flush := func() error { if len(buf) == 0 { return nil } if err := c.Process(buf); err != nil { return err } for _, cookie := range cookies { if err := p.Commit(cookie); err != nil { return err } } buf = buf[:0] cookies = cookies[:0] return nil } for { items, cookie, err := p.Next() if err != nil { flush() return err }

153

Wie viel Speicher ist ursprünglich für den Puffer reserviert?

153

Der Load Balancer muss verstehen, dass das Backend Fehler antwortet, und bei Überschreitung einer Schwelle für eine bestimmte Zeit, es aus dem Load Balancing ausschließen (Circuit Breaker)

150

Warum wurde der Aufruf von backend.Invoke außerhalb des Mutex ausgeführt?

150

Was passiert, wenn Consumer.Process einen Fehler zurückgibt — gehen die Daten aus dem Puffer nicht verloren?

150

Gegeben ist eine Zeichenkette S, es ist die Anzahl der Substrings in dieser Zeichenkette zu zählen, die alle Zeichen dieser Zeichenkette mindestens einmal enthalten. Beispiele: "abca" -> 3 // abc, bca, abca "aa" -> 3 // aa, a, a, "ffg" -> 2 // ffg, fg

149

Welche Programmiersprachen, außer Go, verwenden Sie für sich selbst oder in der kommerziellen Entwicklung?

147

Wie viele Anfragen pro Sekunde hast du momentan bei hoher Belastung?

147

In welcher Programmiersprache arbeiten Sie? Warum gab es Schwierigkeiten mit der Syntax?

143

Dies ist eine Zeichenkette. Finden Sie die Anzahl der Indexpaare i und j (i <= j), zwischen denen einschließlich keine wiederholten Zeichen vorhanden sind. Für die Zeichenkette "aba" ist die Antwort 5: [0, 0] ("a") [0, 1] ("ab") [1, 1] ("b") [1, 2] ("ba") [2, 2] ("a") Für die Zeichenkette "acbb" ist die Antwort ?:

143

Sind Sie bereit, bei Bedarf oder aus persönlichem Wunsch auf eine andere Programmiersprache umzusteigen?

142

// TODO backends []*BackendImpl index int mu sync.Mutex func (b *Balancer) Invoke(ctx context.Context, req Request) (Response, error) { b.mu.Lock() index := b.index if b.index + 1 == len(b.backends) { b.index = 0 index = 0 } b.mu.Unlock() resp, err := b.backends[index].Invoke(ctx, req) b.mu.Lock() defer b.mu.Unlock() b.index += 1 return resp, err } // addr enthält ip:port einer spezifischen Instanz func NewBackend(addr string) *BackendImpl // addrs enthalten die Adressen aller ausbalancierten Instanzen func NewBalancer(addrs []string) *Balancer { // TODO backends := make([]*BackendImpl, len(addrs)) for _, addr := range addrs { backends = append(backends, NewBackend(addr)) } return &Balancer{ backends: backends, } }

142

Welche Kriterien werden Sie bei der Auswahl eines Arbeitgebers verwenden? Was ist für Sie am wichtigsten?

141
/11