Sobes.tech

Golang

func (r *OrderRepository) GetActiveOrderIDs(ctx context.Context, offset, limit int) ([]uint32, error) { var ( res []uint32 args []interface{} ) query := `SELECT id FROM "order" WHERE is_terminated = false LIMIT $1 OFFSET $2;` args = append(args, limit, offset) rows, err := r.slave.Query(ctx, query, args...) if err != nil { return nil, err } for rows.Next() { var orderID uint32 if err = rows.Scan(&orderID); err != nil { return nil, err } res = append(res, orderID) } return res, nil }

Middle+
Lenta Tech
82

Crea una procedura e falla un SELECT.

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

Parlaci dell'ottimizzazione delle query al database: come avete individuato le query problematiche e cosa avete fatto?

Senior
А7
82

Progettazione di un sistema di messaggistica scalabile che supporti 150 milioni di utenti, 75 milioni di DAU, 225 milioni di MAU, 1,2 milioni di letture / 300k scritture QPS, 5 milioni di utenti simultanei, 60 PB di nuovi dati all'anno, crescita del 30% annuo, P99 <200 ms per la lettura, <300 ms per la scrittura, SLA 99,95%. CONTESTO È necessario progettare un sistema di messaggistica distribuito, simile a WhatsApp, che supporti chat 1:1 e di gruppo, garantisca la consegna dei messaggi, visualizzi gli stati online degli utenti e trasmetta file multimediali (foto, video, audio). Il sistema deve garantire alta disponibilità e bassa latenza, supportare alto parallelismo e scalare a livello globale. REQUISITI FUNZIONALI - Supporto per chat personali (1:1) e di gruppo con possibilità di aggiungere/rimuovere partecipanti - Invio e ricezione di messaggi di testo e file multimediali Requisiti non funzionali: - Nessuna implementazione esplicita di crittografia end-to-end a livello di servizi o client, tranne un'annotazione generale. - Mancanza di una descrizione chiara dello sharding e della replica dei database per chat_id o user_id per scalabilità e tolleranza ai guasti. - Nessun componente o meccanismo esplicito per gestire la sincronizzazione offline dei messaggi e le ricevute di consegna. - Non è chiaro come venga effettuato il bilanciamento del carico tra database e servizi, specialmente durante i picchi di traffico. **Punti critici da considerare:** (Il diagramma mostra un'architettura con Load Balancer, API Gateway, Message Queue, Service, Cache, Database, Object Storage e CDN)

Senior
Яндекс
82

Il worker lavora a lungo (2 minuti), la transazione rimane nel database in caso di crash — cosa fare?

Senior
Не указано
82

Qual è la differenza tra un'immagine e un contenitore?

Middle+
МТСМТС
82

Parlami della tua formazione e del percorso nello sviluppo. Non hai seguito una formazione specifica, vero?

Middle+
OZONOZON
82

Descrivi l'algoritmo per contare le sottostringhe con tutti i caratteri unici

Senior
Яндекс
82

Quando sei pronto a tornare al lavoro? Hai bisogno di tempo per riposarti dopo le dimissioni?

Senior
Nau
82

SELECT * c.id, -- seleziona tutte le chat (c.id, c.name) per tutti gli utenti per nome ($1) where text > 'abc'

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

Quale tipo usare per implementare un set in Go?

Middle+
ТБанк
82

Quale protocollo di trasporto utilizza gRPC? Qual è la differenza tra HTTP/2 e HTTP/1.1?

Senior
Lenta Tech
82

Parlami della tua esperienza, cosa hai fatto, su quale progetto hai lavorato e quale ruolo hai ricoperto?

Senior
WildberriesWildberries
82

Qual è la differenza tra map e sync.Map?

Senior
FinFrame
82

Quale errore si verifica tentando modificare un carattere di una stringa: un panico, un errore gestito o qualcos'altro?

Senior
МВидео/эльдорадо
82

Come viene implementato l'isolamento dei container a livello del kernel Linux? Raccontaci di più sui namespace

Senior
СБЕРСБЕР
82

Quando si verifica la riallocazione dell'array di supporto durante l'append?

Senior
Магнум
82

Qual è il tuo formato di lavoro? Lavori completamente in remoto? Dove ti trovi attualmente?

Senior
X5
82

Cosa è inaccettabile per te nel lavoro?

Senior
aic
82

Parlami dei tipi di dati in Go.

Middle
RWB
82
/412