⚡️ Впечатляющая монолитная архитектура Stack Overflow
Компания
Веб-серверы:
- Используется всего 9 локальных веб-серверов IIS.
- Каждый сервер имеет 64 ГБ оперативной памяти и работает на высокооптимизированном коде
- Обработка 450 пиковых запросов в секунду на каждом сервере при использовании всего 12% процессорной мощности
- Код минимизирует потребление памяти и настроен на ограничения сбора мусора
Серверы SQL:
- Организованы в 2 отказоустойчивых кластера по 2 сервера в каждом
- Первый кластер: 1,5 ТБ оперативной памяти на сервер
- Второй кластер: 768 ГБ оперативной памяти на сервер
- Около трети массива данных Q&A находится в памяти.
- Каждый кластер обрабатывает более 10 000 пиковых запросов в секунду при ~15% CPU
Redis:
- Один основной сервер с репликой на 256 ГБ.
- Обработка 60000 пиковых операций в секунду при 2% CPU
Stack Overflow эффективно масштабирует монолитное приложение.
📌 Архитектура наглядно
📌 Подкаст об архитектуре Stack Overflow
@csharp_ci
Компания
Stack Overflow,
поддерживает тенденцию развития микросервисов их сервис обрабатывает 1,3 млрд. просмотров страниц в месяц на своих 200 сайтах, используя удивительно эффективную монолитную архитектуру с минимальной инфраструктурой.Веб-серверы:
- Используется всего 9 локальных веб-серверов IIS.
- Каждый сервер имеет 64 ГБ оперативной памяти и работает на высокооптимизированном коде
.NET
- Обработка 450 пиковых запросов в секунду на каждом сервере при использовании всего 12% процессорной мощности
- Код минимизирует потребление памяти и настроен на ограничения сбора мусора
Серверы SQL:
- Организованы в 2 отказоустойчивых кластера по 2 сервера в каждом
- Первый кластер: 1,5 ТБ оперативной памяти на сервер
- Второй кластер: 768 ГБ оперативной памяти на сервер
- Около трети массива данных Q&A находится в памяти.
- Каждый кластер обрабатывает более 10 000 пиковых запросов в секунду при ~15% CPU
Redis:
- Один основной сервер с репликой на 256 ГБ.
- Обработка 60000 пиковых операций в секунду при 2% CPU
Stack Overflow эффективно масштабирует монолитное приложение.
📌 Архитектура наглядно
📌 Подкаст об архитектуре Stack Overflow
@csharp_ci
https://www.c-sharpcorner.com/article/asp-net-core-web-api-development-with-observer-design-pattern/
@csharp_ci
Please open Telegram to view this post
VIEW IN TELEGRAM
Что выведет на экран этот код?
Anonymous Quiz
32%
1 1 1 1
15%
1.0 1.0 1.0 1.0
9%
1.00 1.00 1.00 1.00
13%
1.000 1.000 1.000 1.000
31%
1 1.0 1.00 1.000
ml.png
3.8 MB
⚡️ Комплексная дорожная карта разработчиков .NET до уровня Сеньора.
Это пошаговое руководство по становлению инженера .NET со ссылками на соответствующие учебные ресурсы.
▪Github
@csharp_ci
Это пошаговое руководство по становлению инженера .NET со ссылками на соответствующие учебные ресурсы.
▪Github
@csharp_ci
Он популярен, поскольку прост в использовании и в то же время быстр.
Однако, еслм вы используете SQL, маппинг результата в объектную модель может оказаться непростой задачей.
Вот наиболее распространенные сценарии работы с маппингом sql:
https://www.milanjovanovic.tech/blog/mastering-dapper-relationship-mappings
@csharp_ci
Please open Telegram to view this post
VIEW IN TELEGRAM
Что выведет на экран этот код?
Anonymous Quiz
7%
Base.Foo(int)
64%
Derived.Foo(int)
20%
Derived.Foo(object)
9%
Derived.Foo(int) Base.Foo(int)
Какой метод быстрее?
Anonymous Quiz
29%
Method1
16%
Method2
56%
Одинаковые по скорости (отклонение меньше 5%)
🔥 Дайджест полезных материалов из мира C# за неделю
Почитать:
— Книга «Blazor в действии» в правильном переводе команды DotNetRu
— Гуманитарий с 0 знаний в программировании. 3 часть. Первые шаги в C# (и слегка Unity)
— Использование расширения VS Code «PVS-Studio» для эффективной борьбы с ошибками в C# коде
— Оплата в Telegram | API Yoomoney С#
— EF Core. Как 1 строчка может добавить x4 к быстродействию запросов к БД?
— Дизайним абилки как в X-COM
— .NET 7 против российской криптографии. Часть 2. Штампы времени
— Как я писала программу на C#, которая шифрует текст по принципу «Квадрат Полибия»
— Как провести курс для разработчиков (за 1.5 млн) в маленькой компании и не сойти с ума
— Microsoft PowerToys: Король GitHub среди C# проектов с C++ ошибками
— From MS-Access to EF Core (C#)
— Explorando el Mundo de los Archivos de Recurso en C# con Visual Studio
— C# - Reducing Lock Contention with ReaderWriterLockSlim
— Game Dev Digest — Issue #212 - Parody, Performance, Modeling and more
— Building a Data Warehouse with ETLBox: A .NET Developer's Guide
— From Angular to Blazor: Unleashing the C# Magic!
— C# - Caching Data with MemoryCache
— Using the PVS-Studio extension for VS Code to effectively handle errors in C# code
— Async/Await: Para que serve o CancellationToken?
— C# - Asynchronous Initialization of Singleton Pattern
Посмотреть:
🌐 Using P/Invoke in C#: Windows API Integration Made Easy! (⏱ 15:45)
🌐 Mastering Code with Rubber Duck Debugging 🦆 Unlock Your Programming Potential! (⏱ 01:00)
🌐 "Your Code Has a SQL Injection!" | Code Cop #007 (⏱ 12:11)
🌐 The Missing Piece of Your .NET Logs (⏱ 08:13)
🌐 Every New Feature Added in C# 12 (⏱ 14:19)
🌐 The Coolest Way To Await Multiple Tasks in .NET (⏱ 09:24)
Хорошего дня!
@csharp_ci
Почитать:
— Книга «Blazor в действии» в правильном переводе команды DotNetRu
— Гуманитарий с 0 знаний в программировании. 3 часть. Первые шаги в C# (и слегка Unity)
— Использование расширения VS Code «PVS-Studio» для эффективной борьбы с ошибками в C# коде
— Оплата в Telegram | API Yoomoney С#
— EF Core. Как 1 строчка может добавить x4 к быстродействию запросов к БД?
— Дизайним абилки как в X-COM
— .NET 7 против российской криптографии. Часть 2. Штампы времени
— Как я писала программу на C#, которая шифрует текст по принципу «Квадрат Полибия»
— Как провести курс для разработчиков (за 1.5 млн) в маленькой компании и не сойти с ума
— Microsoft PowerToys: Король GitHub среди C# проектов с C++ ошибками
— From MS-Access to EF Core (C#)
— Explorando el Mundo de los Archivos de Recurso en C# con Visual Studio
— C# - Reducing Lock Contention with ReaderWriterLockSlim
— Game Dev Digest — Issue #212 - Parody, Performance, Modeling and more
— Building a Data Warehouse with ETLBox: A .NET Developer's Guide
— From Angular to Blazor: Unleashing the C# Magic!
— C# - Caching Data with MemoryCache
— Using the PVS-Studio extension for VS Code to effectively handle errors in C# code
— Async/Await: Para que serve o CancellationToken?
— C# - Asynchronous Initialization of Singleton Pattern
Посмотреть:
🌐 Using P/Invoke in C#: Windows API Integration Made Easy! (⏱ 15:45)
🌐 Mastering Code with Rubber Duck Debugging 🦆 Unlock Your Programming Potential! (⏱ 01:00)
🌐 "Your Code Has a SQL Injection!" | Code Cop #007 (⏱ 12:11)
🌐 The Missing Piece of Your .NET Logs (⏱ 08:13)
🌐 Every New Feature Added in C# 12 (⏱ 14:19)
🌐 The Coolest Way To Await Multiple Tasks in .NET (⏱ 09:24)
Хорошего дня!
@csharp_ci
Узнайте о чистоте функций.
▪️ Всегда возвращают один и тот же результат для одних и тех же входных аргументов
▪️ Не имеют побочных эффектов
Чистые функции лежат в основе функционального программирования.
Вот как начать работу с ними в C#:
📌 Статья
@csharp_ci
Please open Telegram to view this post
VIEW IN TELEGRAM
🚀.NET Aspire - это новый стек, который должен помочь нам создавать облачные нативные решения.
Microsoft представила выпуск открытой платформы .NET 8, созданной благодаря унификации продуктов
.NET Framework, .NET Core и Mono.
На основе
.NET 8
можно создавать многоплатформенные приложения для браузера, облачных систем, рабочего стола, IoT-устройств и мобильных платформ, используя единые библиотеки и общий процесс сборки, не зависящий от типа приложения. Сборки .NET SDK 8, .NET Runtime 8 и ASP.NET Core Runtime 8 сформированы для Linux, macOS и Windows. .NET Desktop Runtime 8 поставляется только для Windows. Ветка .NET 8 отнесена к категории LTS и будет сопровождаться в течение трёх лет до ноября 2026 года. Все связанные с проектом наработки распространяются под лицензией MIT.
В состав .NET 8 входит Runtime с JIT-компилятором RyuJIT, спецификации API, библиотеки WPF, Windows Forms, WinUI, Entity Framework, интерфейс командной строки dotnet, а также инструменты для разработки микросервисов, библиотек, серверных, графических и консольных приложений. Отдельно опубликованы стек для разработки web-приложений ASP.NET Core 8.0, ORM-прослойка Entity Framework Core 8.0 (драйверы имеются, в том числе, для SQLite и PostgreSQL), библиотека WPF 8 (Windows Presentation Foundation), фреймворк Windows Forms 8 для разработки GUI, платформа Aspire 8 для создания приложений Cloud Native, фреймворк MAUI 8 для разработки многоплатформенных интерфейсов пользователя, а также выпуски языков C# 12 и F# 8.
Поддержка .NET 8.0 и C# 12 включена в свободный редактор кода Visual Studio Code.
Подробнее:
https://devblogs.microsoft.com/dotnet/introducing-dotnet-aspire-simplifying-cloud-native-development-with-dotnet-8/
@csharp_ci
Please open Telegram to view this post
VIEW IN TELEGRAM
Если вы сомневаетесь, стоит ли переходить на последнюю версию #dotnet, то одно только повышение производительности должно вас убедить.
📌 Что нового в .NET 8?
@csharp_ci
📌 Что нового в .NET 8?
@csharp_ci
Что выведет на экран этот код?
Anonymous Quiz
59%
Exception on Task 1
22%
A task was canceled
18%
Task 3
🔥 Дайджест полезных материалов из мира C# за неделю
Почитать:
— «Внешние» сортировки: что это, зачем это и как это реализовать?
— Лучшие ресурсы чтобы выучить Git и Github
— C#: [required] keyword, что это?
— Что нового в .NET 8?
— В каких аспектах улучшилась производительность в ASP NET Core 8
— Async/Await: O que tem de novo no .NET 8?
— C# - Default Interface Methods
— Game Dev Digest — Issue #213 - Say Hello To Unity 6
— 🚀 Default Lambda Expression Parameters in C# 12
— What's new in .NET 8?
— C# - Use Record Types for Immutable Data Structures
— What are the Basics of Comments in C# 💭
— Trabalhando com Queues (Filas) no RabbitMQ utilizando C#/.NET
— Alias any Type with C# 12
— Using Primary Constructors in C# 12
Посмотреть:
🌐 "Always Use Any over Count in LINQ" | Code Cop #008 (⏱ 09:56)
🌐 Should You Use The Async Suffix in C#? (⏱ 08:03)
Хорошего дня!
#csharp #dotnet #digest
@csharp_ci
Почитать:
— «Внешние» сортировки: что это, зачем это и как это реализовать?
— Лучшие ресурсы чтобы выучить Git и Github
— C#: [required] keyword, что это?
— Что нового в .NET 8?
— В каких аспектах улучшилась производительность в ASP NET Core 8
— Async/Await: O que tem de novo no .NET 8?
— C# - Default Interface Methods
— Game Dev Digest — Issue #213 - Say Hello To Unity 6
— 🚀 Default Lambda Expression Parameters in C# 12
— What's new in .NET 8?
— C# - Use Record Types for Immutable Data Structures
— What are the Basics of Comments in C# 💭
— Trabalhando com Queues (Filas) no RabbitMQ utilizando C#/.NET
— Alias any Type with C# 12
— Using Primary Constructors in C# 12
Посмотреть:
🌐 "Always Use Any over Count in LINQ" | Code Cop #008 (⏱ 09:56)
🌐 Should You Use The Async Suffix in C#? (⏱ 08:03)
Хорошего дня!
#csharp #dotnet #digest
@csharp_ci
В этом курсе Гэвин обучает вас некоторым более продвинутым концепциям C#.
Вы узнаете о делегатах, событиях, дженериках, асинхронном программировании, атрибутах и многом другом.
▪Видео
▪Код
@csharp_ci
Please open Telegram to view this post
VIEW IN TELEGRAM