Sobes.tech

Golang

Čo sú to kanály v Go a operátor select?

Middle
203

Čo je ukazovateľ a koľko váži?

Middle
202

Čo je race condition a aké sú spôsoby jeho ochrany?

Middle
202

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
202

Je možné použiť kontext na prenos údajov medzi komponentmi alebo funkciami?

Junior — Middle
202

Ako použiť select na prácu s viacerými kanálmi súčasne?

Middle
201

Ako funguje binárne vyhľadávanie v zoradenom zozname?

Middle
201

Aký je rozdiel medzi gorutinou a vláknom operačného systému?

Middle
200

Čo iné, okrem mutexu, sa dá použiť na ochranu pred race condition?

Middle
200

Čo sú to sondy (probes) v Kubernetes, ako ich nakonfigurovať a aké druhy existujú?

Senior
199

/* Daný reťazec obsahujúci znaky (){}. Je potrebné určiť, či je vstupný reťazec vyvážený z hľadiska zátvoriek. */ func isBalanced(s string) bool { // TODO: implementujte to return false } fmt.Println(isBalanced("()")) // -> true fmt.Println(isBalanced("({()})")) // -> true fmt.Println(isBalanced("(()")) // -> false fmt.Println(isBalanced("(()))")) // -> false fmt.Println(isBalanced("({})")) // -> false

Middle
197

Povedzte viac o projektoch v Go

Middle
197

Ako rozhrania v Go umožňujú implementovať polymorfizmus bez explicitného označenia dedičstva?

Middle
197

Čo je to virtuálna pamäť (swap), kedy je potrebná a kedy ju vypnúť?

Senior
197

Čo je kanál v Go a aké sú jeho hlavné oblasti použitia?

Middle
196

Ako rastie kapacita slice pri rozšírení?

Middle
196

Aké projekty vedieš, aké sú úlohy vyššej úrovne — čo robíš?

Middle+
196

Čo by mala funkcia isBalanced vrátiť pre prázdny reťazec?

Middle
196

Ako funguje dvojfázové potvrdenie (2PC)?

Middle
194

Čo je ukazovateľ a koľko pamäte zaberá?

Middle
193
/12