Sobes.tech

Golang

Ce se întâmplă dacă pornești 5 trilioane de goroutines? Cum optimizezi?

Senior
РамблерРамблер
59

În ce variant de conversie de tip este posibilă panică și ce construcție permite evitarea acesteia?

Senior
Flant
59

Care sunt dezavantajele transmiterii unei entități prin context în Go?

Senior
RedLab
59

De ce ai intrat pe piață și ce este important acum atunci când alegi un nou angajator, un nou proiect? Există o diferență fundamentală între fintech și retail?

Senior
наполеон
59

Povestiți-mi despre experiența dvs. cu PostgreSQL: ați proiectat scheme, ați optimizat interogări, ați administrat?

Middle
Туту
59

Ai construit analize în timp real sau ce scopuri ai urmărit inițial?

Middle+
РамблерРамблер
59

Ce impact ai avut asupra proiectelor anterioare?

Senior
wilix
59

De ce Go? Cu ce ai început, cum ai ajuns la acest limbaj?

Middle+
VKVK
59

Ce primitive de sincronizare a goroutine-urilor există în Go?

Middle+
СБЕРСБЕР
59

Ce mijloace de sincronizare în Go cunoști?

Middle+
WildberriesWildberries
59

Ce știți despre compania VES?

Senior
IBS
59

Actualizările documentelor sosesc la serviciu message Document { string Url = 1; // URL-ul documentului, identificatorul său unic uint64 PubDate = 2; // timpul de publicare declarat al documentului uint64 FetchTime = 3; // timpul de primire a acestei actualizări a documentului, poate fi considerat ca un identificator de versiune. Perechea (Url, FetchTime) este unică. string Text = 4; // textul documentului uint64 FirstFetchTime = 5; // inițial absent, trebuie completat } Documentele pot ajunge în orice ordine (nu în ordinea în care au fost actualizate), și pot exista mesaje duplicate. Este necesar să se formeze în ieșire mesaje identice, dar cu câmpuri corectate conform următoarelor reguli (tot ce este mai jos se aplică pentru un grup de documente cu același câmp Url): Câmpul Text și FetchTime trebuie să fie cele ale documentului cu cel mai mare FetchTime primit până acum. Câmpul PubDate trebuie să fie cel al mesajului cu cel mai mic FetchTime. Câmpul FirstFetchTime trebuie să fie egal cu valoarea minimă a FetchTime. Cu alte cuvinte, în fiecare moment, luăm PubDate și FirstFetchTime din prima versiune primită până acum (dacă le sortăm după FetchTime), și Text din ultima. Interfața în cod poate fi implementată astfel: type Processor interface { Process(doc *Document) (*Document, error) } Acest cod va funcționa într-un serviciu care citește mesaje dintr-o coadă (Kafka sau similar), și scrie și rezultatul în coadă. Dacă Process returnează Null, nimic nu se scrie în coadă.

Senior
VKVK
59

Cum ai influențat schimbarea procesului cu analiza?

Senior
AvitoAvito
59

Ce este contextul în Go și la ce folosește?

Middle+
Magnit Tech
59

Cu ce ai lucrat cel mai des? Ce tehnologii ai folosit?

Middle+
OZONOZON
59

Poți gestiona o panică într-unul dintre deferi?

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

Se pot adăuga sau elimina elemente dintr-un map în timpul procesului de evacuare?

Senior
VK CloudVK Cloud
59

Ați folosit atât gRPC, cât și REST sau doar gRPC?

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

De ce este o sarcină dificilă din punct de vedere tehnic? De ce nu o funcție de 100 de linii?

Senior
VK Live
59

Dat un array sortat de numere care conține elemente duplicate. Este necesar să eliminați duplicatele in-place (direct în array-ul original) și să returnați dimensiunea array-ului rezultat. Exemplu: Input: nums = [0,0,1,1,1,2,2,3,3,4] Output: 5, nums = [0,1,2,3,4,_,_,_,_,_] Explicație: În acest array există 5 elemente unice. Plasați-le în primele cinci poziții ale array-ului original și returnați numărul 5. Elementele ulterioare în array-ul original pot fi orice.

Senior
Ozon ФинтехOzon Финтех
59
/411