Golang
Ի՞նչ է ACID-ը և որ մեխանիզմներով իրականացնում է յուրաքանչյուր տառը PostgreSQL-ում։
Ծառայությունը կարդում էր տվյալներ Kafka-ից, դրանք հարուստ էր դարձնում Redis-ից տվյալներով — և հետո ինչ էր անում?
Որտե՞ղից կսկսեիք այս մեթոդում pagination-ի իրականացմանը:
Որո՞նք են Go լեզվի կառուցվածքները, որոնք թույլ են տալիս կատարել գործողություն, երբ դուրս եք գալիս goroutine/ֆունկցիայի շրջանակից։
Ի՞նչ է ձեր դերը և ձեր մասնագիտական ինքնագնահատականը՝ middle plus կամ senior։
Ինչպես են աշխատում քարտեզները Go-ում?
Դու հիմա աշխատանք փնտրո՞ւմ ես կամ շարունակում ես աշխատել:
Կարող եք կարճ ասել ձեր դերը ընկերությունում?
Դուք կարգավորել եք հետևողականությունը?
a := []int{1} // *T &1111000 len cap fmt.Println(len(a), cap(a)) // 1 1 b := append(a, 2) // *T &1111001 fmt.Println(len(b), cap(b)) // 2 2 b[0] = 0 fmt.Println(a) // [1] fmt.Println(b) // [0 2] c := append(b, 3) // [0 2 3] len = 3, cap = 4 // *T &1111011 ? d := append(c, 4) // [0 2 3 4] // len = 4, cap = 4 // *T &1111011 ? c[0] = 100 fmt.Println(b) // fmt.Println(c) // fmt.Println(d) //
Ի՞նչ եք սպասում աշխատավարձից:
Ինչու որոշեցիր հիմա ինչ-որ բան փնտրել, ինչու ես գնում հարցազրույցների?
Ինչպես լուծել race condition խնդիրը միաժամանակ ավելացնելով ապրանքներ մի զամբյուղում տարբեր գորուտիններից?
Ինչպե՞ս կտեսնվի փոխանցումների և հաշիվների աղյուսակների միջև կապը (երկու FK մեկ աղյուսակում):
Ինչու է ընտրվել PostgreSQL-ը գրառումների պահեստավորման համար: Ինչպես հասկանալ, որ ինչ բեռների դեպքում որ տեխնոլոգիան կարող է աշխատել առանց շարդինգի և ռեպլիկացիայի (Postgres, Kafka, Redis, ծառայություն Go-ում)?
Ով էր զբաղվում ճարտարապետությամբ թիմում?
// GetUsersList օգտագործում է օգտվողների ցանկը։ (մատչելի է մոտ 1 միլիոն օգտվող տվյալների բազայում) // Օգտագործվում է ադմինիստրատիվ պանելում օգտվողների ցուցակը ցուցադրելու համար։ Եթե isActive = true, վերադարձվում են միայն ակտիվ օգտվողները։ func (u *UsersRepo) GetUsersList(ctx context.Context, isActive bool) ([]User, error) { rows, err := u.DB.Query("SELECT id, name, phone FROM users WHERE is_active = ?", isActive) if err != nil { return nil, errors.New("գործողության սխալ օգտվողների ցանկը ստանալիս") } var users []User // Լրացրեք օգտվողների մասին տեղեկությունները։ for rows.Next() { var user User err := rows.Scan(&user.ID, &user.Name, &user.Phone) if err != nil { return nil, err } // Ստացեք օգտվողի էլփոստի ցանկը err, err := u.DB.QueryContext(ctx, "SELECT email FROM user_emails WHERE user_id = ?", user.ID) if err != nil { return nil, errors.New("գործողության սխալ օգտվողների ցանկը ստանալիս") } var emails []string for er.Next() { var email string err := rows.Scan(&email) if err != nil { return nil, err } emails = append(emails, email) } if len(emails) != 0 { for i, e := range emails { e = strings.ToLower(e) emails[i] = e } } user.Emails = emails // Ստացեք պրոֆիլի տեղեկատվությունը VK API-ից profile, err := getUserProfileFromVkApiByUserPhone(user.Phone) if err != nil { return nil, errors.New("գործողության սխալ օգտվողների ցանկը ստանալիս") } user.Profile = profile users = append(users, user) } if err = rows.Err(); err != nil { return nil, errors.New("գործողության սխալ օգտվողների ցանկը ստանալիս") } }
Դուք ծանոթացաք պաշտոնի նկարագրությանը:
Ի՞նչ է HTTP և HTTPS-ի տարբերությունը։
Ի՞նչն է տարբերությունը GET և POST միջեւ: