TGViewer
Channel Public Channel
C# Development | YeaHub

C# Development | YeaHub

@yeahub_c_sharp_dev

Теория, подготовка к интервью и курсы для C# разработчиков

YeaHub — это платформа для IT-специалистов, объединяющая обучение, карьерный рост, развитие и сообщество единомышленников.

Платформа: https://yeahub.ru

Для связи: @ruslan_kuyanets
Subscribers
743
Photos
304
Videos
33
Links
537

Showing posts older than #201 · Back to latest

Older Posts 19 shown
Post #200 253
#полезное
🛞 Хочешь отслеживать изменения в базе данных в реальном времени?

Я реализовал Change Data Capture (CDC) в .NET с использованием Debezium, PostgreSQL и RabbitMQ.

Поток обработки:

🟠 PostgreSQL настроен на генерацию событий об изменениях
🟠 Debezium перехватывает эти изменения
🟠 События публикуются в RabbitMQ
🟠 MassTransit в .NET потребляет и обрабатывает их

Это лишь один из способов реализации архитектуры, основанной на событиях (Event-Driven Architecture).

Если ты проектируешь распределённые системы в .NET — вот полный гайд по созданию event-driven-систем с RabbitMQ

👉Новости 👉База вопросов
  • ❤ 1
Post #199 265
#Собес #postgres
🤔 Что такое Foreign Key (внешний ключ) в PostgreSQL?

Foreign Key - это ограничение в PostgreSQL, которое гарантирует целостность данных между двумя таблицами. Он связывает столбец одной таблицы с первичным ключом другой, обеспечивая, что все значения во внешнем ключе существуют в связанной таблице.

👉Новости 👉База вопросов
Post #198 291
#полезное
🤓 EF Core: DbContextOptionsBuilder используется для настройки DbContext, как показано в примере для консольного проекта. Также он может применяться вместе с внедрением зависимостей (dependency injection)

👉Новости 👉База вопросов
  • 👍 1
  • 🔥 1
  • 🥴 1
Post #197 283
#полезное
🥺 Внедрение настроек в .NET? Существует три основных интерфейса:

🟠 IOptions: кэшируется на всё время жизни приложения

🟠 IOptionsSnapshot: переоценивается при каждом запросе (scoped)

🟠 IOptionsMonitor: позволяет получать текущее значение и реагировать на изменения

Используйте IOptions для статической конфигурации, IOptionsSnapshot — в веб-приложениях, где конфигурация может меняться между запросами, а IOptionsMonitor — когда нужно отслеживать изменения настроек.

Подробнее о том, как работает паттерн Options и когда какой интерфейс использовать: read

👉Новости 👉База вопросов
  • 🥴 1
Post #196 256
#полезное
😵‍💫 Улучшения производительности FrozenDictionary с целочисленными (int) ключами в .NET 10

FrozenDictionary представляют собой коллекции, оптимизированные для чтения (Dictionary и Set), создание которых занимает больше времени, но чтение из них происходит быстрее по сравнению с неизменяемыми (immutable) коллекциями.

👉Новости 👉База вопросов
  • ❤ 1
Post #195 240
#Собес #postgres
🤔 Что такое схемы (schemas) в PostgreSQL?

Схемы в PostgreSQL — это контейнеры для объектов базы данных (таблиц, представлений, функций и т. д.). Они позволяют организовывать объекты базы данных в логически разделенные группы, что помогает упорядочить структуру базы данных и избегать конфликтов имен.

👉Новости 👉База вопросов
Post #194 286
#полезное
😇 В EF Core 9 улучшена функция ExecuteUpdate

Небольшое, но полезное улучшение.

Эта возможность появилась в EF Core 8 — для производительного обновления данных в базе без загрузки в память.

Однако изначально она поддерживала только примитивные типы.

Если нужно было обновить комплексный тип, приходилось вручную перечислять все его свойства… до выхода EF Core 9.

Теперь комплексные типы полностью поддерживаются — больше не нужно делать это вручную

👉Новости 👉База вопросов
  • ❤ 1
  • 👍 1
Post #193 226
#полезное
😊 Сократил время выполнения SQL-запроса с 70 мс до 1 мс.

Без изменений в коде. Без кэширования. Просто добавил filtered index (фильтрованный индекс).

Фильтрованные индексы — одна из самых недооценённых возможностей SQL.

Они позволяют индексировать только подмножество строк, соответствующих определённому условию — идеально подходят для флагов вроде ProcessedAt IS NULL.

Но есть нюанс: если условие выполняется для большинства строк, индекс не даст прироста производительности.

Эта оптимизация дала огромный прирост в одном из проектов.

В статье подробно разбирается реализацию и показывается, как это использовать: читать

👉Новости 👉База вопросов
Post #192 227
#полезное
👨‍💻 MongoDB теперь нативно доступен на Azure.

Больше никаких "костылей" между сервисами.

Теперь можно:

🟠 Запускать MongoDB Atlas напрямую из Azure Portal
🟠 Интегрироваться с Azure AI, Databricks, OpenAI — в одном потоке
🟠 Получать единый биллинг по всему стеку

Это будущее cloud-native разработки?

Или тесная интеграция с облаком — палка о двух концах для свободы разработчиков?

Полная разбивка: https://fnf.dev/4n1fsLd

👉Новости 👉База вопросов
Post #191 226
#Собес #postgres
🤔 Что такое отношение (relation) в PostgreSQL?

B PostgreSQL отношение - это таблица, которая состоит из строк и столбцов. Каждое отношение представляет собой сущность базы данных, хранящую данные в структурированном виде. Отношения могут быть как обычными таблицами, так и представлениями или индексами.

