Библиотека шарписта | C#, F#, .NET, ASP.NET
22.9K subscribers
2.25K photos
35 videos
85 files
4.41K links
Все самое полезное для C#-разработчика в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/b60af5a4

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead
Download Telegram
🔗 Что такое паттерн «Цепочка»?

В основе паттерна «цепочка» лежит идея последовательной обработки запроса через несколько микросервисов. Клиент делает запрос, который обрабатывается первым сервисом (A). Этот сервис передает результат следующему (B), затем — следующему (C) и так далее, пока не будет получен финальный результат, возвращаемый клиенту.

Этот процесс можно представить как конвейер, где каждый этап выполняет строго определенную задачу.

Преимущества паттерна
Модульность: каждый сервис отвечает за свою часть работы. Это делает систему более понятной и легкой в поддержке.
Повторное использование: сервисы можно использовать в других бизнес-процессах, объединяя их в новые цепочки.
Простота реализации: логика каждого микросервиса изолирована, что упрощает проектирование и тестирование.

Недостатки паттерна
Высокие задержки: каждый вызов в цепочке требует времени, а синхронное взаимодействие увеличивает общее время отклика для клиента.
Уязвимость к сбоям: Если один из сервисов выйдет из строя, вся цепочка перестанет работать, что может нарушить работу приложения.
Сложности мониторинга: С ростом длины цепочки становится сложнее отслеживать метрики производительности и отладку.

Когда использовать паттерн «Цепочка»?
Необходимо последовательное выполнение задач (например, обработка платежей или подготовка данных для аналитики).
Задачи строго зависят друг от друга.
Длина цепочки невелика, а задержки допустимы.
Если же время отклика критично или система должна быть устойчива к сбоям, стоит рассмотреть альтернативы, такие как асинхронное взаимодействие или паттерн оркестрации.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6😁51
🎨 Новый канал для вдохновения — UX in GIF

Мы запустили свежий канал, где делимся идеями для дизайна интерфейсов. Всё самое стильное, оригинальное и вдохновляющее теперь в одном месте.

📌 Чем полезен канал?

→ Идеи для дизайна интерфейсов.
→ Анимации, которые можно повторить или адаптировать.
→ Лёгкий способ искать вдохновение перед новым проектом.

👉 Подписывайтесь и вдохновляйтесь: UX in GIF
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
🚀 Testcontainers в .NET с PostgreSQL и pgvector

💡 Мы нашли статью о том, как использовать Testcontainers в .NET для работы с PostgreSQL и расширением pgvector. Если вы хотите сделать тестирование интеграции удобнее и мощнее, то это именно то, что вам нужно!

📌 Что такое Testcontainers?
Это библиотека, которая позволяет запускать Docker-контейнеры прямо из тестов, создавая временные окружения для тестирования. Это упрощает интеграционное тестирование, минимизируя необходимость ручной настройки баз данных, брокеров сообщений и других сервисов.

📌 Что такое pgvector?
pgvector — это расширение PostgreSQL, добавляющее поддержку работы с векторными данными. Это крайне полезно для приложений, которые используют эмбеддинги (например, из OpenAI или Hugging Face) для поиска, машинного обучения или рекомендательных систем.

📌 О чём статья?
Как настроить Testcontainers для работы с PostgreSQL в .NET.
Как подключить расширение pgvector в тестовой базе данных.
Пошаговое руководство по созданию контейнера с PostgreSQL, выполнению миграций и настройке данных для тестов.
Примеры использования pgvector для хранения и поиска векторных данных.

Автор показывает, как использовать Testcontainers для запуска PostgreSQL с уже установленным pgvector. Это позволяет тестировать функции работы с векторами (например, поиск ближайших соседей) без необходимости настраивать базу данных вручную.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍52
💻📈 Итоги года Proglib: 2024 год в цифрах и достижениях

Как оставаться в курсе самых актуальных тенденций, не теряя времени на поиск информации? Итоги года Proglib покажут, как платформа объединила разработчиков, помогая им оставаться впереди.

Загляните в цифры, достижения и материалы, которые сделали этот год ярким!
6👍5🥰1
🌍✈️ 6 идей, как ускорить поиск работы за рубежом

Статья для тех, кто устал от отказов и безрезультатных поисков. Узнайте секреты, которые помогут вам найти работу за рубежом в разы быстрее!

👉 Читать статью
👍1🌚1
👋 Привет, мир: несколько креативных способов написать классический код на C#

Иногда самые простые вещи могут быть невероятно увлекательными. В этой статье автор собрал разнообразные способы написать легендарное 'Hello, World!' на C#. Это не просто базовые примеры, а настоящая коллекция техник и подходов, которая понравится как новичкам, так и опытным разработчикам.

📎 Узнайте, как добавить немного креатива даже в такие тривиальные задачи!
😁13👏3🥱3👍2🌚1
Бесплатный курс по фулстек-разработке — реальность 🔥

Под Новый год Дед Мороз приносит подарки, а наши подписчики — собственные курсы! Сергей Дмитриев, который занимается коммерческой разработкой уже 15 лет, поделился с нами своим обучением по созданию веб-сервиса с нуля. В курс входит 141 урок, 28 часов видео, исходный код и чат поддержки для участников.

Подробнее о курсе читайте на Хабре или в телеграм-канале Сергея
С наступающим, С# сообщество! Или уже наступившим!🎆🎆

