Sobes.tech

Czy można używać async/await wewnątrz locka? Dlaczego?

245

Dlaczego async void jest złym rozwiązaniem?

230

Jak środowisko wykonawcze rozpoznaje, że operacja asynchroniczna została zakończona i należy kontynuować pracę?

189

Co zostanie wyświetlone w konsoli? ```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(); } } ```

186

Czym jest struktura? Czy jest to typ wartościowy czy referencyjny? Gdzie jest przydzielana pamięć? Jakie są granice efektywnego korzystania ze struktur?

167

Czym są indeksy w bazie danych? Rodzaje indeksów (B-tree, Hash, Full-text). Indeks klastrowy vs nieklastrowy. Indeksy pokrywające.

162

Jakie sterty znasz oprócz głównego (SOH)? Opowiedz mi o Heapie Dużych Obiektów i Heapie Zakotwiczonych Obiektów.

159

Czym jest consistent hashing (konsystentne haszowanie)? Wirtualne shardy/buckety?

154

Zadanie z async/await: jak działa async/await? W co się rozwija? Jaka jest różnica między Task a ValueTask?

153

Zadanie z metodami wirtualnymi: co zostanie wyświetlone? Dla której metody jest więcej tików i dlaczego?

145

Na czym polega istota koncepcji pokoleń GC (0, 1, 2)? Co optymalizujemy?

140

Opowiedz o trybach pracy GC: serwerowym i desktopowym. Kiedy używać którego?

140

Czym jest ConfigureAwait(false)? Do czego służy? Czym jest kontekst synchronizacji?

137

Opowiedz o modyfikatorach parametrów ref, in, out i ich różnicach. Czym jest readonly ref i ref readonly?

132

Przydzielono Ci zadanie przeglądu kodu od kolegi Jakie problemy widzisz w kodzie? ```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); } } } } ```

129

Zadanie z łańcuchami: co zostanie wyświetlone? Jak jest przeciążony operator == dla łańcuchów? Czym jest pula internowania łańcuchów?

127

Zadanie z LINQ: co zostanie wyświetlone? Jaki jest typ zmiennej query? W czym różni się IEnumerable od IQueryable?

126

Wyjaśnij, jak przydzielana jest pamięć na stosie i na stercie. Czy typy wartości zawsze umieszczane są na stosie?

125
/2