Sobes.tech

Golang

func Copy(src io.Reader, dst io.Writer) error { //... } import gocopy s := file.Open() err := gocopy.Copy(s, d) func Copy(src io.Reader, dst io.Writer) (statusCh, error) { //... go func() { statusCh }() } func Read() { select { case status := <-statusCh: } } type Stat struct { status string err error } func Copy(src io.Reader, dst io.Writer) chan Stat { //... statusCh := make(chan Stat{}) go func() { statusCh{ } } return statusCh } func Read() { select { case status := <-statusCh: } } import gocopy s := file.Open() err := gocopy.Copy(s, d) func Copy(src io.Reader, dst io.Writer) chan Stat { //... statusCh := make(chan Stat{}) buf := make([]byte, 1024) var total int64 go func() { for { n, err := src.Read(buf) if n > 0 { writen, err := dst.Write(buf[:n]) total += int64(writen) if err != nil { statusCh <- Stat{ status: "done with err", err: err, } return } } if err == io.EOF { statusCh <- Stat{ bCopy: total, status: "done", err: nil, } return } if err != nil { statusCh <- Stat{ status: "done with err", err: err, } return } } } return statusCh } func Read() { select { case status := <-statusCh: if status.err != nil { return } } } func Copy(src io.Reader, dst io.Writer) chan Stat { //... statusCh := make(chan Stat{}) buf := make([]byte, 1024) var total int64 go func() { for { select { case : n, err := src.Read(buf) if n > 0 { writen, err := dst.Write(buf[:n]) total += int64(writen) if err != nil { statusCh <- Stat{ status: "done with err", err: err, } return } } if err == io.EOF { statusCh <- Stat{ bCopy: total, status: "done", err: nil, } return } if err != nil { statusCh <- Stat{ status: "done with err", err: err, } return } default: statusCh <- Stat{ bCopy: total, status: "pending", err: nil, } } } } return statusCh } func Read() { select { case status := <-statusCh: if status.err != nil { return } } }

364

Que cherches dans un travail, que veux-tu faire?

316

Dans quelle équipe avez-vous travaillé dans la banque ? Quelle était la mission de l'équipe ?

306

Il y a une fonction `unpredictableFunc()`, qui doit être enveloppée pour s'exécuter avec un délai d'expiration (par exemple, 1 seconde) et enregistrer le temps d'exécution. // Il y a une fonction qui fonctionne indéfiniment et retourne un nombre. // Son corps ne peut pas être modifié (supposons qu'il s'agit d'une requête réseau à l'intérieur). func unpredictableFunc() int64 { rnd := rand.Int63n(5000) time.Sleep(time.Duration(rnd) * time.Millisecond) return rnd } // Il faut modifier la fonction d'enveloppement, qui fonctionnera avec un délai défini (par exemple, 1 seconde). // Si la "longue" fonction s'est exécutée dans ce temps, c'est parfait, on retourne le résultat. // Sinon, on retourne une erreur. Le résultat de cette exécution n'est pas important. // // De plus, il faut mesurer combien de temps cette fonction a été en exécution (simplement l'afficher dans le log). // La signature de la fonction d'enveloppement peut être modifiée. func predictableFunc() int64 { return unpredictableFunc() }

297

Comment fonctionne SSL/TLS ? Décrivez le processus d'établissement de la connexion.

264

As-tu écrit des opérateurs pour Kubernetes?

240

Comment distingues-tu les développeurs Junior, Middle et Senior ? Selon quels critères te considères-tu comme Senior ?

236

Comment fonctionne le context.WithTimeout en interne?

233

A-t-on envisagé de diviser les données en chaudes (derniers 3 mois) et froides pour réduire la charge au lieu d'Elasticsearch?

223

Quelles sont les niveaux d'isolation des transactions ? Lesquels avez-vous utilisés ?

220

Que va afficher le code? package main import "fmt" func main() { nums := make([]int, 1, 2) fmt.Println(nums) // appendSlice(nums, 1024) fmt.Println(nums) // mutateSlice(nums, 1, 512) fmt.Println(nums) // } func appendSlice(sl []int, val int) { sl = append(sl, val) } func mutateSlice(sl []int, idx, val int) { sl[idx] = val }

218

Comment vérifier la charge du CPU et de la mémoire sous Linux?

216

**Condition** Les requêtes à plusieurs URL doivent être effectuées en parallèle. Afficher les statuts HTTP, gérer les erreurs. ```go package main func main() { urls := []string{"[lien]"} // Faire quelque chose } ```

216

Comment trouver une requête lente dans PostgreSQL et comment l'optimiser?

214

En quoi les goroutines diffèrent-elles des threads du système d'exploitation ? À quoi servent-elles ?

211

Qu'est-ce que les index dans les bases de données ? Quels sont les types d'index ?

211

Parle-moi de resp.Body.Close() — pourquoi est-ce nécessaire et pourquoi as-tu mis un tampon de 10 ?

202

Écrivez une requête SQL qui affiche **le nom du client**, sa **ville** et **le montant total** de toutes ses commandes. Seules les clients dont la dépense totale dépasse **1000** unités doivent apparaître dans le résultat. --- **Schéma des données :** 1. **Table `customers` :** - `customer_id` (int) – identifiant unique du client. - `customer_name` (varchar) – nom du client. - `city` (varchar) – ville de résidence. 2. **Table `orders` :** - `order_id` (int) – numéro unique de commande. - `customer_id` (int) – ID du client ayant effectué l'achat. - `total_amount` (decimal) – montant d'une commande spécifique.

202
/3