Може ли се користити контекст за пренос података између компоненти или функција?
Golang
Šta je pokazivač i koliko on teži?
Ažuriranja dokumenata stižu u servis message Document { string Url = 1; // URL dokumenta, njegov jedinstveni identifikator uint64 PubDate = 2; // deklarisano vreme objavljivanja dokumenta uint64 FetchTime = 3; // vreme primanja ove ažuriranja dokumenta, može se smatrati identifikatorom verzije. Par (Url, FetchTime) je jedinstven. string Text = 4; // tekst dokumenta uint64 FirstFetchTime = 5; // inicijalno nedostaje, treba popuniti } Dokumenti mogu stizati u bilo kom redosledu (ne u redosledu u kojem su ažurirani), i mogu postojati duple poruke. Potrebno je na izlazu formirati iste poruke, ali sa ispravljenim poljima prema sledećim pravilima (sve niže važi za grupu dokumenata sa istim poljem Url): Polje Text i FetchTime treba da budu takvi kakvi su u dokumentu sa najvećim FetchTime koji je do sada primljen. Polje PubDate treba da bude takvo kakvo je u poruci sa najmanjim FetchTime. Polje FirstFetchTime treba biti jednako minimalnoj vrednosti FetchTime. Drugim rečima, u svakom trenutku uzimamo PubDate i FirstFetchTime od prve verzije primljene do sada (ako ih sortiramo po FetchTime), a Text od poslednje. Interfejs u kodu može biti implementiran ovako: type Processor interface { Process(doc *Document) (*Document, error) } Ovaj kod će raditi u servisu koji čita poruke iz reda (Kafka ili slično), i takođe zapisuje rezultat u red. Ako Process vrati Null, ništa se ne zapisuje u red.
Koji su vas motivi naveli da se upoznate sa trenutnim ponudama za posao?
Kako koristiti select za rad sa više kanala istovremeno?
Kako funkcioniše binarna pretraga u sortiranoj listi?
Šta je race condition i koje su metode zaštite od nje?
Šta su probe (probes) u Kubernetes-u, kako ih podesiti i koje vrste postoje?
Koja je razlika između gorutine i niti operativnog sistema?
Šta još, osim mutexa, može se koristiti za zaštitu od race condition?
/* Dat je niz koji sadrži znakove (){}. Potrebno je odrediti da li je ulazni niz uravnotežen u pogledu zagrada. */ func isBalanced(s string) bool { // TODO: implementirati ovo return false } fmt.Println(isBalanced("()")) // -> true fmt.Println(isBalanced("({()})")) // -> true fmt.Println(isBalanced("(()")) // -> false fmt.Println(isBalanced("(()))")) // -> false fmt.Println(isBalanced("({})")) // -> false
Kako interfejsi u Go omogućavaju implementaciju polimorfizma bez eksplicitnog nasleđivanja?
Реците више о пројектима на Go
Kako raste kapacitet sličice pri proširenju?
Šta je virtuelna memorija (swap), kada je potrebna i kada treba da je isključite?
Šta funkcija isBalanced treba da vrati za prazan string?
Kako funkcioniše dvostepno potvrđivanje (2PC)?
Šta je kanal u Go i koja su njegova glavna područja primene?
Koje projekte vodiš, koje su tvoje zadatke na višem nivou?
Šta je pokazivač i koliko memorije zauzima?