👉Новости 👉База вопросов
Post #189 288
#полезное
👋 Пример использования паттерна IOptions в ASP dotnet

IOptions<T> обеспечивает безопасность на этапе компиляции и устраняет использование магических строк.

На втором примере эквивалент с использованием IConfiguration вместо IOptions

👉Новости 👉База вопросов
  • ❤ 2
Post #188 254
#полезное
❤️‍🔥 Событийно-ориентированные фоновые задачи в C#

BackgroundWorker — это легковесный инструмент для выполнения асинхронной работы.

Обмен сообщениями между хостом и рабочим происходит через события.

Есть встроенная поддержка отмены задач и обновлений прогресса.

LINQPad визуализирует весь процесс :

вызвал Dump() — и данные сразу в окне Results как HTML.

Хочешь, стилизуй вывод с помощью CSS.

Полный скрипт для загрузки доступен по ссылке

👉Новости 👉База вопросов
  • 👍 2
Post #187 208
#ЛитКод
Задача: 510. Inorder Successor in BST II

Дан узел в двоичном дереве поиска, верните его последующего (in-order successor) в этом дереве. Если у узла нет последующего, верните null.

Последующий узла — это узел с наименьшим ключом, большим, чем node.val.

Вы будете иметь прямой доступ к узлу, но не к корню дерева. Каждый узел будет иметь ссылку на своего родителя. Ниже приведено определение для Node:
class Node {
public int val;
public Node left;
public Node right;
public Node parent;
}


Пример:
Input: tree = [5,3,6,2,4,null,null,1], node = 6
Output: null
Explanation: There is no in-order successor of the current node, so the answer is null.


👨‍💻 Алгоритм:

1⃣Проверка правого поддерева
Если у узла есть правый потомок, перейдите к правому узлу, затем спускайтесь влево до самого нижнего узла. Этот узел будет следующим узлом в порядке in-order.

2⃣Поиск предка
Если у узла нет правого потомка, поднимайтесь по дереву до тех пор, пока узел не станет левым потомком своего родителя. Родитель этого узла будет следующим узлом в порядке in-order.

3⃣Возвращение результата
Верните найденный узел или null, если следующий узел не найден.

😎 Решение:
public class Node {
public int val;
public Node left;
public Node right;
public Node parent;
}

public class Solution {
public Node InorderSuccessor(Node x) {
if (x.right != null) {
x = x.right;
while (x.left != null) {
x = x.left;
}
return x;
}

while (x.parent != null && x == x.parent.right) {
x = x.parent;
}
return x.parent;
}
}


👉Новости 👉База вопросов
  • ❤ 2
  • 👾 1
Post #186 208
#Собес #postgres
🤔 Что такое PostgreSQL replication?

Репликация в PostgreSQL - это процесс создания копий данных из основной базы данных на другие серверы. Это повышает отказоустойчивость, позволяет балансировать нагрузку и обеспечивает резервное копирование. Существует несколько типов репликации: синхронная и асинхронная.

👉Новости 👉База вопросов
  • 👍 2
Post #185 238
#полезное
😐 RoslynPad — легковесная C#-песочница с интеллектуальным кодом. Этот кроссплатформенный редактор превращает написание C#-кода в интерактивный процесс. В отличие от громоздких IDE, здесь есть только самое нужное: автодополнение на базе Roslyn, подсветка ошибок и быстрый запуск кода.

Проект особенно удобен для экспериментов: можно тестировать фрагменты кода без создания полноценного проекта. Под капотом у инструмента движок компилятора C# и редактор AvalonEdit с поддержкой темной темы.
Гитхаб

👉Новости 👉База вопросов
  • 👍 1
Post #184 214
#полезное
😐 Режим агента теперь доступен в публичной предварительной версии для всех пользователей в Visual Studio 17.14.

Режим агента в Visual Studio позволяет задавать задачи с помощью естественного языка — Copilot самостоятельно планирует действия, редактирует кодовую базу, вызывает инструменты и итеративно решает проблемы.

В отличие от Copilot Chat или Copilot Edits, агент не останавливается на одной подсказке или правке файла — он действует автономно и выполняет задачу до конца.
Тык сюда

👉Новости 👉База вопросов
  • ❤ 1
  • 👎 1
  • 🔥 1
Post #183 212
#полезное
😎 Самое раздражающее при отладке C#-кода?

(что может серьёзно замедлить процесс)

Проверка значений в коллекции.

Приходится разворачивать каждый элемент, чтобы посмотреть значения свойств.

Чтобы решить эту проблему, в Visual Studio недавно появилась функция закрепляемых свойств (pinnable properties).

Она позволяет быстро отслеживать нужные свойства.

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

См. видео-пример, как это использовать

👉Новости 👉База вопросов
  • 👍 2
Post #182 221
#Собес #postgres
🤔 Что такое VACUUM в PostgreSQL

VACUUM - это команда в PostgreSQL, которая удаляет ненужные данные, освобождает место и предотвращает разрастание базы данных. Регулярное выполнение vAcuum помогает поддерживать производительность базы.

👉Новости 👉База вопросов
  • 👍 1
Post #181 267
#полезное
🥄 NBomber — нагрузочное тестирование на .NET без привязки к протоколам. Этот фреймворк позволяет описывать сценарии нагрузочного тестирования на чистом C#/F#, без изучения специализированного DSL.

Ключевая особенность проекта в распределённом режиме для имитации реалистичной нагрузки и интеграция с Grafana/InfluxDB для мониторинга в реальном времени. При этом сценарии можно запускать как консольное приложение или даже как xUnit-тесты в CI/CD.
Гитхаб

👉Новости 👉База вопросов
  • ❤ 3
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →