Ի՞նչ գրադարաններով են գրվում մետրիկաները Go-ում։
Golang
Ի՞նչ նպատակով է այս կոդը գրված: Ի՞նչ բիզնես-տեխնիկական խնդիր է լուծում:
Ի՞նչ մեթրիկներ։ Ի՞նչ գործիքների միջոցով մենք գրելու ենք այդ մեթրիկները։
// Вазифա 4 // "Տիպիկ" CRUD ծառայության համար - որոշ ժամանակ անց որոշ մեթոդներ սկսեցին դանդաղ աշխատել և ծառայությունը սկսեց ժամանակաչափել: // Ծառայությունը բաղկացած է. // * Application Load Balancer (L7) - մուտքային հարցումների ընդունում և TLS-ի ավարտ // * Backend (rest, java/kotlin կամ golang) - մուտքային հարցումների մշակումը և բիզնես տրամաբանությունը // * Database (postgres) - SQL հարցումների պահպանում և մշակումը // Ինչպես ճիշտ գործողություններ կատարել՝ հասկանալու համար խնդիրների պատճառը և բարելավելու իրավիճակը։
// Առաջադրանք 3 // Նկարագրեք, թե ինչ խնդիր է լուծում այս կոդը // Ի՞նչ խնդիրներ կան այս լուծման մեջ: // Ինչպե՞ս կկրկնեք այս կոդը։
Ի՞նչ անել տվյալների բազայի և բեռի հավասարակշռողի հետ աշխատանքի խնդիրների դեպքում։
Ինչպես մուտք գործել pprof պրոֆիլավորիչը արտադրական սերվերում?
Ի՞նչ էիր անում աշխատանքի ժամանակ։
// Թեստ 3 // Նկարագրեք, թե ինչ խնդիր է լուծում այս կոդը // Ինչ խնդիրներ կան այս լուծման մեջ? // Ինչպե՞ս կվերագրեք այս կոդը: var c int type Trace struct { // Որոշ դաշտեր այստեղ } type Sender interface { Send(Trace) } func Do(sender Sender, tr Trace) { c++ if c == 100 { sender.Send(tr) c = 0 } }
Ի՞նչ ինդեքսների վրա եք հիմնվել աշխատանքի ժամանակ: Ի՞նչ եք կիրառել պրակտիկայում: Վայլդբերիսում:
Ի՞նչ եք անելու, երբ ձեր թիմում ամեն օր փոխվում են առաջնահերթությունները և հայտնվում են նոր շտապ առաջադրանքներ։
Ինչպես է աշխատում բաժանումը PostgreSQL-ում մեքենայի տակ?
Ի՞նչ ինդեքսներ եք օգտագործում PostgreSQL-ում։
Ի՞նչ խնդիրներ կան գլոբալ հաշվիչով կոդում: Ինչպե՞ս ուղղել։
Ինչպես դարձնել Increaser-ը համընդհանուր — ոչ կապված 100 թվի հետ։
Որ գրաֆիկում եք տեսել խնդիրը pprof օգտագործելիս?
// Հարց 3 // Նկարագրեք, թե ինչ խնդիր է լուծում այս կոդը // Ինչ խնդիրներ կան այս լուծման մեջ? // Ինչպե՞ս կվերագրեք այս կոդը: var c int var mu sync.RWMutex type Trace struct { // Որոշ դաշտեր այստեղ } type Sender interface { Send(Trace) } func Do(sender Sender, tr Trace) { mu.Lock() defer mu.Unlock() c++ if c == 100 { go func() { sender.Send(tr) }() c = 0 } }
func normalize2(str []rune) []rune { result := str[:0] for val := range str { if val != ' ' { result = append(re) } } l, r := 0, 0 isSpace := false for i := 0, i < len(str); i++ { val := string(str[i]) if val == " " { if isSpace { continue } else { str[r] = val r++ isSpace = true } } else { str[r] = val r++ isSpace = false } } return str[:r] }
Կարող է Increaser դառնալ Sender-ի իրականացմանը: Ի՞նչ տարբերություն կա Increaser-ի և Sender-ի տրամաբանական։
Կարող եք պատմել, թե ինչպես եք նախագծել և իրականացնում REST և gRPC API-ները հարթակի ներքին և արտաքին ծառայությունների համար: