Sobes.tech

Golang

Welche Indizes kennst du in PostgreSQL?

Senior
Магнит Тех
55

Welche Produktmetriken sammeln Sie?

Middle+
КуперКупер
55

Wie ist die Zeile unter der Haube in Go organisiert?

Senior
I-teco
55

Was passiert, wenn defer außerhalb der Goroutine steht, anstatt innerhalb?

Senior
X5 techX5 tech
55

Laut Lebenslauf arbeiten Sie derzeit bei [Organisation], stimmt das?

Middle
РедСофт
55

Was sind die Vor- und Nachteile der beiden Szenarien: Aufgaben vor dem Start des Pools hinzufügen und nach dem Start des Pools?

Senior
Cloud.ru
55

/* Es gibt eine Anwendung mit einer Microservice-Architektur. Ein Microservice kann durch eine Backend-Schnittstelle abstrahiert werden. Um auf eine Instanz des Microservice zuzugreifen, kann der Typ BackendImpl verwendet werden, der bereits implementiert ist. Jeder Microservice hat mehrere Dutzend laufende Instanzen, die jeweils unter ihrer eigenen Adresse addr erreichbar sind. Allerdings sind einzelne Instanzen des Microservice nicht zuverlässig: sie können abstürzen, nicht erreichbar sein oder überlastet sein. Daher müssen Sie den Typ Balancer implementieren, der ebenfalls die Backend-Schnittstelle implementiert und das Client-seitige Load-Balancing zwischen den Instanzen des Microservice durchführt, wobei jedes Mal die **am wenigsten belastete** Instanz ausgewählt wird. */ type Request interface{} type Response interface{} type Backend interface { 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 } var _ Backend = &Balancer{} // addrs enthalten die Adressen aller balancierten Instanzen func NewBalancer(addrs []string) *Balancer { // TODO }

Middle
Яндекс
55

Sie sind [Alter] Jahre alt, haben Sie den Wehrpass?

Senior
АЙ-ТЕКОАЙ-ТЕКО
55

Was ist ein Multi-Stage-Build und wozu ist es nützlich?

Middle+
МВидео/эльдорадо
55

Kennst du das Lese-/Schreib-Lastprofil in RPS?

Middle+
Яндекс вертикали
55

Was wird im Inhalt der Map (Zeile 19 im Code) liegen?

Middle+
WB банк
55

Allgemeine Frage: Bereitschaft für das Vorstellungsgespräch und Quellen der Fragen

Senior
AstonAston
55

Wie organisiert man die Kommunikation zwischen zwei Goroutines?

Middle+
МВидеоМВидео
55

Wie würdest du dich als Golang-Entwickler einschätzen? Bist du jetzt Middle, Middle+, Senior?

Senior
OZONOZON
55

Wie genau wird Quaternion für die Komposition von Drehungen verwendet?

Middle
Graveling
55

Wie optimiert man eine Transaktion mit Zeilensperrung bei hoher Belastung (Flaschenhalsproblem bei der Registrierung mit Einladungscode)?

Senior
Не указано
55

Erzähl mir von Legion, was du dort gemacht hast, was für ein Team war das?

Middle+
МВидеоМВидео
55

Welche Werkzeuge zur Visualisierung von Architekturdiagrammen hast du verwendet und für welche Fälle?

Senior
Магнит Тех
55

Wie werden HTTP-Statuscodes nach Gruppen eingeteilt und was bedeuten sie?

Senior
техвил
54

Entwurf eines skalierbaren Messaging-Systems, das 150 Millionen Nutzer, 75 Millionen DAU, 225 Millionen MAU, 1,2 Mio. Lese- / 300k Schreib-Peak-QPS, 5 Millionen gleichzeitige Nutzer, 60 PB neue Daten pro Jahr, 30% jährliches Wachstum, SLA 99,95%, p99 <200 ms für Lesen, <300 ms für Schreiben unterstützt. KONTEXT Es ist erforderlich, ein verteiltes Messaging-System zu entwerfen, ähnlich wie WhatsApp, das 1:1- und Gruppen-Chats unterstützt, die Zustellung von Nachrichten gewährleistet, Online-Status der Nutzer anzeigt und die Übertragung von Multimedia-Dateien (Fotos, Videos, Audio) ermöglicht. Das System muss hohe Verfügbarkeit und niedrige Latenz bieten, hohen Parallelismus unterstützen und global skalieren. FUNKTIONALE ANFORDERUNGEN - Unterstützung für persönliche (1:1) und Gruppen-Chats mit der Möglichkeit, Teilnehmer hinzuzufügen/zu entfernen - Versand und Empfang von Textnachrichten und Multimedia-Dateien Es ist keine klare Implementierung eines End-to-End-Verschlüsselungsmechanismus auf Service- oder Client-Ebene sichtbar, abgesehen von einer allgemeinen Anmerkung. - Es fehlt eine explizite Beschreibung von Sharding und Replikation der Datenbanken nach chat_id oder user_id für Skalierbarkeit und Fehlertoleranz. - Es gibt keinen klaren Komponenten- oder Mechanismus für die Offline-Synchronisierung von Nachrichten und Delivery-Receipts. - Es ist unklar, wie die Lastverteilung zwischen Datenbanken und Diensten, insbesondere bei Spitzenbelastungen, erfolgt. **Kritische Punkte, die beachtet werden sollten:**

Senior
Яндекс
54
/411