Уже придумали чем заняться в новом году? 😉
Если нет, то предлагаем вам подборку фильмов и сериалов к просмотру:

🔠 Остановись и гори (2014)
🅰️ The IT Crowd (2006-2013)
🔠 Revolution OS (2001)
©️ Разрабы (2020)
🔠 Игра в имитацию (2014)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11👏3
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.

Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.

Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
👍3
Давайте признавайтесь в комментариях — что вам подарили? 👇
#интерактив
This media is not supported in your browser
VIEW IN TELEGRAM
Вот и новый год! 🎆 Давайте погадаем что там нас ждёт?
Делайте скриншот и присылайте в комментарии!⬇️

#интерактив
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉5👍31
🔍 Новое обновление в Visual Studio 2022: закрепляем окно поиска

Работаете в Visual Studio 2022? Тогда у нас для вас отличные новости! Теперь окно поиска кода и функций можно закрепить в интерфейсе как полноценную панель инструментов. Это обновление делает рабочий процесс ещё удобнее и эффективнее.

Что нового?
1️⃣ Закрепление окна поиска
Раньше окно поиска появлялось поверх других окон, что могло мешать. Теперь его можно закрепить в любом месте интерфейса Visual Studio — например, рядом с «Обозревателем решений». Чтобы сделать это, нажмите на значок в правом верхнем углу окна поиска. 🎯

2️⃣ Упрощённый предварительный просмотр
Добавлена кнопка для включения/выключения панели предварительного просмотра (иконка глаза). Если панель включена, она автоматически адаптируется под размеры окна поиска, предоставляя удобный просмотр найденного кода. 👁

3️⃣ Повышение продуктивности
Эти изменения помогают лучше организовать рабочее пространство, особенно если вы часто пользуетесь поиском кода (Ctrl + T) или функций (Ctrl + Q).

#новость
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14😁5
⚙️ Подпишись на нашу еженедельную email-рассылку, чтобы быть в курсе последних открытий и тенденций в мире бэкенда.

В еженедельных письмах ты найдешь:
● Языки программирования и фреймворки для бэкенда
● Архитектура и проектирование серверных приложений
● Базы данных и управление данными
● Безопасность и защита данных
● Облачные технологии и DevOps
● API и интеграции
● Тестирование и отладка
● Инструменты и утилиты для бэкенд-разработчиков
● Лучшие практики и паттерны проектирования

👉Подписаться👈
👍2🥰1😁1
🤩 Быстрый переход к строке кода в Visual Studio 2022

Microsoft продолжает улучшать Visual Studio, делая работу разработчиков быстрее и удобнее. Новое обновление для поиска кода теперь позволяет мгновенно переходить к конкретной строке как в текущем, так и в других файлах.

Как это работает?
Переход в текущем файле
Введите в поле поиска кода : и номер строки (например, :42), чтобы сразу открыть нужную строку в активном документе.

Переход в другом файле
Укажите название файла, затем двоеточие и номер строки (например, Order:43). Visual Studio найдёт файл и сразу покажет нужный участок кода.

💡 Эта функция идеально подходит для разработчиков, которые работают с большими проектами и сложной структурой кода.

#новость
Please open Telegram to view this post
VIEW IN TELEGRAM
🏗️ Зачем нужен паттерн Factory в C#?
Factory (Фабрика) — это паттерн проектирования, который упрощает создание объектов, отделяя логику их создания от основного кода.

Почему нужно использовать этот паттерн?
1️⃣ Слабое связывание — код не зависит от конкретных реализаций, работая только с интерфейсами или абстрактными классами.
2️⃣ Гибкость — легко добавлять новые типы объектов без изменения клиентского кода.
3️⃣ Чистота кода — детали создания объектов скрыты в фабрике, упрощая логику приложения.

Пример использования
Фабрика может быть полезна, например, при создании объектов для различных типов телефонов. Клиенту нужно лишь указать тип, а фабрика сама вернёт нужный объект.

📎 Для подробного кода и примеров читайте статью.
9🥱3👍2🔥1
🤔👨‍💻 Что такое MapGroup в минимальных API?

MapGroup — это функция в минимальных API ASP.NET Core, позволяющая группировать связанные конечные точки под общим префиксом маршрута и общей конфигурацией. Это улучшает организацию кода, делая его более читаемым и поддерживаемым.

Преимущества использования MapGroup:
Применение общего префикса маршрута: все конечные точки в группе автоматически получают общий префикс, что упрощает управление маршрутами.

Общий middleware: можно применять middleware, такие как аутентификация или логирование, ко всем конечным точкам в группе одновременно.

Логическая организация: группировка связанных конечных точек (например, /users, /orders) помогает структурировать код по функциональным областям.

Пример использования MapGroup:


var app = builder.Build();

var usersGroup = app.MapGroup("/users");

usersGroup.MapGet("/", () => "Список пользователей");
usersGroup.MapGet("/{id}", (int id) => $"Детали пользователя с ID {id}");
usersGroup.MapPost("/", () => "Создать нового пользователя");

app.Run();

В этом примере все конечные точки, связанные с пользователями, сгруппированы под префиксом /users, что упрощает их управление и масштабирование.

Когда использовать MapGroup:

При наличии нескольких конечных точек с общим префиксом маршрута.
Когда требуется применить одинаковый middleware к группе конечных точек.
Для улучшения читаемости и организации кода в проектах с большим количеством маршрутов.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍132🔥1