Golang
// Барои фаҳмидани функсия барои фишурдани сатр бо истифода аз алгоритми run-length encoding зарур аст. // Агар як силсилаи арзишҳои якхела пайдо шавад, он бо дарозии силсила ва арзиш иваз карда мешавад. func Encode(s string) string { panic("наметавон амалӣ кард") }
N- элементли массивни тезкор тартиблаш (in-place) учун ўртача вақт ва қўшимча ёдлаш мураккаблигини кўрсатинг Вақт бўйича O(n log n), стэк ёдлаш бўйича O(log n) Вақт бўйича O(n log n), ёдлаш бўйича O(1) Вақт бўйича O(n^2), стэк ёдлаш бўйича O(log n) Вақт бўйича O(n log n), ёдлаш бўйича O(n)
Дар бораи таҷрибаи кории худ ва чӣ кор мекунед, нақл кунед.
Масъулонам дар бораи кори мустақил — то чӣ андоза вақти максималро дар як вазифа ё мушкилот кор кардаед?
Чӣ тавр observability? Ин консепсия чӣ дарбар мегирад ва барои он ки хидмат ба истеҳсолот омода бошад, чӣ лозим аст? Метрикҳо, trace-ҳо ва logs-ҳо чаро заруранд?
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 }
Оё ҳоло дигар мусоҳибаҳо ё пешниҳодҳо доред?
Тарҳрезии системаи паёмнависии масштабшаванда, ки 150 миллион корбарро дастгирӣ мекунад, 75 миллион DAU, 225 миллион MAU, 1.2 миллион хондан / 300k навишт QPS, 5 миллион корбарони ҳамзамон, 60 PB маълумоти нав дар сол, 30% афзоиш дар сол, P99 <200 мс барои хондан, <300 мс барои навишт, SLA 99.95%. Мавзӯъ Талаб карда мешавад, ки системаи паёмнависии тақсимшуда, монанди WhatsApp, тарҳрезӣ карда шавад, ки ҳам чатҳои 1:1 ва гурӯҳӣ, таъмини расонидани паёмҳо, намоиши статусҳои онлайн ва интиқоли файлҳои мултимедиявӣ (тасвирҳо, видеоҳо, овозҳо)ро дастгирӣ мекунад. Система бояд дастрасии баланд ва таъхири пастро таъмин кунад, параллелизмро дастгирӣ кунад ва дар сатҳи глобалӣ васеъ шавад. Талаботи функсионалӣ - Дастгирии чатҳои шахсӣ (1:1) ва гурӯҳӣ бо имконияти илова кардан/ҳамроҳ кардани иштирокчиён - Иҷро ва қабул кардани паёмҳои матнӣ ва файлҳои мултимедиявӣ Талаботи ғайрифунксионалӣ: - Ҳеҷ гуна татбиқи равшан барои рамзгузории охир ба охир дар сатҳи хизматрасонӣ ё муштариён, ба истиснои қайд умумӣ. - Тавсифи равшан дар бораи sharding ва репликаи базаҳои додаҳо бо chat_id ё user_id барои масштабшавӣ ва тобоварӣ ба хатоҳо вуҷуд надорад. - Ҳеҷ гуна компонент ё механизм барои ҳамоҳангсозии offline паёмҳо ва расонидани расмҳо вуҷуд надорад. - Чӣ гуна баланс кардани бор байни базаҳои додаҳо ва хизматрасониҳо, махсусан дар вақти шиддатнокӣ, равшан нест. **Масъалаҳои муҳим, ки бояд ба назар гирифта шаванд:** (Диаграмма архитектура бо Load Balancer, API Gateway, Message Queue, Service, Cache, Database, Object Storage ва CDN нишон дода шудааст)
Контекст дар Go чист? Фарқи байни context.WithTimeout ва context.WithDeadline чист?
Оё чарти Helm ва манифестҳоро аз сифр навиштед?
Чӣ гуна ҳамоҳангсозии коргарон тавассути PostgreSQL (блоки тақсимшуда дар базаи маълумот)?
Дар хати 7-ум, қарор гирифтааст, ки массиви дохилӣ пур мешавад ва навсозӣ мешавад. Чаро чунин қарор гирифтӣ?
Наслиҳати Outbox чӣ гуна аст ва чӣ гуна иҷро мешавад?
Чӣ гуна браузер саҳифаҳоро рендер мекунад? Compositing чист?
Мотиваиция барои тағирот чист? Чаро қарор додед ба бозор бароед?
Барои иҷрои маҷмӯъ дар Go кадом навъи истифода бурдан лозим аст?
Тафовутҳои байни HTTP/1, HTTP/2 ва HTTP/3 чист?
Дар бораи намунаи Fan-In гап зан, барои чӣ лозим аст?
Омӯзиши GeoDNS ва Nginx фарқ доранд?
Кадом имкониятҳои PostgreSQL-ро васеъ истифода бурдед?