Media is too big
VIEW IN TELEGRAM
Что такое делегаты в С#? Как их можно использовать в Unity?
Видео рассказывает о делегатах в C#, начиная с примера их использования, затем объясняет, что такое delegate, зачем нужно ключевое слово event, и разбирает три стандартных типа делегатов:
🍩 Action (для методов без возвращаемого значения)
🍩 Predicate (для методов, возвращающих bool)
🍩 Func (для методов с возвращаемым значением).
📲 Cмотреть источник: тут
👉 @KodBlog | #видео
Видео рассказывает о делегатах в C#, начиная с примера их использования, затем объясняет, что такое delegate, зачем нужно ключевое слово event, и разбирает три стандартных типа делегатов:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🍌4⚡2❤1
Использование
С появлением C# 9 был введен более элегантный способ проверки на null с помощью паттерн-матчинга.
👉 @KodBlog
is null для проверки на null вместо == null в выражениях типа is в C# 9+С появлением C# 9 был введен более элегантный способ проверки на null с помощью паттерн-матчинга.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥25❤6👍4
Топ-5 стратегий кеширования:
⏩ Чтение через кеш (Read Through): Данные загружаются в кеш при промахе, причем кеш обрабатывает чтение из базы данных.
— Лучший вариант для: приложений с высокой нагрузкой на чтение, таких как CDN, ленты соцсетей и пользовательские профили.
⏩ Кеш в стороне (Cache Aside, Lazy Loading): Приложение сначала проверяет кеш, а при отсутствии данных извлекает их из базы и сохраняет в кеш.
— Лучший вариант для: систем с высоким соотношением чтения к записи, например, интернет-магазины.
⏩ Запись через кеш (Write Through): Запись происходит одновременно и в кеш, и в базу данных, что гарантирует консистентность данных.
— Лучший вариант для: систем, критичных к целостности данных, таких как финансовые приложения.
⏩ Запись в обход кеша (Write Around): Данные записываются напрямую в базу данных, минуя кеш. Кеш обновляется при следующем чтении.
— Лучший вариант для: систем с высокой нагрузкой на запись, где данные не нужны немедленно, например, журналы логирования.
⏩ Запись с обратной синхронизацией (Write Back): Данные сначала записываются в кеш, а затем асинхронно в базу данных, что снижает задержки при записи.
— Лучший вариант для: систем с высокой нагрузкой на запись, таких как ленты соцсетей.
👉 @KodBlog
— Лучший вариант для: приложений с высокой нагрузкой на чтение, таких как CDN, ленты соцсетей и пользовательские профили.
— Лучший вариант для: систем с высоким соотношением чтения к записи, например, интернет-магазины.
— Лучший вариант для: систем, критичных к целостности данных, таких как финансовые приложения.
— Лучший вариант для: систем с высокой нагрузкой на запись, где данные не нужны немедленно, например, журналы логирования.
— Лучший вариант для: систем с высокой нагрузкой на запись, таких как ленты соцсетей.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥2❤1
Media is too big
VIEW IN TELEGRAM
Создайте трекер расходов с помощью Asp.Net Core MVC
Рассматриваются создание контроллеров, настройка пользовательского интерфейса (форма дизайна, заголовок страницы, хлебные крошки), работа с приборной панелью, визуализация данных с помощью сплайн-диаграммы и добавление интерактивных элементов, таких как виджет недавних транзакций и боковое меню.
📲 Cмотреть источник: тут
👉 @KodBlog | #видео
Рассматриваются создание контроллеров, настройка пользовательского интерфейса (форма дизайна, заголовок страницы, хлебные крошки), работа с приборной панелью, визуализация данных с помощью сплайн-диаграммы и добавление интерактивных элементов, таких как виджет недавних транзакций и боковое меню.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥3❤1⚡1
Легкий pub/sub для .NET — Marille
Если нужно управлять множеством каналов и организовать pub/sub (публикации и подписки) внутри .NET-приложения — Marille отлично подойдет😏
☑ Простое управление темами и подтемами сообщений
☑ Основано на
☑ Высокая производительность и минимальные накладные расходы
☑ Поддержка .NET Core и .NET 6+
Использовали Marille в проектах?
👉 @KodBlog
Если нужно управлять множеством каналов и организовать pub/sub (публикации и подписки) внутри .NET-приложения — Marille отлично подойдет
System.Threading.ChannelsИспользовали Marille в проектах?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥2
FluentValidation делает валидацию ввода проще простого.
Знаете ли вы, что валидаторы поддерживают внедрение зависимостей (DI)?
Вы можете внедрять объекты настроек, сконфигурированные через DI, и использовать их в валидаторах.
Посмотрите фрагмент кода на фото в качестве примера.
Милан использует
⏩ Подробно можно посмотреть здесь: ссылка
👉 @KodBlog
Знаете ли вы, что валидаторы поддерживают внедрение зависимостей (DI)?
Вы можете внедрять объекты настроек, сконфигурированные через DI, и использовать их в валидаторах.
Посмотрите фрагмент кода на фото в качестве примера.
Милан использует
FluentValidation вместе с MediatR для реализации универсального конвейера валидации (middleware).Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤3⚡1
Может кто помнит есть такая игра — Linux Survival называется.
В общем, если нужно быстро освоить базовые команды Linux — вот это как раз то, что надо.
Заходишь на сайт, выбираешь уровень, выполняешь задания прямо в браузере — и БАЦ, ты уже знаешь, как перемещаться по файловой системе, создавать файлы и папки, и даже работать с правами доступа.🖥
Без регистрации и бесплатно.
👉 @KodBlog
В общем, если нужно быстро освоить базовые команды Linux — вот это как раз то, что надо.
Заходишь на сайт, выбираешь уровень, выполняешь задания прямо в браузере — и БАЦ, ты уже знаешь, как перемещаться по файловой системе, создавать файлы и папки, и даже работать с правами доступа.
Без регистрации и бесплатно.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥2🍓2❤1
Андерс Хейлсберг, ведущий архитектор TypeScript объясняет, почему Microsoft перевела компилятор TypeScript с JavaScript на Go, а не на C#.
Основные причины выбора Go:
⏩ Простая совместимость с текущей кодовой базой.
⏩ Эффективное управление памятью и обработка графов.
⏩ Упрощение портации без необходимости кардинального переписывания.
При этом он подчеркивает, что C# остается ключевым языком Microsoft, особенно для .NET и облачных решений. Решение о переходе на Go продиктовано исключительно техническими причинами, а не отказом от C#.
👉 @KodBlog
Основные причины выбора Go:
При этом он подчеркивает, что C# остается ключевым языком Microsoft, особенно для .NET и облачных решений. Решение о переходе на Go продиктовано исключительно техническими причинами, а не отказом от C#.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16😈8🔥3
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤4🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Реддитор подогнал годный тул для разрабов на Unity.
Unity Source Bot — это поиск по 1000+ репозиториям с проектами на движке. Идеально, когда дока снова больше запутала, чем помогла.
Можно быстро глянуть, как другие уже заюзали нужную фичу👍
👉 @KodBlog
Unity Source Bot — это поиск по 1000+ репозиториям с проектами на движке. Идеально, когда дока снова больше запутала, чем помогла.
Можно быстро глянуть, как другие уже заюзали нужную фичу
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍4❤1⚡1
This media is not supported in your browser
VIEW IN TELEGRAM
READMEВыделяйте важную информацию для ваших пользователей с помощью этих специальных блоков Markdown:
[!NOTE] - используется для заметок (дополнительной информации, полезной для пользователя).[!TIP] - обозначает совет или полезное предложение.[!IMPORTANT] - подчеркивает важную информацию.[!WARNING] - указывает на что-то, требующее внимания пользователя.[!CAUTION] - осторожность (аналогично предупреждению, но с более серьезным тоном).Please open Telegram to view this post
VIEW IN TELEGRAM
👍23🔥7
Serilog — это лучший инструмент для структурированного логирования в .NET. Можно легко настраивать вывод в файлы, консоль, базы данных и даже в облачные сервисы.
Лучше сразу внедрять в проект
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣17👍9❤5🔥1
Различия между HTTP/1, HTTP/2 и HTTP/3
HTTP является основой веб-коммуникации с 1989 года, но за это время он значительно эволюционировал. Вот разбор того, как каждая версия развивалась, чтобы удовлетворять растущие потребности:
1. HTTP/1.1 (1997)
Оригинальный протокол, определивший взаимодействие в вебе, использует простые методы, такие как GET и POST. Однако с развитием веба, появлением сложных приложений, потокового HD-видео и других нагрузок HTTP/1.1 столкнулся с рядом ограничений:
⏩ Проблема
⏩ Избыточные HTTP-заголовки.
⏩ Необходимость устанавливать несколько TCP-соединений для параллельной загрузки ресурсов.
2. HTTP/2 (2015)
Значительный шаг вперед, включающий:
⏩ Сжатие заголовков для экономии трафика.
⏩ Мультиплексирование – возможность одновременной передачи нескольких запросов в одном TCP-соединении.
⏩ Приоритезация запросов для ускоренной загрузки важных элементов.
⏩ Бинарное кодирование вместо текстового, что ускоряет обработку.
HTTP/2 позволил сократить число TCP-соединений, ускоряя загрузку страниц и оптимизируя использование ресурсов сети. Однако он все еще страдал от TCP head-of-line blocking и проблем безопасности, таких как Stream Reuse Attack.
3. HTTP/3 (2020)
Основан на протоколе QUIC и использует UDP вместо TCP, что дает:
⏩ Полное устранение head-of-line blocking TCP.
⏩ Улучшенную миграцию соединений (например, при смене Wi-Fi на мобильную сеть).
⏩ Встроенное шифрование (TLS 1.3 по умолчанию).
⏩ Быстрое установление соединений за счет отказа от трехэтапного рукопожатия TCP.
HTTP/3 не полностью заменяет HTTP/2 – он предназначен для определенных сценариев, где его преимущества наиболее заметны, тогда как HTTP/2 остается надежным вариантом.
👉 @KodBlog
HTTP является основой веб-коммуникации с 1989 года, но за это время он значительно эволюционировал. Вот разбор того, как каждая версия развивалась, чтобы удовлетворять растущие потребности:
1. HTTP/1.1 (1997)
Оригинальный протокол, определивший взаимодействие в вебе, использует простые методы, такие как GET и POST. Однако с развитием веба, появлением сложных приложений, потокового HD-видео и других нагрузок HTTP/1.1 столкнулся с рядом ограничений:
head-of-line (HOL) blocking, замедляющая загрузку ресурсов.2. HTTP/2 (2015)
Значительный шаг вперед, включающий:
HTTP/2 позволил сократить число TCP-соединений, ускоряя загрузку страниц и оптимизируя использование ресурсов сети. Однако он все еще страдал от TCP head-of-line blocking и проблем безопасности, таких как Stream Reuse Attack.
3. HTTP/3 (2020)
Основан на протоколе QUIC и использует UDP вместо TCP, что дает:
HTTP/3 не полностью заменяет HTTP/2 – он предназначен для определенных сценариев, где его преимущества наиболее заметны, тогда как HTTP/2 остается надежным вариантом.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤1🔥1🥰1
ASP.NET Core 9 позволяет отключать HTTP-метрики и не записывать значения для определённых конечных точек и запросов.Например, автоматизированные системы проверяют конечную точку
Health, поэтому сбор метрик для неё не особенно полезен.Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍3❤1⚡1
EF Core — это потрясающе, но давайте будем честными. Перебор записей в цикле для их обновления — не очень.
Обновление тысяч строк по одной — верный способ замедлить работу и перегрузить базу данных.
Есть способ получше — массовые обновления.😎
👉 @KodBlog
Обновление тысяч строк по одной — верный способ замедлить работу и перегрузить базу данных.
Есть способ получше — массовые обновления.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤23🤨7👍6🤯1
Нашел для вас отличный репозиторий — Unity Clean Code
Это сборка лучших практик написания чистого кода в Unity, которые помогут сделать ваш проект структурированным и удобочитаемым.
Следуя рекомендациям, вы улучшаете архитектуру своих игр, упрощаете поддержку кода и учитесь писать более эффективные и понятные решения.
💬 Отличный выбор для всех, кто работает с Unity
👉 @KodBlog
Это сборка лучших практик написания чистого кода в Unity, которые помогут сделать ваш проект структурированным и удобочитаемым.
Следуя рекомендациям, вы улучшаете архитектуру своих игр, упрощаете поддержку кода и учитесь писать более эффективные и понятные решения.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍5❤1💯1
IExceptionHandler, который упрощает глобальную обработку исключений в aspnetcore.Раньше обработчики исключений часто становились сложными и запутанными, так как в одном методе приходилось учитывать множество разных типов ошибок. Теперь же
IExceptionHandler позволяет создавать отдельные обработчики для конкретных исключений, делая код чище и удобнее.Достаточно реализовать метод
TryHandleAsync, подключить его через UseExceptionHandler — и всё готово.Это чисто. Модульно. Поддерживаемо. И, честно говоря, давно пора.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥4🌭2