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
Как создать HttpClient в .NET?
Рекомендуемый способ — использование
Вы можете использовать
Недостаток в том, что вам придется настраивать HttpClient каждый раз.
Если вам нужен заранее настроенный HttpClient, вы можете использовать именованные или типизированные клиенты.
Вот правильный способ работы с HttpClient в .NET: тык
👉 @KodBlog
Рекомендуемый способ — использование
IHttpClientFactoryВы можете использовать
IHttpClientFactory напрямую.Недостаток в том, что вам придется настраивать HttpClient каждый раз.
Если вам нужен заранее настроенный HttpClient, вы можете использовать именованные или типизированные клиенты.
Вот правильный способ работы с HttpClient в .NET: тык
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥4💯3❤2
Есть такой инструмент — SharpRedirect
С ним можно легко перехватывать и перенаправлять сетевой трафик
Он принимает входящие TCP-подключения на локальный порт и пересылает их на указанный удалённый хост и порт.
😍 Поддерживает двустороннюю передачу данных в полном дуплексе, обеспечивая стабильную и асинхронную работу для повышения производительности.
👉 @KodBlog
С ним можно легко перехватывать и перенаправлять сетевой трафик
Он принимает входящие TCP-подключения на локальный порт и пересылает их на указанный удалённый хост и порт.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍4⚡1
3 различных архитектурных подхода к организации компонентов в приложении
1. Классическая трёхслойная архитектура
Включает три уровня:
🟡 MyApp.Web (контроллеры, взаимодействие с пользователем)
🟡 MyApp.Business (бизнес-логика)
🟡 MyApp.Data (доступ к данным)
Классическая, но может приводить к сильной связанности.
2. CQRS-подход
🟡 Использует паттерн Command Query Responsibility Segregation (CQRS)
🟡
🟡
Улучшает разделение команд и запросов, подходит для сложных систем.
3. Компонентный подход
🟡 Компоненты объединены в единый модуль MyApp.Policies.
🟡
Даёт больше гибкости, но требует продуманной структуры
Как вы упаковываете свои компоненты?🤔
👉 @KodBlog
1. Классическая трёхслойная архитектура
Включает три уровня:
PoliciesController использует IPolicyService, который, в свою очередь, использует IPolicyRepository для работы с базой данных.Классическая, но может приводить к сильной связанности.
2. CQRS-подход
PoliciesController вызывает RenewPolicyCommand, который обрабатывается RenewPolicyHandlerRenewPolicyHandler взаимодействует с IPolicyRepository, который работает с PolicyRepositoryУлучшает разделение команд и запросов, подходит для сложных систем.
3. Компонентный подход
PoliciesController использует IPolicyComponent, который включает в себя PolicyComponent, PolicyService и PolicyRepositoryДаёт больше гибкости, но требует продуманной структуры
Как вы упаковываете свои компоненты?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥2🌚2
Это правильный способ реализации посева данных в ваших .NET-приложениях
EF Core 9 значительно упростил этот процесс.
Больше не нужно переопределять
EF 9 представил методы
👉 @KodBlog
EF Core 9 значительно упростил этот процесс.
Больше не нужно переопределять
OnModelCreating или вручную управлять скриптами заполнения данных.EF 9 представил методы
UseSeeding и UseAsyncSeeding, которые предоставляют удобный способ заполнения базы данных начальными данными.Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍6🌚1💯1
Media is too big
VIEW IN TELEGRAM
Claude 3.7 Sonnet получил серьёзного конкурента
Gemini 2.5 Pro — действительно хорошая модель для кода👍
⏩ качество кода действительно высокое
⏩ контекст 1M токенов
⏩ нативная мультимодальность
⏩ генерация длинного кода
⏩ понимание крупных кодовых баз
Чувак на видео использовал его вместе с Windsurf для создания приложения поискового агента с ИИ
👉 @KodBlog
Gemini 2.5 Pro — действительно хорошая модель для кода
Чувак на видео использовал его вместе с Windsurf для создания приложения поискового агента с ИИ
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7❤6👍2🥴2
Вы устали писать один и тот же шаблон конструктора в каждом сервисе?
Объявить поле → Внедрить зависимость → Присвоить → Повторить🔁
Здесь на помощь приходят первичные конструкторы в C# 12 — и они значительно упрощают код.
Я использовал их в статических сервисах и вот что заметил:
Плюсы:
☑ Меньше шаблонного кода, больше ясности
☑ Нет лишних полей и присваиваний
☑ Отлично подходят для Minimal API и DI
☑ Держат небольшие сервисы лаконичными и читаемыми
Минусы:
❌ Невозможность объявлять private readonly поля
Вы уже пробовали первичные конструкторы в реальных проектах?
👉 @KodBlog
Объявить поле → Внедрить зависимость → Присвоить → Повторить
Здесь на помощь приходят первичные конструкторы в C# 12 — и они значительно упрощают код.
Я использовал их в статических сервисах и вот что заметил:
Плюсы:
Минусы:
Вы уже пробовали первичные конструкторы в реальных проектах?
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍8🐳3💯1
Ах да, этот бесценный "специалист по методам расширения" — что бы мы без тебя делали) 😄
(их сотни в этом проекте)
👉 @KodBlog
(их сотни в этом проекте)
Please open Telegram to view this post
VIEW IN TELEGRAM
😁17🌚5🔥2🐳1
This media is not supported in your browser
VIEW IN TELEGRAM
Я никогда не знал об этом! Вы можете открыть VS Code прямо в браузере из репозитория на GitHub.
Просто нажмите клавишу "
Это работает даже если вы не владеете репозиторием!😱
👉 @KodBlog
Просто нажмите клавишу "
." (точка)" в репозитории на GitHub. Это откроет репозиторий в веб-версии VS Code. Можно редактировать и коммитить изменения одним кликом.Это работает даже если вы не владеете репозиторием!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥4❤1👏1