Opis
W świecie programistów aplikacji panuje kult wydajności: najważniejsze są szybkość i efektywność działania kodu. Dostrajanie elementów dużych aplikacji staje się wirtuozerią: wymaga eliminowania wąskich gardeł, optymalizacji kodu, pilnowania każdego bitu pamięci. Niewielkie braki w rozwiązaniach w przypadku rozbudowanych systemów przeradzają się w wielkie problemy. Dla programisty oznacza to, że jeśli chce pracować na prawdziwie profesjonalnym poziomie, musi perfekcyjnie opanować zagadnienia związane ze skalarnością, z modularnością i efektywnością kodu.
Ta książka jest przeznaczona dla programistów .NET, którzy chcą przyspieszyć pracę swoich aplikacji. Opisuje nowe funkcje C# 7 i .NET Core 2.0 oraz ich wpływ na wydajność kodu. Przedstawia takie mechanizmy .NET Core jak proces kompilacji, odzyskiwanie pamięci czy wykorzystywanie wielu rdzeni procesora. Prezentuje koncepcje wielowątkowości i programowania asynchronicznego oraz wyjaśnia znaczenie optymalizacji struktur danych. Omawia też wzorce i najlepsze praktyki projektowania aplikacji w .NET Core, a także zagadnienia bezpieczeństwa i elastyczności oraz architektury mikrousług. Wiedza zawarta w książce pozwoli na pisanie modularnych, skalowalnych, bezpiecznych i niezależnie wdrażanych aplikacji.
W tej książce między innymi:
nowości w C# 7 i .NET Core 2.0
struktury danych i optymalizacja kodu w C#
zarządzanie pamięcią i zapobieganie wyciekom pamięci
zapewnianie odporności na błędy aplikacji
narzędzia do monitorowania wydajności aplikacji: App Metrics, InfluxDB i Grafana
wytyczne projektowania i dobre praktyki programistyczne
C# i .NET Core: wielowątkowość - współbieżność - wydajność!
O autorze
Ovais Mehboob Ahmed Khan jest architektem z 14-letnim doświadczeniem w programowaniu, a także autorem książek i innych publikacji technicznych. Pracował w kilku firmach informatycznych w Pakistanie, USA oraz na Bliskim Wschodzie. Obecnie jest zatrudniony w państwowej firmie w Dubaju. Otrzymał tytuł MVP. Specjalizuje się w takich technologiach jak Microsoft .NET, chmura i tworzenie aplikacji internetowych.