23284
Все самое полезное для C#-разработчика в одном канале. По рекламе: @proglib_adv Учиться у нас: https://proglib.io/w/b60af5a4 Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead
🔐 🔑 OAuth 2: как работает современная авторизация
Помнишь кнопку «Войти через Google»? Та самая кнопка, которая избавляет от необходимости запоминать очередной пароль. Сегодня разберем, как работает эта магия изнутри, почему гиганты вроде Spotify и Medium используют такой способ входа, и как внедрить его в свое приложение. Спойлер: это проще, чем кажется, и гораздо безопаснее традиционной формы регистрации.
Читать статью
⚒️ Microsoft.Extensions.VectorData.Abstractions — новая библиотека, которая предоставляет .NET-экосистеме абстракции для интеграции векторных хранилищ в приложения и библиотеки .NET.
🤔 Почему векторные хранилища?
Векторные базы данных важны для поиска и генерации ответов с помощью ИИ. Подобно тому, как реляционные и документоориентированные базы данных оптимизированы для работы со структурированными и частично структурированными данными, векторные базы данных созданы для эффективного хранения, индексирования и управления данными, представленными в виде векторов.
В результате алгоритмы индексирования, используемые векторными базами данных, оптимизированы для эффективного извлечения данных, которые могут быть использованы в ваших приложениях.
👉 Анонс предварительной версии библиотеки
Привет, друзья! 👋
Мы готовим статью о секретах мастерства в программировании и хотим узнать ваше мнение! 💻
🔀 Асинхронность — не баг, а фича: 4 паттерна, которые спасут ваш распределённый сервис
Представь, что ты отправляешь сообщение в мессенджере, а оно доходит с задержкой в минуту. Бесит? А теперь представь, что у тебя сервис с миллионами пользователей, и каждое их действие должно мгновенно отражаться везде. Звучит как кошмар? Спокойно, есть четыре проверенных способа решить эту головоломку, и они реально работают.
👉 Читать статью
🚀💾⚡ Protocol Buffers: самая эффективная бинарная альтернатива текстовому формату
Protobuf — механизм бинарной сериализации данных, разработанный компанией Google. Протокол не зависит от языка и платформы, и обеспечивает более компактную и быструю сериализацию по сравнению с традиционными текстовыми форматами.
Особенно интересно, как решается проблема совместимости версий. Обо всем этом подробнее читайте в нашей статье👇
🔗 Читать статью
🔗 Зеркало
🔎 Бескультурная сказка про Dottrace
Что делать поздним вечером в офисе, когда уже никого нет? Конечно же, снимать трейс с какого-нибудь приложения и анализировать его.
Автор приводит зарисовки о том, почему важно осознанно писать каждую строчку кода, а заодно и небольшой мастер-класс по использованию dottrace и класса string одновременно.
👉 Читать
🛠️ Асинхронность: не только async/await
С появления async/await прошло много времени. Часть языков, например JavaScript и Kotlin, переняли этот паттерн почти без изменений, другие же — Java, Go — предлагают свои подходы к асинхронности.
У .NET-разработчиков тоже возникли сомнения в будущем async/await: появились эксперименты с green threads и оптимизациями нынешней модели асинхронности.
В докладе на DotNext 2024 Евгений Пешков рассказал о разнице в реализациях асинхронности, проблемах с производительностью и о том, как может измениться async/await в .NET.
👉 YouTube & Презентация
💡 Кстати, ExecuteUpdate поддерживает обновление complex типов в Entity Framework 9
Раньше приходилось перечислять каждый элемент complex типа в ExecuteUpdate, а теперь он принимает complex тип, но вам все равно нужно указать каждый элемент.
#dotnet #efcore #tip by Oleg Kyrylchuk
🔥 Kafka для .NET-разработчиков: запись доклада Ian Cooper на NDC Oslo 2024
Если вы еще не работали с Kafka, этот доклад станет отличным введением. Вы узнаете о records, offsets, SerDes и schema registries, in-sync replicas, partitions и инструментах вроде Connect/Flink.
📺 Смотреть
⚒️ ToArray(Async) 🆚 ToList(Async) в Entity Framework 8
При извлечении данных из базы данных с помощью EF есть два основных способа: ToArray и ToList. Помимо разного типа возвращаемых данных, есть ли существенная разница в производительности между ними? Читайте в заметках от Steven Giesel 👇
🔗 Читать
🛠 Oqtane — фреймворк/CMS с открытым исходным кодом, который предоставляет расширенные функциональные возможности для разработки веб-, мобильных и десктопных приложений на .NET.
Под капотом используется Blazor, а захостить само приложение можно с помощью Static Blazor, Blazor Server, Blazor WebAssembly или Blazor Hybrid (через .NET MAUI).
👉 GitHub & Анонс последнего выпуска (v. 5.2.4)
🤼 Генеративно-состязательная нейросеть: ваша первая GAN-модель на PyTorch
Подробная инструкция построения генеративно-состязательных нейросетей (GAN) на примере двух моделей, реализованных с помощью фреймворка глубокого обучения PyTorch в нашей статье. 👇
🔗 Статья
У нас есть курс как для начинающих программистов, так и для тех, кто уже шарит:
🔵 Алгоритмы и структуры данных
🤔 Согласитесь, что глубоко вложенный код трудно читать?
В методах с большим количеством вложений можно использовать подход Early Return и Guard Clause, чтобы сделать код более удобным для чтения.
#dotnet #csharp #tip by Dave Callan
🔐 Использование BCrypt.Net.BCrypt для хеширования паролей в базе данных с использованием EF Core 8: простой припер для C#-разработчика
👉 Подробнее
🧪 Чем заменить Postman: 5 отличных инструментов для разработки API
Postman долгое время был основным инструментом для разработки и тестирования API, но сейчас для большинства разработчиков его ограничения стали перевешивать преимущества. Рассмотрим альтернативные инструменты, которые могут предложить больше возможностей, чем Postman — даже в бесплатной версии.
👉Читаем здесь
📈 Исследование рынка .NET разработки: анализ текущих тенденций и прогнозы
.NET остается одной из ведущих платформ для разработки корпоративных приложений, особенно в России, где она используется как в крупных корпорациях, так и в малом бизнесе.
🤔 Но как на самом деле чувствует себя сообщество разработчиков?
Для того чтобы понять это, команда fuse8 опросила 300 российских .NET разработчиков и руководителей разработки. Читайте подробнее, что из этого получилось👇
🔗 Читать
🚀 Сравнение производительности конкатенации строк в .NET 9
Есть и другие подходы, когда нам нужна ещё более высокая производительность, но из распространённых подходов, показанных ниже, StringJoin выигрывает.
#dotnet #csharp #tip by Dave Callan
🕹️ Что нового в Unity 6? Обзор нововведений и ошибок в опенсорсных исходниках от команды PVS-Studio
Наконец, состоялся релиз Unity 6! Разработчики называют эту версию самой стабильной за всё время существования движка. Что ж, пришло время в этом убедиться:
◼️Что нового в Unity 6?
▫️Интеграция ИИ
▫️Расширение инструментария для создания многопользовательских проектов
▫️Оптимизация нагрузки на CPU
▫️Оптимизация нагрузки на GPU
▫️Улучшение качества рендеринга среды и многое другое
◼️Разбор новых ошибок в исходниках движка
🔥 Кстати, Эндрю Лок добавил экспериментальную поддержку interceptors в пакет NetEscapades.EnumGeneratorsNetEscapades.EnumGenerators создает методы расширения для enums, позволяя быстро выполнять операции, аналогичные рефлексии.
Поддержка interceptors позволяет заменять вызовы ToString() и HasFlag(). Это требует .NET SDK версии 8.0.400 или выше. Interceptors можно включить, установив EnableEnumGeneratorInterceptor в файле проекта.
dotnet add package NetEscapades.EnumGenerators --version 1.0.0-beta11
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Главное айти-событие года: регистрируемся на МТС True Tech Champ
8 ноября в МТС Live Холл финал чемпионата по программированию роботов, где участники будут запускать робомышей в лабиринт — но идти туда стоит не только ради этого:
⭐️live-кодинг
⭐️стресс-воркшоп с собеседованием
⭐️мастер-классы (например, по вскрытию замков от белого хакера)
⭐️программерский стендап
⭐️лекции и доклады
⭐️тату-студия на выезде
⭐️куча интерактивов и игр, например, можно собрать брелок из плат и паяльника или решить ошибки в коде на полосе препятствий
⭐️афтепати с секретными хедлайнерами
А самое главное — это БЕСПЛАТНО
👉 Регистрируемся тут (осталось всего несколько дней!)
⚙️ Подпишись на нашу еженедельную email-рассылку, чтобы быть в курсе последних открытий и тенденций в мире бэкенда.
В еженедельных письмах ты найдешь:
● Языки программирования и фреймворки для бэкенда
● Архитектура и проектирование серверных приложений
● Базы данных и управление данными
● Безопасность и защита данных
● Облачные технологии и DevOps
● API и интеграции
● Тестирование и отладка
● Инструменты и утилиты для бэкенд-разработчиков
● Лучшие практики и паттерны проектирования
👉Подписаться👈
🍇 Подборка лучших статей «Библиотеки программиста» за октябрь: сохраняй в заметки, чтобы не пропустить #самыйсок
💻🔍💼 Кризис IT-рынка: как джуны и кадровый голод меняют правила игры
🪶 Как следовать принципу DRY при настройке Apache APISIX
🎮⚙️ Неправильные настройки импорта в Unity убивают вашу игру
🤼 Генеративно-состязательная нейросеть: ваша первая GAN-модель на PyTorch
🎨🔙🔚 Паттерн «Бэкенд для фронтенда»: преимущества, недостатки и лучшие практики для реализации
🤼 🧪 Чем заменить Postman: 5 отличных инструментов для разработки API
📊🚀 Почему все говорят о Kafka?
🕒🔄 Векторные часы: как синхронизировать две мастер-базы без потери данных
😮 SQL: от Тетриса до ИИ — неожиданные возможности языка баз данных
🔤 Код без боли: шрифты, которые спасут твои глаза
💬🎃 Поделитесь самыми пугающими историями из своей карьеры: страшные баги, найденные в последний момент, случайные удаления данных, «бессмертные» ошибки и забавные, но пугающие инциденты.
Ждем ваших комментариев 👇
💡 BenchmarkDotNet в действии: простой пример для C#-разработчика
#dotnet #tip by Dave Callan
👆 Кстати, в EF 9 представлен новый удобный способ заполнения базы данных начальными данными.
#efcore #dotnet #tip by Nabi Karampour
🎙 Разбираемся с SVE, празднуем STJ, унифицируем AI: 102-й выпуск подкаста RadioDotNet
⏳ Таймкоды:
[00:02:05] — .NET 9 Release Candidate 2 is now available
[00:05:35] — What's new in System.Text.Json in .NET 9
[00:39:40] — .NET Aspire 9.0 (Release Candidate 1)
[00:53:30] — Introducing Microsoft.Extensions.AI Preview
[01:02:10] — Engineering the Scalable Vector Extension in .NET
[01:13:40] — Understanding OverloadResolutionPriority attribute in C# 13
⏯️ YouTube | Другие площадки
#подкасты
🎨🔙🔚 Паттерн «Бэкенд для фронтенда»: преимущества, недостатки и лучшие практики для реализации
Если ты хочешь стать настоящим мастером API, тебе нужно знать о паттерне BFF. В этой статье рассказываем, как создавать управляемую архитектуру с использованием BFF, избегая избыточной сложности и головной боли при поддержке.
👉 Читать статью
👉 Зеркало
🎃 Приглашаем на вебинар перед Хэллоуином: «Нужна ли математика на собеседованиях?» 🧙♀️
Темные тучи сгущаются, и в воздухе витает мистическая атмосфера... Готовы ли вы окунуться в мир загадочной математики и раскрыть тайны успешного собеседования? Тогда ждем вас 28 октября в 20:00! 🕸
https://proglib.io/w/f993cb69
Что вас ждет в эту зловещую ночь:
💀 Ошибаться не страшно: узнаем, как неудачные проекты и опыт «в стол» превращают джуниоров в сеньоров. Расскажем истории о том, как ошибки закаляют и помогают достигать вершин мастерства.
🧛 Собеседования без подготовки? Обсудим, возможно ли пройти через испытания рекрутеров без специальной подготовки или это путь в лабиринт с привидениями.
🧙 Теория и практика — зелье успеха:
• Выбор метрики оценки модели: какую метрику показать бизнесу, чтобы не столкнуться с гневом нечисти? Разберемся в разнице между MAPE и WAPE и когда какую применять.
• Трансформация распределений: как превратить логнормальное распределение в нормальное без волшебной палочки? Поговорим о том, зачем это нужно и как обойтись изменением функции потерь вместо магических превращений.
🦇 Бонус для смельчаков: раскроем секреты тестирования в маркетинге, которые помогут не заблудиться в темном лесу конкурентного рынка.
Не упустите шанс провести вечер в компании единомышленников, погрузиться в атмосферу Хэллоуина и получить ценные знания!
🕯 Записывайтесь на вебинар и готовьтесь к мистическим открытиям!
https://proglib.io/w/f993cb69👻
🔥 Кстати, IDE Rider от JetBrains теперь бесплатна для некоммерческого использования. Новость особенно актуальна для пользователей macOS в свете прекращения поддержки Visual Studio со стороны Microsoft.
И да, на Hacker News можно понаблюдать за обсуждением важного события в сообществе .NET-разрабов👇
🔗 Читать