Sobes.tech

Golang

Modelujte jednoduchý bankovní systém: - Tabulka `accounts`: - `id`, - `owner_id`, - `currency`, - `created_at`. - Tabulka `transactions`: - `id`, - `account_id`, - `amount`, - `created_at`. **Požadavky:** 1. Napište SQL pro vytvoření schématu s potřebnými omezeními (NOT NULL, FK, CHECK na nenulové `amount`). 2. Napište dotaz: - získat aktuální zůstatek účtu podle `account_id` (součet `amount`). 3. Přidaná obtížnost: podpora debet/kredit (dvojí zápis). Úklid

Middle+
172

Jak funguje garbage collector v Go? Popište fáze a algoritmus.

Middle+
172

Celkový dojem z pohovoru, úroveň kandidáta, doporučení

Middle+
160

Jaké jsou výhody goroutines oproti vláknům OS?

Middle+
146

Jak optimalizovat hledání v databázi? Co jsou indexy a jaká je jejich složitost?

Middle+
144

Povězte nám o plánovači Go (scheduler). Jak funguje? Co je to hand-off?

Middle+
136

Jak je map v Go uspořádána? Povězte o vnitřní struktuře, buckets, kolizích.

Middle+
122

Jaké primitives synchronizace jsou v Go? Čím se liší Mutex od RWMutex? Kdy používat atomiky?

Middle+
122

3. Složitost: podpora debetu/kreditu (dvojí zápis). Úklid CREATE TABLE účty ( id BIGSERIAL PRIMARY KEY, owner_id BIGINT NOT NULL, currency VARCHAR(3) NOT NULL, created_at TIMESTAMP NOT NULL DEFAULT now() ); CREATE TABLE transakce ( id BIGSERIAL PRIMARY KEY, account_id BIGINT NOT NULL REFERENCES účty(id), amount NUMERIC(18,2) NOT NULL CHECK (amount <> 0), created_at TIMESTAMP NOT NULL DEFAULT now() ); CREATE INDEX idx_transakce_account_id ON transakce(account_id); SELECT COALESCE(sum(amount), 0) AS balance FROM transakce WHERE account_id = :account_id; ALTER TABLE transakce ADD COLUMN type VARCHAR(6) NOT NULL CHECK (type IN ('debit', 'credit')); ALTER TABLE transakce DROP CONSTRAINT transakce_amount_check, ADD CONSTRAINT transakce_amount_check CHECK (amount > 0); SELECT COALESCE( SUM(CASE WHEN type = 'credit' THEN amount WHEN type = 'debit' THEN - amount ) AS balance FROM transakce WHERE account_id = :account_id;

Middle+
108

Modelujte jednoduchý bankovní systém: - Tabulka `accounts`: - `id`, - `owner_id`, - `currency`, - `created_at`. - Tabulka `transactions`: - `id`, - `account_id`, - `amount`, - `created_at`. **Požadavky:** 1. Napište SQL pro vytvoření schématu s potřebnými omezeními (NOT NULL, FK, CHECK na nenulové `amount`). 2. Napište dotaz: - získat aktuální zůstatek účtu podle `account_id` (součet `amount`). 3. Ztížení: podpora debet/kredit (dvojí zápis). Úklid.

Middle+
94