Sobes.tech

Golang

Modelujte jednoduchý bankový systém: - Tabuľka `accounts`: - `id`, - `owner_id`, - `currency`, - `created_at`. - Tabuľka `transactions`: - `id`, - `account_id`, - `amount`, - `created_at`. **Požiadavky:** 1. Napíšte SQL na vytvorenie schémy s potrebnými obmedzeniami (NOT NULL, FK, CHECK na nenulové `amount`). 2. Napíšte dotaz: - získať aktuálny zostatok účtu podľa `account_id` (súčet `amount`). 3. Pridaná zložitosť: podpora debet/kredit (dvojitý zápis). Čistenie

Middle+
213

Ako funguje garbage collector v Go? Opíšte fázy a algoritmus.

Middle+
182

Celkový dojem z pohovoru, úroveň kandidáta, odporúčania

Middle+
172

Aké primitives synchronizácie sú v Go? Čo je rozdiel medzi Mutex a RWMutex? Kedy použiť atomiky?

Middle+
168

Ako funguje map v Go? Povedzte o vnútornej štruktúre, buckets, kolíziách.

Middle+
165

Aké sú výhody goroutines oproti vlákna OS?

Middle+
156

Ako optimalizovať vyhľadávanie v databáze? Čo sú indexy a aká je ich zložitosť?

Middle+
154

Povedzte nám o plánovači Go (scheduler). Ako funguje? Čo je to hand-off?

Middle+
148

3. Zložitosti: podpora debetu/kreditu (dvojitý zápis). Čistenie 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 transakcie ( 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_transakcie_account_id ON transakcie(account_id); SELECT COALESCE(sum(amount), 0) AS balance FROM transakcie WHERE account_id = :account_id; ALTER TABLE transakcie ADD COLUMN type VARCHAR(6) NOT NULL CHECK (type IN ('debit', 'credit')); ALTER TABLE transakcie DROP CONSTRAINT transakcie_amount_check, ADD CONSTRAINT transakcie_amount_check CHECK (amount > 0); SELECT COALESCE( SUM(CASE WHEN type = 'credit' THEN amount WHEN type = 'debit' THEN - amount ) AS balance FROM transakcie WHERE account_id = :account_id;

Middle+
123

Modelujte једноставан банкарски систем: - Табела `accounts`: - `id`, - `owner_id`, - `currency`, - `created_at`. - Табела `transactions`: - `id`, - `account_id`, - `amount`, - `created_at`. **Захтеви:** 1. Напишите SQL за креирање шеме са потребним ограничењима (NOT NULL, FK, CHECK на ненулти `amount`). 2. Напишите упит: - добијте тренутни салдо рачуна по `account_id` (збир `amount`). 3. Додатно: подршка за дебит/кредит (дуги запис). Чишћење.

Middle+
119