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 деген эмне? Бул түшүнүк эмне экенин жана кызматты өндүрүшкө даяр кылуу үчүн эмне керек экенин камтыйт? Метрикалар, трейстер жана логдор эмне үчүн керек?
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) жана топтук чаттарды колдоо, катышуучуларды кошуу/алып салуу мүмкүнчүлүгү менен - Тексттик билдирүүлөрдү жана мультимедиалык файлдарды жөнөтүү жана кабыл алуу Нефункционалдуу талаптар: - Кызматтар же кардарлар деңгээлинде end-to-end шифрлөө так ишке ашырылбайт, жалпы белгилөө менен гана. - chat_id же user_id боюнча базалардын sharding жана репликациясы так сүрөттөлбөйт, масштабдуулук жана каталарга туруктуулук үчүн. - Offline билдирүүлөрдүн синхрондоштуруу жана жеткирүү маалымдамалары үчүн так компонент же механизм жок. - Жүктүн балансировкасы базалар жана кызматтар арасында, өзгөчө чокулук жүктөөлөрдө, кандай ишке ашырылары так эмес. **Маанилүү эскертүүлөр:** (Диаграмма Load Balancer, API Gateway, Message Queue, Service, Cache, Database, Object Storage жана CDN менен архитектураны көрсөтөт)
Goда context деген эмне? context.WithTimeout менен context.WithDeadline ортосунда эмнеге айырма бар?
Helm-чарттарды жана манифесттерди нөлдөн жаздыңызбы?
PostgreSQL аркылуу иштегендерди кантип синхрондоштуруу керек (бөлүштүрүлгөн токтоо маалымат базасында)?
7-чи сапта ички массив толуп калат жана жаңысы түзүлөт деп чечим чыгарылат. Неге ошондой чечим кабыл алдың?
Outbox үлгүсү эмне жана ал кандай ишке ашырылат?
Браузер беттерди кандайча рендер кылат? Compositing деген эмне?
Өзгөрүүнүн мотивациясы эмне? Неге рынокко чыгууга чечим кылдыңыз?
Goда `set`ти ишке ашыруу үчүн кайсы түрдү колдонуу керек?
HTTP/1, HTTP/2 жана HTTP/3 кандай айырмаланат?
Fan-In үлгүсү жөнүндө айтып бер, ал эмне үчүн керек?
GeoDNS жана Nginx жүктү теңдештирүүчү башка нерселерби?
PostgreSQLдин кайсы мүмкүнчүлүктөрүн кеңири колдондуңуз?