Prečo chceš zmeniť a zvažuješ iné spoločnosti?
Golang
// kód pre funkciu best() // s obsluhou chýb, ak backend nie je dostupný
Prečo ste sa rozhodli komunikovať s 2GIS? Čo vás na spoločnosti alebo konkrétnej pozícii zaujalo?
Pracovali ste niekedy s konkurenčným prístupom k údajom v databáze? Aké mechanizmy, ako transakcie a zámky, ste použili? Existujú spôsoby, ako tento problém vyriešiť bez zapojenia databázy?
// kód pre funkciu best() // s obsluhou chýb, ak backend nie je dostupný
Ako je to v kóde riešené?
/* Existuje aplikácia s architektúrou mikroservisov. Mikroservis môže byť abstraktný pomocou rozhrania Backend. Na prístup k jednému príkladu mikroservisu môžete použiť typ BackendImpl, ktorý je už implementovaný. Pre každý mikroservis je niekoľko desiatok bežiacich inštancií, z ktorých každá je dostupná na svojej adrese addr. Avšak, jednotlivé inštancie mikroservisu nie sú spoľahlivé: môžu spadnúť, byť nedostupné alebo preťažené. Preto musíte implementovať typ Balancer, ktorý tiež implementuje rozhranie Backend a vykonáva klientsku vyváženosť medzi inštanciami mikroservisu, pričom vždy vyberá **najmenej zaťaženú** inštanciu. */
// kód pre funkciu best() // s obsluhou chýb, ak backend nie je dostupný
Existuje objektovo orientované programovanie v Go? Ak áno, ako je implementované; ak nie, prečo?
Čo je pre vás v práci najdôležitejšie?
Čo vracia čítanie zo zatvoreného kanála?
Ako ste organizovali škálovanie a s akými architektúrami mikroslužieb ste pracovali?
Kedy dochádza k úniku goroutine?
Ako implementovať metódu Status na získanie stavu úlohy podľa ID?
Čo sa stane s programom, ak nastane panic v samostatnej gorutíne?
Ako sa líši sync.Mutex od sync.RWMutex?
Popíšte svoj proces vývoja a nasadenia novej služby: od zhromažďovania požiadaviek po nasadenie na vývojové a testovacie prostredia.
Ako prebehlo nasadenie služieb?
Implementujte metódu Queue
Ako presne bol štruktúrovaný proces načítania alebo zostavovania týchto údajov?