Golang
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) //
Kādas ir jūsu algas cerības?
Kāpēc tu nolēmi tagad kaut ko meklēt, kāpēc dodies uz intervijām?
Kā risināt sacensību stāvokļa problēmu, pievienojot vienlaicīgi preces vienā grozā no dažādām gorutīnām?
Kā izskatīsies saikne starp tabulām transfers un accounts (divas FK vienā tabulā)?
Kāpēc izvēlēts PostgreSQL ziņu glabāšanai? Kā saprast, pie kādiem slodzēm kura tehnoloģija darbojas bez sharding un replikācijas (Postgres, Kafka, Redis, pakalpojums Go)?
Kurš nodarbojās arhitektūrā komandā?
// GetUsersList atgriež lietotāju sarakstu. (datu bāzē tiek glabāti aptuveni 1 miljons lietotāju) // Izmanto lietotāju saraksta rādīšanai administrācijas panelī. Ja isActive = true, tiek atgriezti tikai aktīvie lietotāji. 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("kļūda, iegūstot lietotāju sarakstu") } var users []User // Aizpildiet informāciju par lietotājiem. for rows.Next() { var user User err := rows.Scan(&user.ID, &user.Name, &user.Phone) if err != nil { return nil, err } // Iegūstiet lietotāja e-pasta sarakstu err, err := u.DB.QueryContext(ctx, "SELECT email FROM user_emails WHERE user_id = ?", user.ID) if err != nil { return nil, errors.New("kļūda, iegūstot lietotāju sarakstu") } 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 // Iegūstiet profila informāciju no VK API profile, err := getUserProfileFromVkApiByUserPhone(user.Phone) if err != nil { return nil, errors.New("kļūda, iegūstot lietotāju sarakstu") } user.Profile = profile users = append(users, user) } if err = rows.Err(); err != nil { return nil, errors.New("kļūda, iegūstot lietotāju sarakstu") } }
Vai esat iepazinies ar vakances aprakstu?
Kāda ir atšķirība starp HTTP un HTTPS?
Kāda ir atšķirība starp GET un POST?
Vai jums ir pieredze ar moderniem frontend ietvara (Vue, React, Svelte)? Kas ir reaktivitate un kā tā tiek īstenota React?
Kā plānotājs pārtrauc gorutīnu, kas ieiet bezgalīgā ciklā?
Ko tu gaidi no komandas / vadītāja? Ko viņš ir jāizdara, kā palīdzēt?
Kas ir tīra arhitektūra? Kāpēc tā ir nepieciešama?
Pastāsti par buferētajiem un nebuferētajiem kanāliem. Kad mēs tos izmantojam? Kā tie bloķējas un kad notiek deadlock?
Pastāstiet par savu pieredzi [uzņēmums].
Kāpēc jūs izdarījāt tieši tik daudz pakalpojumu? Kā notika izvēle — veidot pakalpojumu vai nē?
Vai mūsu maksājumu webhook pakalpojums ir stateful?
Vai esat nodarbojies ar mašīnmācību?