Что выведет на экран это код?
Anonymous Quiz
26%
Static Constructor
15%
Default Constructor
14%
Default Constructor Static Constructor
31%
Static Constructor Default Constructor
14%
Ничего не будет выведено
Когда популярность сервера
Midjourney от Discord
резко возросла, он натолкнулся на : ограничение в 1 миллион участников. Это история о том, как небольшая команда инженеров Discord превратила эту проблему в выдающееся достижение.Задача: Представьте себе виртуальное пространство, настолько популярное, что оно трещит по швам. Будучи одним из самых быстрорастущих серверов Discord за всю историю,
Midjourney
столкнулся именно с таким сценарием, поскольку количество участников росло геометрически. Discord платформавремени, работающая на
Erlang/Elixir,
затрещала по швам под огромным давлением. С каждым новым участником сложность и нагрузка росли в геометрической прогрессии.Решения:
Чтобы свести к минимуму перегрузку, инженеры внедрили "
пассивные
" соединения, гарантирующие, что неактивные пользователи не будут создавать лишней нагрузки.Переработка системы реле позволила более эффективно распределять работу за счет более избирательной обработки пользовательских данных.
Параллельная обработка: Используя ETS Erlang, команда разработчиков обеспечила параллельную обработку для таких тяжелых операций, как оповещение всех пользователей что значительно снизило нагрузку на систему.
ETS - инструмент для хранения объектов Elixir и Erlang в памяти. Он способен хранить огромные объемы данных и предоставляет доступ за фиксированное время.
Не все было гладко. Некоторые многообещающие идеи, такие как разгрузка Manifold, дали обратный эффект, увеличив нагрузку на сервера.
↪️ Читать подробнее
@csharp_ci
Please open Telegram to view this post
VIEW IN TELEGRAM
Присоединяйтесь к #Csharp #CloudSkillsChallenge, чтобы пройти обучение по курируемому контенту #MicrosoftLearn, получить практический опыт и развить новые навыки.
Практикйтеь в C# и приблизьтесь к получению сертификата.
https://learn.microsoft.com/ru-ru/training/challenges?id=76615901-392c-413e-b7a2-0a015f52f44e&WT.mc_id=cloudskillschallenge_76615901-392c-413e-b7a2-0a015f52f44e
@csharp_ci
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 100+ ресурсов для того, чтобы стать хорошим инженером-программистом.
Список полезных книг, гайдов, блогов и не тольео!
Темы - от разработки программного обеспечения, проектирования систем, инженерии данных, лидерства, управления командой и вплоть до гайдов по построению бизнеса.
▪ Github
@csharp_ci
Список полезных книг, гайдов, блогов и не тольео!
Темы - от разработки программного обеспечения, проектирования систем, инженерии данных, лидерства, управления командой и вплоть до гайдов по построению бизнеса.
▪ Github
@csharp_ci
Mind map LINQ ⬇
Отличная инфографика.
Идеально подходит для новичков, пытающихся разобраться во всех удивительных возможностях, которые LINQ предлагает в .NET.
Сохраните ее в закладках на будущее.
@csharp_ci
Отличная инфографика.
Идеально подходит для новичков, пытающихся разобраться во всех удивительных возможностях, которые LINQ предлагает в .NET.
Сохраните ее в закладках на будущее.
@csharp_ci
В приведенном на картинке примере мы считаем, сколько людей имеют одинаковые имена. Ключом является объект, а значением - число.
@csharp_ci
Please open Telegram to view this post
VIEW IN TELEGRAM
Пример LINQ SkipLast() ⬇
Два простых примера на картинке.
А вы часто ее используете?
#dotnet
@csharp_ci
Skip()
, это функция, которая зачастую, используется чаще разработчиками, но, существует не менее полезная функция SkipLast()
, которая используется для пропуска определенного количества элементов из конца коллекции. Два простых примера на картинке.
А вы часто ее используете?
#dotnet
@csharp_ci
YeSQL .NET v1.0.0 выпущен 🚀
YeSQL .NET - это библиотека классов для загрузки SQL-запросов из SQL-файлов.
Нет необходимости жестко кодировать SQL-код в исходном коде приложения.
Создайте файл с расширением
#dotnet #csharp #oss #sql
▪Github
▪Docs
@csharp_ci
YeSQL .NET - это библиотека классов для загрузки SQL-запросов из SQL-файлов.
Нет необходимости жестко кодировать SQL-код в исходном коде приложения.
Создайте файл с расширением
.sql
и используйте YeSQL .NET для загрузки SQL-файла.Install-Package YeSql.Net
#dotnet #csharp #oss #sql
▪Github
▪Docs
@csharp_ci
Это может быть интересно при написании тестов, требующих отдельного процесса, или при выполнении кода с временем жизни, отличным от времени жизни процесса приложения .NET.
Библиотека основана на классе
corefx RemoteExecutorTestBase.
▪Github
@csharp_ci
Please open Telegram to view this post
VIEW IN TELEGRAM
Архивировать файлы стало проще, чем когда-либо! 🚀
Для сохранения zip-файла даже не нужен жесткий диск. 💣
В .NET 8 архивация и извлечение файлов стали еще эффективнее благодаря потоковым перегрузкам для методов
Метод
Вы делаете это без необходимости сохранять zip-файл на жестком диске. Магия!
@csharp_ci
Для сохранения zip-файла даже не нужен жесткий диск. 💣
В .NET 8 архивация и извлечение файлов стали еще эффективнее благодаря потоковым перегрузкам для методов
ZipFile.CreateFromDirectory
иZipFile.ExtractToDirectory.
Метод
CreateFromDirectory
позволяет вам выбрать каждый файл из папки, сжать их все в один zip-файл и распаковать эту пачку в любое удобное для вас место, и что самое интересное?Вы делаете это без необходимости сохранять zip-файл на жестком диске. Магия!
@csharp_ci
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ Этот плагин может генерировать текстуры для вашей сцены в Unreal Engine!
Comfy Textures - это плагин для Unreal Engine, который интегрирует редактор с ComfyUI. Он позволяет быстро создавать и улучшать текстуры для вашей сцены, используя генеративные диффузионные модели.
▪Github
@csharp_ci
Comfy Textures - это плагин для Unreal Engine, который интегрирует редактор с ComfyUI. Он позволяет быстро создавать и улучшать текстуры для вашей сцены, используя генеративные диффузионные модели.
▪Github
@csharp_ci
Что выведет на экран этот код?
Anonymous Quiz
35%
Class Executed, Interface Executed
41%
Class Executed, Class Executed
8%
Interface Executed, Interface Executed
16%
Возникнет ошибка компиляции "Cannot resolve method"
⚡️Feature Flags в .NET и их применения для A/B-тестирования
Возможность условно включать или выключать функции в вашем приложении без изменения кода - мощный и полезный инструмент.
Для этого можно использовать Feature Flags.
Feature Flags- это техника разработки программного обеспечения, которая позволяет обернуть функции приложения в условный оператор.
Затем вы можете включить или выключить функцию во время выполнения, чтобы контролировать, применение этих функции
▪Читать дальше
@csharp_ci
Возможность условно включать или выключать функции в вашем приложении без изменения кода - мощный и полезный инструмент.
Для этого можно использовать Feature Flags.
Feature Flags- это техника разработки программного обеспечения, которая позволяет обернуть функции приложения в условный оператор.
Затем вы можете включить или выключить функцию во время выполнения, чтобы контролировать, применение этих функции
Install-Package Microsoft.FeatureManagement
▪Читать дальше
@csharp_ci
⚡️ASP .NET Core предоставляет вам несколько способов глобальной обработки исключений.
Так какой же подход выбрать?
Стандартный способ реализации обработки исключений в ASP.NET Core — использование middleware.
Middleware позволяет добавлять логику до или после выполнения запросов. Для реализации обработки исключений достаточно добавить оператор
ASP.NET Core 8 добавляет новую абстракцию
Если исключение можно обработать, метод должен возвращать
Это позволяет реализовывать кастомную логику обработки исключений для различных сценариев.
🔗Для добавления реализации
1. Зарегистрировать сервис
2. Зарегистрировать
Вы можете добавить несколько реализаций
В ASP .NET Core 8 появилась новая абстракция IExceptionHandler для управления исключениями.
▪Подробнее
@csharp_ci
Так какой же подход выбрать?
Стандартный способ реализации обработки исключений в ASP.NET Core — использование middleware.
Middleware позволяет добавлять логику до или после выполнения запросов. Для реализации обработки исключений достаточно добавить оператор
try-catch
в middleware и возвращать ошибку HTTP-ответа. ASP.NET Core 8 добавляет новую абстракцию
IExceptionHandler
для управления исключениями. Этот интерфейс имеет только один метод TryHandleAsync
, который пытается обработать указанное исключение в рамках ASP.NET Core pipeline. Если исключение можно обработать, метод должен возвращать
true
, если нет — false
. Это позволяет реализовывать кастомную логику обработки исключений для различных сценариев.
🔗Для добавления реализации
IExceptionHandler
в пайплайн запросов ASP.NET Core необходимо сделать две вещи:1. Зарегистрировать сервис
IExceptionHandler
с помощью DI.2. Зарегистрировать
ExceptionHandlerMiddleware
в пайплайне запросов.builder
.
Services
.
AddExceptionHandler
<
GlobalExceptionHandler
>();
builder
.
Services
.
AddProblemDetails
();
app
.
UseExceptionHandler
();
Вы можете добавить несколько реализаций
IExceptionHandler
, и они будут вызываться в порядке регистрации. Это может быть полезно, например, при использовании исключений для управления потоком.В ASP .NET Core 8 появилась новая абстракция IExceptionHandler для управления исключениями.
▪Подробнее
@csharp_ci
Что произойдет если запустить это код?
Anonymous Quiz
53%
Ошибка компиляции, интерфейсы не могу иметь абстрактные методы
10%
Возникнет ошибка времени выполнения
36%
Hello world