Sobes.tech

Golang

Modéliser un système bancaire simple: - Table `accounts`: - `id`, - `owner_id`, - `currency`, - `created_at`. - Table `transactions`: - `id`, - `account_id`, - `amount`, - `created_at`. **Exigences :** 1. Écrire un SQL pour créer le schéma avec les contraintes nécessaires (NOT NULL, FK, CHECK sur `amount` non nul). 2. Écrire une requête : - obtenir le solde actuel du compte par `account_id` (somme de `amount`). 3. Difficulté supplémentaire : supporter débit/crédit (enregistrement double). Nettoyage

Middle+
213

Comment fonctionne le ramasse-miettes en Go ? Décrivez les phases et l'algorithme.

Middle+
182

Impression générale de l'entretien, niveau du candidat, recommandations

Middle+
172

Quelles primitives de synchronisation existent en Go ? Quelle est la différence entre Mutex et RWMutex ? Quand utiliser les atomics ?

Middle+
168

Comment fonctionne une map en Go ? Parlez de la structure interne, des buckets, des collisions.

Middle+
161

Quels sont les avantages des goroutines par rapport aux threads du système d'exploitation?

Middle+
156

Comment optimiser la recherche dans une base de données ? Qu'est-ce que les index et quelle est leur complexité ?

Middle+
154

Parlez-nous du planificateur de Go (scheduler). Comment fonctionne-t-il ? Qu'est-ce que le hand-off ?

Middle+
148

3. Complexité : prendre en charge le débit/crédit (écriture double). Nettoyage CREATE TABLE comptes ( id BIGSERIAL PRIMARY KEY, owner_id BIGINT NOT NULL, currency VARCHAR(3) NOT NULL, created_at TIMESTAMP NOT NULL DEFAULT now() ); CREATE TABLE transactions ( id BIGSERIAL PRIMARY KEY, account_id BIGINT NOT NULL REFERENCES comptes(id), amount NUMERIC(18,2) NOT NULL CHECK (amount <> 0), created_at TIMESTAMP NOT NULL DEFAULT now() ); CREATE INDEX idx_transactions_account_id ON transactions(account_id); SELECT COALESCE(sum(amount), 0) AS balance FROM transactions WHERE account_id = :account_id; ALTER TABLE transactions ADD COLUMN type VARCHAR(6) NOT NULL CHECK (type IN ('debit', 'credit')); ALTER TABLE transactions DROP CONSTRAINT transactions_amount_check, ADD CONSTRAINT transactions_amount_check CHECK (amount > 0); SELECT COALESCE( SUM(CASE WHEN type = 'credit' THEN amount WHEN type = 'debit' THEN - amount ) AS balance FROM transactions WHERE account_id = :account_id;

Middle+
123

Modéliser un système bancaire simple: - Table `accounts`: - `id`, - `owner_id`, - `currency`, - `created_at`. - Table `transactions`: - `id`, - `account_id`, - `amount`, - `created_at`. **Exigences:** 1. Écrire SQL pour créer le schéma avec les contraintes nécessaires (NOT NULL, FK, CHECK sur `amount` non nul). 2. Écrire une requête: - obtenir le solde actuel du compte par `account_id` (somme de `amount`). 3. Difficulté supplémentaire : supporter débit/crédit (enregistrement double). Nettoyage.

Middle+
119