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

Vytvořte proceduru a udělejte z ní SELECT.

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

Povězte nám o optimalizaci dotazů do databáze: jak jste našli problémové dotazy a co jste dělali?

Senior
А7
82

Návrh škálovatelného systému pro zasílání zpráv, který podporuje 150 milionů uživatelů, 75 milionů DAU, 225 milionů MAU, 1,2 milionu čtení / 300 tisíc zápisů QPS, 5 milionů současných uživatelů, 60 PB nových dat ročně, růst o 30 % ročně, P99 <200 ms pro čtení, <300 ms pro zápis, SLA 99,95 %. KONTEKST Je třeba navrhnout distribuovaný systém zasílání zpráv, podobný WhatsAppu, který podporuje 1:1 a skupinové chaty, zajišťuje doručení zpráv, zobrazuje online status uživatelů a přenáší multimediální soubory (fotky, videa, audia). Systém musí zajistit vysokou dostupnost a nízkou latenci, podporovat vysoký paralelismus a škálovat na globální úrovni. FUNKČNÍ POŽADAVKY - Podpora osobních (1:1) a skupinových chatů s možností přidávat/odstraňovat účastníky - Odesílání a přijímání textových zpráv a multimediálních souborů Nefunkční požadavky: - Neexistuje explicitní implementace end-to-end šifrování na úrovni služeb nebo klientů, kromě obecné poznámky. - Není jasně popsáno sharding a replikace databází podle chat_id nebo user_id pro škálovatelnost a odolnost vůči chybám. - Neexistuje žádná explicitní komponenta nebo mechanismus pro offline synchronizaci zpráv a potvrzení doručení. - Není jasné, jak je realizováno vyvažování zátěže mezi databázemi a službami, zejména při špičkových zatíženích. **Důležité body k zvážení:** (Diagram ukazuje architekturu s Load Balancerem, API Gateway, Message Queue, Service, Cache, Database, Object Storage a CDN)

Senior
Яндекс
82

Worker pracuje dlouho (2 minuty), transakce zůstává v databázi při pádu — co dělat?

Senior
Не указано
82

Čím se liší obraz od kontejneru?

Middle+
МТСМТС
82

Pověz mi o svém vzdělání a cestě v vývoji. Neobdržel jsi odborné vzdělání, že?

Middle+
OZONOZON
82

Popište algoritmus pro spočítání podřetězců se všemi unikátními znaky

Senior
Яндекс
82

Kdy jste připraveni začít pracovat? Potřebujete po výpovědi čas na odpočinek?

Senior
Nau
82

SELECT * c.id, -- vyberte všechny chaty (c.id, c.name) pro všechny uživatele podle jména ($1) where text > 'abc'

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

Jaký typ použít pro implementaci množiny v Go?

Middle+
ТБанк
82

Jaký transportní protokol používá gRPC? V čem je rozdíl mezi HTTP/2 a HTTP/1.1?

Senior
Lenta Tech
82

Pověz mi o své zkušenosti, čím ses zabýval, na jakém projektu jsi pracoval a jakou roli jsi hrál?

Senior
WildberriesWildberries
82

Jaký je rozdíl mezi map a sync.Map?

Senior
FinFrame
82

Jaká chyba nastane při pokusu změnit znak řetězce: panika, ošetřená chyba nebo něco jiného?

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

Jak je realizována izolace kontejnerů na úrovni jádra Linux? Povězte nám více o namespaces

Senior
СБЕРСБЕР
82

Kdy dochází k realokaci backing array při append operaci?

Senior
Магнум
82

Jaký je váš pracovní formát? Pracujete úplně na dálku? Kde se momentálně nacházíte?

Senior
X5
82

Co je pro vás nepřijatelné v práci?

Senior
aic
82

Pověz mi o datových typech v Go.

Middle
RWB
82
/412