Vai var izmantot async/await iekšā slēdzenes? Kāpēc?
C#
Kāpēc async void ir slikta prakse?
Kā izpildes vide saprot, ka asīnhronā darbība ir pabeigta un jāturpina darbs?
Ko būs izvadīts konsolē? ```csharp public class Program { static void Main() { var myClassObj = new MyClass(); var myStructObj = new MyStruct(); MethodA(myClassObj.Num); // MethodB(myStructObj); MethodC(myClassObj); MethodD(myClassObj); Console.WriteLine(myClassObj.Num); // ? Console.WriteLine(myStructObj.Num); // ? } private static void MethodA(int num) { num = num + 1; } private static void MethodB(MyStruct myStruct) { myStruct.Num += 1; } private static void MethodC(MyClass myClass) { myClass.Num += 1; } private static void MethodD(MyClass myClass) { myClass = new MyClass(); } } ```
Kas ir struktūra? Vai tas ir vērtības tips vai atsauces tips? Kur tiek piešķirta atmiņa? Kādi ir efektīvas struktūru izmantošanas ierobežojumi?
Kas ir indeksi datu bāzē? Indeksu veidi (B-tree, Hash, Full-text). Klastrēts vs neklastrēts indekss. Segtie indeksi.
Kuras kaudzes pazīsti, izņemot galveno (SOH)? Pastāsti par Large Object Heap un Pinned Object Heap.
Kas ir konsekventā hashēšana (consistent hashing)? Virtuālie shard'i/bucket'i?
Uzdevums ar async/await: kā darbojas async/await? Kur tas attīstās? Kāda ir atšķirība starp Task un ValueTask?
Uzdevums ar virtuālām metodēm: kas tiks izvadīts? Kurai metodei ir vairāk tiku un kāpēc?
Pastāsti par GC darba režīmiem: servera un datora. Kad izmantot kuru?
Kāda ir GC paaudžu (0, 1, 2) koncepcijas būtība? Ko mēs optimizējam?
Kas ir GC saknes? Kādas tās ir?
Kas ir ConfigureAwait(false)? Kam tas tiek? Kas ir sinhronizācijas konteksts?
Pastāsti par ref, in, out parametru modifikatoriem un to atšķirībām. Kas ir readonly ref un ref readonly?
SELECT * FROM t_sensor_data;
Jums tika piešķirts kolēģa koda pārskatīšanas uzdevums Kādus problēmas redzat kodā? ```csharp namespace SomeProject.Data { public class UserRepository { public Task SaveUser(User user, Dictionary<int,string> shards) { var shardIdx = user.Id % 3; var shardAddress = shards[shardIdx]; using(var shardService = new ShardService(shardAddress)) { return shardService.SaveUserAsync(user); } } } } ```
Uzdevums ar virknes: kas tiks izvadīts? Kā ir pārrakstīts == operators virkņu gadījumā? Kas ir virkņu internēšanas baseins?
Izskaidrojiet, kā atmiņa tiek piešķirta stekā un heapā. Vai vienmēr nozīmīgie tipi tiek izvietoti stekā?
Uzdevums ar LINQ: kas tiks izvadīts? Kāds ir mainīgā query tips? Kāda ir atšķirība starp IEnumerable un IQueryable?