Երբ մենք չկարողանանք բռնել панիկային, ծրագրի փակվելու՞ է այն ամեն դեպքում։
Golang
Ի՞նչ է նշանակում RPC ոճի անվանումը: Մեր դեպքում, gRPC և REST — ինչպե՞ս են նրանք տարբերվում:
Դու դեռ աշխատում ես Magnit-ում? Ինչու որոշեցիր դուրս գալ շուկա?
Ի՞նչ էր տեղի ունենում ինբոքսից հետո պայպլայնում: Ինչպե՞ս էին տվյալները գրանցվում տվյալների բազայում։
Ի՞նչ կա sync փաթեթում։
Դուք երբևէ հարկավոր է եղել բացահայտորեն սահմանել մեկուսացման մակարդակը կոդում?
// Հարց 5. Ի՞նչ կցուցադրվի էկրանին func main() { ch := make(chan int, 5) for i := 1; i <= 5; i++ { ch <- i } for true { fmt.Println(<-ch) } }
Դու դեռ աշխատո՞ւմ ես Magnit-ում: Ինչու՞ որոշեցիր դուրս գալ շուկա:
Դուք ստեղծել եք պատմական աղյուսակներ՝ օրինակ, օգտագործողի համար, որտեղ պահվում է նրա հատկությունների փոփոխությունների պատմությունը։
// Հարց 3. Ի՞նչ կարտահանի էկրանին package main import "fmt" import "math" func main() { i := int32(math.Pow(2, 64)) - 1 fmt.Println(i) }
Ինչպե՞ս եք օպտիմալացրել հարցումները 10-20 րոպեից մինչև 5-7։ Ո՞ր հաշվետվությունները կատարվում էին այդքան երկար։
Արդյոք այդպիսի անվավեր հաղորդագրություններ շատ էին?
Օգտագործե՞լ եք տրիգերներ պրակտիկայում։
Որտե՞ղ է անհրաժեշտ սահմանել recover, որպեսզի պանիկի դեպքում ծրագիրը չընկնի, հաշվի առնելով, որ այն ունի մի քանի վերջնակետեր, շատ կախվածություններ (մատնային տվյալներ, կեշ, գրադարաններ)։
Իմացեք ինձ մասին, ինչ եք զբաղվել, ինչ եք արել?
Ի՞նչ էր տեղի ունենում առաջին սինխրոնիզացիայի ալիքում: Դա տվյալների ինչ-որ մոդել էր, որի հիման վրա նրանք հարուստանում էին:
// Հարց 2. Ի՞նչ կցուցադրվի էկրանին package main import "fmt" func main() { { defer fmt.Println(1) } defer fmt.Println(2) }
Ի՞նչ էին անում հաղորդագրությունների հետ ձեռքով մշակելուց հետո: Որ տարբերակները կարո՞ղ էին լինել։
Պատմիր ինձ վավերացման մասին՝ ինչ տարբերակներ կան, ինչ տեղի է ունենում, եթե հաղորդագրությունը չհավատարմագրվի։
Նո՞յ ես նման Saga մոդել։