Sobes.tech

Čo sa dá povedať o optimalite plánu dotazu? MVCC Existuje tabuľka CREATE TABLE orders ( id BIGSERIAL PRIMARY KEY, status TEXT, updated_at TIMESTAMP ); a dotaz, ktorý sa spúšťa každú sekundu UPDATE orders SET status = 'processed', updated_at = now() WHERE id = 1; Po niekoľkých dňoch si všimnete: • veľkosť tabuľky sa výrazne zväčšila • dotaz SELECT * FROM orders WHERE id = 1 beží pomalšie Otázky pre kandidáta 1. Prečo tabuľka rastie, aj keď je riadok vždy rovnaký? 2. Akú úlohu hrá MVCC v tejto situácii? 3. Čo by malo tento problém vyriešiť?

Middle+
263

Čo je IAsyncDisposable?

Middle+
228

Poznáte vacuum a vacuum full?

Middle+
208

Čo vytlačí program s async/await: main vytlačí A, zavolá saySomething (statický, vráti Task), počká 5 sekúnd, potom D?

Middle+
197

Typy transakcií / úrovne izolácie?

Middle+
195

Čo zobrazí program, ak je throw odkomentované na uvedených miestach?

Middle+
189

Aký je ďalší problém s viacvláknovým spracovaním v metóde Init?

Middle+
187

Nepracovalo to s Linq2DB?

Middle+
183

Ako spraviť triedu iterovateľnou?

Middle+
179

Aký technologický stack použili?

Middle+
176

IMemoryCache — čo je to a kedy použiť?

Middle+
175

Prehľad: použitý kód Trieda obsahuje logiku spracovania nových objednávok. Vyberá objednávky a pozície z databázy, potom vykonáva HTTP volanie na externý mikroservis Stock, v ktorom rezervuje produkty podľa pozícií objednávky. Ak sú všetky rezervácie úspešné, mikroservis potvrdí rezerváciu objednávky v Stock a označí objednávku ako spracovanú. Mikroservis beží v niekoľkých inštanciách, preto sa metóda Process môže vykonávať paralelne. Aby sa zabránilo spracovaniu rovnakých riadkov, používa sa mechanizmus pesimistického zamykania PostgreSQL Select for update ... skip locked. Implementácia IBus odosiela správy do RabbitMq. ```csharp public sealed class PendingOrdersProcessor { public async Task PendingOrdersProcessor(ILogger logger, IBus bus, HttpStockService st { var env = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT"); var cs = _cs[env]; _db = new OrdersRepository(cs); _bus = bus; logger = logger; ``` ```csharp _stockService = stockService; } private readonly ILogger _logger; private readonly IOrdersRepository _db; private readonly IStockService _stockService; private readonly IBus _bus; private static readonly Dictionary<string, string> _cs = new { { "Development", "User ID=root;Password=myPassword;Host=localhost;Port=5432;Database=myDataBase" }, { "Production", "User ID=root;Password=myPassword;Host=prod-db;Port=5432;Database=" "Pooling=true;Min Pool Size=0;Max Pool Size=1;" } }; ```

Middle+
170

Kedy dochádza k uzavretiu (closure)?

Middle+
165

Povedaj mi o poslednom mieste práce — Severstal. Čim si se ukvarjal, koliko si tam delal, kateri je bil tehnološki stack?

Middle+
159

Prečo štruktúra nemôže dediť?

Middle+
158

Koľko pamäte zaberá inštancia Date v 32- a 64-bitových systémoch?

Middle+
155

Ako opraviť, aby sa zobrazovalo 0-9?

Middle+
148

IMemoryCache Aké sú výhody a nevýhody používania IMemoryCache v aplikácii? Čo je top 10 OWASP? Metriky kódu 1. Aké metriky kvality kódu poznáte? 2. Používali ste ich? 3. Ako ste ich vypočítali? 4. Sú súčasťou CI alebo ad hoc? Zaťaženie Čo by ste urobili, ak by sa vaša služba (webová stránka) zasekla v testovacom alebo zaťažovacom prostredí, ale lokálne všetko fungovalo?

Middle+
148

Ako fungujú transakcie s verziami v MVCC?

Middle+
147

Prečo aplikácia s databázou funguje v jednom prostredí a v inom sa zhoršuje?

Middle+
146
/3