Sobes.tech

Какво може да се каже за оптималността на плана за заявка? MVCC Има таблица CREATE TABLE orders ( id BIGSERIAL PRIMARY KEY, status TEXT, updated_at TIMESTAMP ); и заявка, която се изпълнява всяка секунда UPDATE orders SET status = 'processed', updated_at = now() WHERE id = 1; След няколко дни забелязвате: • размерът на таблицата значително се е увеличил • заявката SELECT * FROM orders WHERE id = 1 работи по-бавно Въпроси към кандидата 1. Защо таблицата расте, въпреки че редът винаги е един и същ? 2. Каква роля играе MVCC в тази ситуация? 3. Какво трябва да реши този проблем?

Middle+
263

Какво е IAsyncDisposable?

Middle+
228

Знаете ли за vacuum и vacuum full?

Middle+
207

Какво ще изведе програмата с async/await: main отпечатва A, извиква saySomething (статичен, връща Task), чака 5 секунди, след което D?

Middle+
197

Видове транзакции / нива на изолация?

Middle+
195

Какво ще изведе програмата, ако throw е коментирано в посочените места?

Middle+
189

Какъв е друг проблем с многозадачността в метода Init?

Middle+
186

Не работеше ли с Linq2DB?

Middle+
183

Как да направим клас итеративен?

Middle+
179

Какъв стек от технологии използваха?

Middle+
176

IMemoryCache — какво е и кога да го използвате?

Middle+
175

Преглед: приложен код Класът съдържа логиката за обработка на нови поръчки. Извлича поръчките и позициите от базата данни, след което прави HTTP заявка към външен микросервис Stock, който резервира продуктите според позициите на поръчката. Ако всички резервации са успешни, микросервисът потвърждава резервацията на поръчката в Stock и маркира поръчката като обработена. Микросервисът работи в няколко екземпляра, затова методът Process може да се изпълнява паралелно. За да се избегне обработката на същите редове, се използва механизъм за песимистично заключване PostgreSQL Select for update ... skip locked. Имплементацията на IBus изпраща съобщения към 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

Кога се случва затварянето (closure)?

Middle+
164

Разкажи за последното си работно място — Severstal. С какво се занимаваше, колко време работи там, какъв стек използваше?

Middle+
159

Защо структурата не може да наследява?

Middle+
157

Колко памет заема екземплярът Date в 32- и 64-битови системи?

Middle+
154

Как да поправим, за да се показват 0-9?

Middle+
147

IMemoryCache Какви са предимствата и недостатъците на използването на IMemoryCache в приложение? Какво е топ 10 на OWASP? Метрики на кода 1. Какви метрики за качество на кода знаете? 2. Използвали ли сте ги? 3. Как сте ги изчислили? 4. Това е част от CI или ad hoc? Натоварване Какво ще направите, ако вашият сервис (уеб страница) замръзне в тестова или натоварена среда, а локално всичко работи?

Middle+
147

Как работят транзакциите с версиите в MVCC?

Middle+
147

Защо приложение с база данни работи в една среда и се влошава в друга?

Middle+
146
/3