Golang
Kuo skiriasi Docker vaizdas nuo konteinerio? Vaizdas gali būti laisvai modifikuojamas po paleidimo, o paleistas konteineris lieka statiškas ir nepakeičiamas. Vaizdas yra programos šaltinio kodo archyvas, o konteineris yra jau surinkta vykdoma aplinka be kodo. Vaizdas yra RAM atmintyje darbo metu, o konteineris saugomas registre sluoksniais. Vaizdas yra nekintamas šablonas su failų sistema ir metaduomenimis, o konteineris yra izoliuotas procesas, paleistas iš vaizdo su savo būsena.
Papasakokite apie savo išsilavinimą — ar neseniai įgijote magistro laipsnį?
Kiek buvo jungčių Postgres?
Ar dirbote prieš [įmonė] [ankstesnė įmonė]?
Pateikite keletą skirtingų tipų nerealacijinių duomenų bazių pavyzdžių ir paaiškinkite, kam kiekvienas tipas naudojamas. Kam naudojamos grafų duomenų bazės?
Kaip suprasti, kada reikia partitioning ar sharding?
Ar turėjote reguliarius susitikimus su savo vadovu vienas prieš vieną formatu?
Kas turėtų uždaryti kanalą?
/* Mums reikia perduoti duomenis iš šaltinio į vartotoją. Šaltinis pateikia duomenis mažais paketais (~dešimt įrašų), o vartotojas efektyviau dirba su didesniais paketais (~tūkstantis įrašų). Realiame pavyzdyje duomenys perduodami iš Kafka tipo eilės į Clickhouse duomenų bazę. Šaltinis: - Praktškai begalinis. - Šaltinis niekada negrąžina daugiau kaip MaxItems įrašų vienu Next iškvietimu. - Vienos "sesijos" (vieno Pipe funkcijos iškvietimo) metu šaltinis kiekvieną kartą grąžina naujus duomenis. - Tačiau, perkraunant sistemą, šaltinis pradeda nuo ankstesnės "patvirtintos" pozicijos, nustatytos cookie. Todėl, *kiekviena* cookie reikšmė, kurią grąžina Next, po duomenų išsaugojimo gavėjo, turi būti patvirtinta su Commit iškvietimu, ta pačia tvarka, kaip ir grąžinta iš Next. Gavėjas: - Negali apdoroti daugiau kaip MaxItems vienu metu. Reikia įgyvendinti funkciją func Pipe(p Producer, c Consumer) error, kuri skaito duomenis iš šaltinio, juos grupuoja į buferį, kurio dydis ne didesnis kaip MaxItems, ir saugo jį gavėjui, po to patvirtina pažangą šaltinyje. */ const MaxItems = 9999 type Producer interface { // Next grąžina: // - paketą elementų apdorojimui // - cookie, kurį reikia patvirtinti, kai apdorojimas baigtas // - klaidą Next() (items []any, cookie int, err error) // Commit naudojamas žymėti duomenų paketą kaip apdorotą Commit(cookie int) error } type Consumer interface { Process(items []any) error } func Pipe(p Producer, c Consumer) error { // TODO }
Kaip galima susieti skirtingų Kubernetes klasterių paslaugas?
Ar jums kada nors buvo situacija, kai jums buvo pateiktas uždavinys, pradėjote jį vykdyti, bet proceso metu supratote, kad reikalavimai prieštarauja arba techniškai neįmanoma jų įgyvendinti laiku? Ką tada padarėte?
Kas vyksta skaitant iš neinicijuoto (nil) kanalo?
```go import ( "fmt" "runtime" "time" ) func main() { runtime.GOMAXPROCS(2) var c chan int for i := 0; i < 5; i++ { go sleeping(i, c) } for i := 0; i < 5; i++ { gopherID := <-c fmt.Println("rutinė ", gopherID, " baigė miegoti") } } func sleeping(id int, c chan int) { time.Sleep(3 * time.Second) fmt.Println("... ", id, " sustojimo laikas ...") c <- id } ```
Kokie yra dizaino šablonų tipai/grupės?
Kokį žinučių formatą naudoti Kafka aukšto apkrovimo paslaugai: JSON ar dvejetainį?
Papaskokite apie Redis naudojimą jūsų projektuose.
Kokį registracijos formatą pirmenybę teikiate: TK, IP? Nuo kokios sumos svarstote pasiūlymą?
Kodėl požiūris, kai interfeisus deklaruojame atskirame pakete, yra blogesnis nei jų deklaravimas naudojimo vietoje?
Ar buvo klaidų / problemų darbe?
Ką darytumėte, jei užduotis iki galo neaiški arba TŽ skiriasi nuo to, kas jau padaryta?