Sobes.tech

Šta se može reći o optimalnosti plana upita? MVCC Postoji tabela CREATE TABLE orders ( id BIGSERIAL PRIMARY KEY, status TEXT, updated_at TIMESTAMP ); i upit koji se izvršava svake sekunde UPDATE orders SET status = 'processed', updated_at = now() WHERE id = 1; Nakon nekoliko dana primećujete: • veličina tabele je znatno porasla • upit SELECT * FROM orders WHERE id = 1 radi sporije Pitanja za kandidata 1. Zašto tabela raste, iako je red uvek isti? 2. Kakvu ulogu igra MVCC u ovoj situaciji? 3. Šta bi trebalo da reši ovaj problem?

Middle+
279

Šta je IAsyncDisposable?

Middle+
241

Koji je još jedan problem sa višezadašnošću u metodi Init?

Middle+
211

Da li poznate vacuum i vacuum full?

Middle+
211

Šta će prikazati program sa async/await: main ispisuje A, poziva saySomething (statički, vraća Task), čeka 5 sekundi, zatim D?

Middle+
207

Типови трансакција / нивоа изолације?

Middle+
199

Šta će prikazati program ako je throw odkomentarisano na navedenim mestima?

Middle+
192

Није радило са Linq2DB?

Middle+
188

Kako napraviti klasu iterabilnom?

Middle+
185

Koji skup tehnologija su koristili?

Middle+
182

IMemoryCache — шта је то и када користити?

Middle+
180

Pregled: primenjeni kod Klasa sadrži logiku za obradu novih porudžbina. Izvlači porudžbine i pozicije iz baze podataka, zatim pravi HTTP poziv ka eksternom mikroservisu Stock, u kojem rezerviše proizvode prema pozicijama porudžbine. Ako su sve rezervacije uspešno izvršene, mikroservis potvrđuje rezervaciju porudžbine u Stock i označava porudžbinu kao obrađenu. Mikroservis se pokreće u više instanci, pa metoda Process može biti izvršena paralelno. Da bi se izbegla obrada istih redova, koristi se mehanizam pesimističkog zaključavanja PostgreSQL Select for update ... skip locked. Implementacija IBus šalje poruke u 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+
179

Ispričaj o posljednjem radnom mjestu — Severstal. Čime si se bavio, koliko si radio tamo, koji je bio tehnološki stack?

Middle+
169

Kada dolazi do zatvaranja (closure)?

Middle+
168

Zašto struct ne može da nasleđuje?

Middle+
165

Koliko memorije zauzima primer Date u 32- i 64-bitnim sistemima?

Middle+
160

Zašto aplikacija sa bazom podataka radi u jednom okruženju, a u drugom se pogoršava?

Middle+
152

IMemoryCache Koje su prednosti i mane korišćenja IMemoryCache u aplikaciji? Šta je top 10 OWASP? Metričke kod 1. Koje metrike kvaliteta koda poznajete? 2. Da li ste ih koristili? 3. Kako ste ih izračunali? 4. Da li su deo CI ili ad hoc? Opterećenje Šta biste uradili ako se vaš servis (web stranica) zamrzne u testnom ili opterećenom okruženju, a lokalno sve radi?

Middle+
152

Kako popraviti da se prikazuje 0-9?

Middle+
152

Da li će se redosled izlaza promeniti ako odkomentarišete throw?

Middle+
151
/3