Sobes.tech

Golang

Je možné implementovať RPC cez REST a naopak? Aký je zásadný rozdiel?

Senior
X5 techX5 tech
73

Čo sa stane, keď je kapacita slice vyčerpaná a pridá sa ďalší prvok?

Senior
I-teco
73

Čo vám je bližšie — vývoj produktu alebo infraštruktúry?

Middle+
OZONOZON
73

Ako veľmi je aktuálne aktívne hľadanie? Už ste sa rozhodli odísť z [spoločnosti], alebo si len prezeráte zaujímavé ponuky?

Senior
AvitoAvito
73

Aktualizácie dokumentov prichádzajú do služby message Document { string Url = 1; // URL dokumentu, jeho jedinečný identifikátor uint64 PubDate = 2; // deklarovaný čas publikácie dokumentu uint64 FetchTime = 3; // čas prijatia tejto aktualizácie dokumentu, môže byť považovaný za identifikátor verzie. Pár (Url, FetchTime) je jedinečný. string Text = 4; // text dokumentu uint64 FirstFetchTime = 5; // zpočiatku chýba, treba doplniť } Dokumenty môžu prísť v ľubovoľnom poradí (nie v poradí, v ktorom boli aktualizované), a môžu byť aj duplicitné správy. Je potrebné na výstupe vytvoriť rovnaké správy, ale s opravenými poľami podľa nasledujúcich pravidiel (všetko nižšie platí pre skupinu dokumentov so rovnakým poľom Url): Pole Text a FetchTime by mali byť také, aké boli v dokumente s najväčším FetchTime, ktorý bol doteraz prijatý. Pole PubDate by malo byť také, aké bolo v správe s najmenším FetchTime. Pole FirstFetchTime by malo byť rovné najnižšej hodnoty FetchTime. Inými slovami, v každom momente berieme PubDate a FirstFetchTime z prvej verzie, ktorú sme doteraz obdržali (ak ich zoradíme podľa FetchTime), a Text z poslednej. Rozhranie v kóde môže byť implementované takto: type Processor interface { Process(doc *Document) (*Document, error) } Tento kód bude fungovať v službe, ktorá číta správy z fronty (Kafka alebo podobne), a tiež zapisuje výsledok do fronty. Ak Process vráti Null, nič sa do fronty nezapisuje.

Senior
VKVK
73

// Напишите асинхронный обработчик задач как библиотеку // Клиент передает объект (Task) с данными для выполнения задачи, // в нашем примере будем использовать пустую структуру. // Обработчик одновременно может обрабатывать не более N задач, // и не более X задач могут быть поставлены в очередь на обработку. // Если нет места в очереди, сразу возвращаем клиенту ошибку. // Задача берется в обработку, если имеются свободные обработчики. // Иммитируем длительность обработки через time.Sleep(5*time.Second). // Как только очередная задача выполнена, берем следующую из очереди. // Если в очереди пусто, ожидаем новых задач от клиентов. // Со звездочкой: дополнить структуру Task и получать статусы задач через отдельный запрос.

Senior
Cloud.ru
73

Vždy ti pprof ukáže, že máš únik pamäte alebo prekročenie limitu?

Senior
ВайлдберрисВайлдберрис
73

Povedz stručne, čím si sa zaoberal na predchádzajúcich pracoviskách a aké funkcie si implementoval.

Middle+
Яндекс
73

Máte skúsenosti s Dockerom a Kubernetes? Na akej úrovni?

Senior
X5
73

Povedzte nám o vzorec Transactional Outbox — ako funguje a na čo slúži?

Senior
ИП Ганус Александр Андреевич
73

Mal(a) si skúsenosti s optimalizáciou dopytov v relačných databázach?

Middle
VKVK
73

Aké sú vaše očakávania ohľadom platu a preferovaný formát prezentácie?

Middle
Nau
73

Koľko gorutín je možné vytvoriť na jednom stroji? Ako sa počítajú?

Senior
СБК ПАРУС
73

Ako ste optimalizovali vyhľadávacie scenáre?

Senior
Cloud.ru
73

// Máme metódu na získanie informácií o produktoch, táto metóda sa volá veľmi často // sú v tomto kóde problémy a ako ich opraviť? databáza postgress func (r *ProductRepository) GetProductDetails(ctx context.Context, productIDs []int) []Product { products := make([]Product, 0, len(productIDs)) for _, id := range productIDs { go func(id int) { var p Product query := "SELECT name, price, description FROM products WHERE id = $1" err := r.db.QueryRowContext(ctx, query, id).Scan(&p.Name, &p.Price, &p.Desc) if err != nil { r.logger.Error("error get product", "err", err) return } products = append(products, p) }(id) } return products }

Middle+
Lenta Tech
73

**Podmienka** Žiadosti na viacero URL by mali byť vykonávané paralelne. Zobraziť HTTP stavy a spracovať chyby.

Senior
Бюро 1440Бюро 1440
73

Prečo si si vybral Go?

Senior
Spectr
73

Aké systémy kontajnerizácie a orchestrácie poznáte?

Senior
КасперскийКасперский
73

Ako často ste používali spúšťače, len v prípade s príbehom alebo boli aj iné prípady?

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

Čo je zásobník a čo je halda?

Senior
sber tech
73
/412