Sobes.tech

რა კეშდებოდა? რაიმე დირექტორიები?

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

/* අපට මූලාශ්‍රයකින් දත්ත කිසියම් පරිභෝජකයකුට මාරු කළ යුතුය. මේදී මූලාශ්‍රය කුඩා කට්ටලවලින් (~ දස ගණනක් වාර්තා) දත්ත ලබා දී ඇති අතර, පරිභෝජකයා විශාල බචක සමඟ වැඩ කිරීම වඩාත් ප්‍රයෝජනවත් වේ. සත්‍ය උදාහරණයක් - Kafka වර්ගයේ පෙළගැස්මවලින් දත්ත ලබා දීම Clickhouse දත්තගබඩාවට. මූලාශ්‍රය: - කොන්දේසි ලෙස අසීමිත. - මූලාශ්‍රය එක් කැඳවීමකදී MaxItems වඩා වැඩි වාර්තා ආපසු නොදේ. - එක "සෙෂන්" (Pipe ක්‍රියාවලියක්) තුළ, මූලාශ්‍රය සෑම කැඳවීමකදී නව දත්ත ආපසු දක්වයි. - එහෙත්, නැවත ආරම්භ කිරීමෙන් පසු, මූලාශ්‍රය පසුගිය "තහවුරු කළ" තැනින් ආරම්භ වේ, එය cookie මගින් නියමිතයි. එමනිසා, Next කැඳවීමෙන් ආපසු ලැබූ සෑම cookie අගයක්ම, දත්ත සුරක්ෂිත කිරීමෙන් පසු, Commit මඟින් තහවුරු කළ යුතුය, එය ඒම අනුක්‍රමිකත්වයෙන්, Next විසින් ආපසු ලබා දී ඇත්තේ මෙන්. පරිභෝජක: - MaxItems වඩා වැඩි දේ එකවර සැකසිය නොහැක. මූලික මට්ටම: func Pipe(p Producer, c Consumer) error ක්‍රියාවලිය ක්‍රියාත්මක කළ යුතුය, ඒක මූලාශ්‍රයෙන් දත්ත කියවීම, ඒවා MaxItems අධික නොවන බෲෆරයට සමූහ කිරීම, සහ පසුදා ඒවා පරිභෝජකයට සුරක්ෂිත කිරීම, ඒ අනුව මූලාශ්‍රයේ ප්‍රගතිය තහවුරු කිරීම. */ const MaxItems = 9999 type Producer interface { // Next ආපසු දක්වයි: // - සැකසිය යුතු අයිතම කට්ටලයක් // - තහවුරු කිරීම සඳහා cookie // - දෝෂයක් Next() (items []any, cookie int, err error) // Commit යනු, සැකසූ දත්ත කට්ටලය සලකුණු කිරීම සඳහා Commit(cookie int) error } type Consumer interface { Process(items []any) error } func Pipe(p Producer, c Consumer) error { var buf []any var cookies []int for { items, cookie, err := p.Next() if err != nil { return err } buf = append(buf, items...) cookies = append(cookies, cookie) if len(buf) >= MaxItems { if err := c.Process(buf); err != nil { return err } for _, c := range cookies { if err := p.Commit(c); err != nil { return err } } buf = buf[:0] cookies = nil } } if len(buf) > 0 { if err := c.Process(buf); err != nil { return err } for _, c := range cookies { if err := p.Commit(c); err != nil { return err } } } return nil }

Middle
Яндекс
166

შეგიძლიათ ჩამოთვალოთ კომპანიები ან მომწოდებლები, რომლებთანაც ურთიერთობა გქონდათ?

Junior — Middle
166

გთხოვთ, ისაუბრეთ თქვენს ბოლო სამუშაო ადგილზე: რა საქმიანობას ეწეოდით, რა ტექნოლოგიებს იყენებდით, რა იყო რთული ამოცანები?

Middle
OZONOZON
166

რა არის slice Go-ში?

Middle
Бюро 1440Бюро 1440
166

შეგიძლიათ ჩამოთვალოთ gRPC-ში გამოყენებული ძირითადი ზარები?

Junior — Middle
СБЕР дейвайсыСБЕР дейвайсы
166

შესაძლებელია თუ არა დახურული რეჟიმით დაყენებული არხიდან ინფორმაციის მიღება?

Junior — Middle
ГазпромГазпром
X5 groupX5 group
AvitoAvito
+1
166

შესაძლებელია პირდაპირ დაწეროთ Kafka-ს გარკვეულ ნაწილში, გამოტოვოთ გასაღები ჰეშირებისთვის?

Junior — Middle
Самокат Тех
166

შეგიძლიათ ახსნათ მონაცემთა სტრუქტურის, მაგალითად, სიის ან მასივის, ბოლოს ელემენტის დამატების მექანიზმი?

Junior — Middle
Lamoda Tech
Startribe
Самокат Тех
+2
166

რა მონაცემები და როგორ იდება სტეკში პროგრამის შესრულების დროს?

Junior — Middle
166

რომელ მეთოდებს ირჩევთ თქვენს პროექტებში გამოყენებისთვის და რატომ?

Junior — Middle
166

რა განსხვავებაა მატერიალიზებული ხედვისა და ჩვეულებრივი ხედვის შორის?

Middle
RWB
165

რა კომპონენტები შედის დაკავშირებული სიის სტრუქტურაში?

Junior — Middle
165

როგორ განისაზღვრება Map მონაცემთა სტრუქტურაში გასაღებით ელემენტის დამატების ოპერაციის შესრულების დრო?

Junior — Middle
ЯндексЯндекс
165

რატომ არის ჩვეულებრივ თხემის დასაწყისის ზომა 2 მბ-ით?

Junior — Middle
165

გადახედეთ თუ არა ოდესმე ErrGroup სტრუქტურას თქვენს პროექტებში პარალელური დავალებების მართვისთვის?

Junior — Middle
165

პრაქტიკაში რა უცნაური ან ნორმიდან გამომდინარე პაკეტები გამოიყენეთ?

Junior — Middle
165

რატომ ნელი ხდება ნაჭრის ზრდა და რატომ არ შეიძლება მუდმივად ორჯერ გაზრდა?

Middle
RWB
165

სად ხორციელდება ბრძანებების გაშვება GitLab CI/CD-ის სამუშაო პროცესში?

Junior — Middle
165

როგორ შეიძლება გამოიწვიოს SOLID პრინციპების უგულებელყოფამ პროგრამული უზრუნველყოფის პროექტირებაში?

Junior — Middle
Zonatelecom
165
/413