Ką galima pasakyti apie užklausos plano optimizaciją? MVCC Yra lentelė CREATE TABLE orders ( id BIGSERIAL PRIMARY KEY, status TEXT, updated_at TIMESTAMP ); ir užklausa, kuri vykdoma kas sekundę UPDATE orders SET status = 'processed', updated_at = now() WHERE id = 1; Po kelių dienų pastebite: • lentelės dydis žymiai padidėjo • užklausa SELECT * FROM orders WHERE id = 1 veikia lėčiau Kandidato klausimai 1. Kodėl lentelė auga, nors eilutė visada ta pati? 2. Kokią vaidmenį atlieka MVCC šioje situacijoje? 3. Kas turėtų išspręsti šią problemą?
C#
Kas yra IAsyncDisposable?
Koks dar vienas problemos su daugialypiu vykdymu Init metode?
Ar žinote vacuum ir vacuum full?
Ką parodys programėlė su async/await: main išspausdina A, iškviečia saySomething (statinis, grąžina Task), laukia 5 sekundes, tada D?
Operacijų tipai / izoliacijos lygiai?
Ką parodys programa, jei throw bus iškomentuotas nurodytose vietose?
Nėjo su Linq2DB?
Kaip padaryti klasę iteruojamą?
IMemoryCache — kas tai yra ir kada naudoti?
Kokį technologijų rinkinį naudojo?
Peržiūra: taikomas kodas Klasė apima logiką, skirtą naujų užsakymų apdorojimui. Ji ištraukia užsakymus ir pozicijas iš duomenų bazės, tada atlieka HTTP užklausą į išorinį mikroservisą Stock, kuriame rezervuoja prekes pagal užsakymo pozicijas. Jei visi rezervavimai sėkmingai įvyksta, mikroservisas patvirtina užsakymo rezervavimą Stock ir pažymi užsakymą kaip apdorotą. Mikroservisas veikia keliuose egzemplioriuose, todėl metodas Process gali būti vykdomas lygiagrečiai. Norint išvengti tų pačių eilučių apdorojimo, naudojamas pesimistinio užrakto mechanizmas PostgreSQL Select for update ... skip locked. IBus įgyvendinimas siunčia žinutes į 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;" } }; ```
Papaskinkite apie paskutinę darbo vietą — Severstal. Ką veikėte, kiek laiko dirbote, kokį technologijų rinkinį naudojote?
Kada įvyksta uždarymas (closure)?
Kodėl struktūra negali paveldėti?
Kiek atminties užima Date pavyzdys 32 ir 64 bitų sistemose?
Ar išjungus throw, išvedimo tvarka pasikeis?
Kaip ištaisyti, kad rodytų 0-9?
Kodėl duomenų bazės taikymas veikia vienoje aplinkoje ir blogėja kitoje?
IMemoryCache Kokios yra IMemoryCache naudojimo privalumai ir trūkumai? Kas yra OWASP top 10? Kodo metrikos 1. Kokias kokybės metrikas žinote? 2. Ar jas naudojote? 3. Kaip jas skaičiavote? 4. Ar jos yra CI dalis ar ad hoc? Krovinys Ką darytumėte, jei jūsų paslauga (svetainė) užstringa testavimo ar apkrovos aplinkoje, bet vietoje viskas veikia?