This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
😎 Самое раздражающее при отладке C#-кода?
(что может серьёзно замедлить процесс)
Проверка значений в коллекции.
Приходится разворачивать каждый элемент, чтобы посмотреть значения свойств.
Чтобы решить эту проблему, в Visual Studio недавно появилась функция закрепляемых свойств (pinnable properties).
Она позволяет быстро отслеживать нужные свойства.
Чтобы воспользоваться, наведите курсор на свойство и нажмите на иконку закрепления.
См. видео-пример, как это использовать
👉 Новости 👉 База вопросов
(что может серьёзно замедлить процесс)
Приходится разворачивать каждый элемент, чтобы посмотреть значения свойств.
Чтобы решить эту проблему, в Visual Studio недавно появилась функция закрепляемых свойств (pinnable properties).
Она позволяет быстро отслеживать нужные свойства.
Чтобы воспользоваться, наведите курсор на свойство и нажмите на иконку закрепления.
См. видео-пример, как это использовать
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
😐 Режим агента теперь доступен в публичной предварительной версии для всех пользователей в Visual Studio 17.14.
Режим агента в Visual Studio позволяет задавать задачи с помощью естественного языка — Copilot самостоятельно планирует действия, редактирует кодовую базу, вызывает инструменты и итеративно решает проблемы.
В отличие от Copilot Chat или Copilot Edits, агент не останавливается на одной подсказке или правке файла — он действует автономно и выполняет задачу до конца.
Тык сюда
👉 Новости 👉 База вопросов
Режим агента в Visual Studio позволяет задавать задачи с помощью естественного языка — Copilot самостоятельно планирует действия, редактирует кодовую базу, вызывает инструменты и итеративно решает проблемы.
В отличие от Copilot Chat или Copilot Edits, агент не останавливается на одной подсказке или правке файла — он действует автономно и выполняет задачу до конца.
Тык сюда
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👎1🔥1
#полезное
😐 RoslynPad — легковесная C#-песочница с интеллектуальным кодом. Этот кроссплатформенный редактор превращает написание C#-кода в интерактивный процесс. В отличие от громоздких IDE, здесь есть только самое нужное: автодополнение на базе Roslyn, подсветка ошибок и быстрый запуск кода.
Проект особенно удобен для экспериментов: можно тестировать фрагменты кода без создания полноценного проекта. Под капотом у инструмента движок компилятора C# и редактор AvalonEdit с поддержкой темной темы.
Гитхаб
👉 Новости 👉 База вопросов
Проект особенно удобен для экспериментов: можно тестировать фрагменты кода без создания полноценного проекта. Под капотом у инструмента движок компилятора C# и редактор AvalonEdit с поддержкой темной темы.
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#Собес #postgres
🤔 Что такое PostgreSQL replication?
Репликация в PostgreSQL - это процесс создания копий данных из основной базы данных на другие серверы. Это повышает отказоустойчивость, позволяет балансировать нагрузку и обеспечивает резервное копирование. Существует несколько типов репликации: синхронная и асинхронная.
👉 Новости 👉 База вопросов
Репликация в PostgreSQL - это процесс создания копий данных из основной базы данных на другие серверы. Это повышает отказоустойчивость, позволяет балансировать нагрузку и обеспечивает резервное копирование. Существует несколько типов репликации: синхронная и асинхронная.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
#ЛитКод
Задача: 510. Inorder Successor in BST II
Дан узел в двоичном дереве поиска, верните его последующего (in-order successor) в этом дереве. Если у узла нет последующего, верните null.
Последующий узла — это узел с наименьшим ключом, большим, чем node.val.
Вы будете иметь прямой доступ к узлу, но не к корню дерева. Каждый узел будет иметь ссылку на своего родителя. Ниже приведено определение для Node:
Пример:
👨💻 Алгоритм:
1⃣ Проверка правого поддерева
Если у узла есть правый потомок, перейдите к правому узлу, затем спускайтесь влево до самого нижнего узла. Этот узел будет следующим узлом в порядке in-order.
2⃣ Поиск предка
Если у узла нет правого потомка, поднимайтесь по дереву до тех пор, пока узел не станет левым потомком своего родителя. Родитель этого узла будет следующим узлом в порядке in-order.
3⃣ Возвращение результата
Верните найденный узел или null, если следующий узел не найден.
😎 Решение:
👉 Новости 👉 База вопросов
Задача: 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.
Если у узла есть правый потомок, перейдите к правому узлу, затем спускайтесь влево до самого нижнего узла. Этот узел будет следующим узлом в порядке in-order.
Если у узла нет правого потомка, поднимайтесь по дереву до тех пор, пока узел не станет левым потомком своего родителя. Родитель этого узла будет следующим узлом в порядке in-order.
Верните найденный узел или 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;
}
}Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👾1
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
❤️🔥 Событийно-ориентированные фоновые задачи в C#
BackgroundWorker — это легковесный инструмент для выполнения асинхронной работы.
Обмен сообщениями между хостом и рабочим происходит через события.
Есть встроенная поддержка отмены задач и обновлений прогресса.
LINQPad визуализирует весь процесс :
вызвал
Хочешь, стилизуй вывод с помощью CSS.
Полный скрипт для загрузки доступен по ссылке
👉 Новости 👉 База вопросов
BackgroundWorker — это легковесный инструмент для выполнения асинхронной работы.
Обмен сообщениями между хостом и рабочим происходит через события.
Есть встроенная поддержка отмены задач и обновлений прогресса.
LINQPad визуализирует весь процесс :
вызвал
Dump() — и данные сразу в окне Results как HTML.Хочешь, стилизуй вывод с помощью CSS.
Полный скрипт для загрузки доступен по ссылке
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
#полезное
👋 Пример использования паттерна IOptions в ASP dotnet
На втором примере эквивалент с использованием
👉 Новости 👉 База вопросов
IOptions<T> обеспечивает безопасность на этапе компиляции и устраняет использование магических строк.На втором примере эквивалент с использованием
IConfiguration вместо IOptionsPlease open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
#Собес #postgres
🤔 Что такое отношение (relation) в PostgreSQL?
B PostgreSQL отношение - это таблица, которая состоит из строк и столбцов. Каждое отношение представляет собой сущность базы данных, хранящую данные в структурированном виде. Отношения могут быть как обычными таблицами, так и представлениями или индексами.
👉 Новости 👉 База вопросов
B PostgreSQL отношение - это таблица, которая состоит из строк и столбцов. Каждое отношение представляет собой сущность базы данных, хранящую данные в структурированном виде. Отношения могут быть как обычными таблицами, так и представлениями или индексами.
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👨💻 MongoDB теперь нативно доступен на Azure.
Больше никаких "костылей" между сервисами.
Теперь можно:
🟠 Запускать MongoDB Atlas напрямую из Azure Portal
🟠 Интегрироваться с Azure AI, Databricks, OpenAI — в одном потоке
🟠 Получать единый биллинг по всему стеку
Это будущее cloud-native разработки?
Или тесная интеграция с облаком — палка о двух концах для свободы разработчиков?
Полная разбивка: https://fnf.dev/4n1fsLd
👉 Новости 👉 База вопросов
Больше никаких "костылей" между сервисами.
Теперь можно:
Это будущее cloud-native разработки?
Или тесная интеграция с облаком — палка о двух концах для свободы разработчиков?
Полная разбивка: https://fnf.dev/4n1fsLd
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😊 Сократил время выполнения SQL-запроса с 70 мс до 1 мс.
Без изменений в коде. Без кэширования. Просто добавил filtered index (фильтрованный индекс).
Фильтрованные индексы — одна из самых недооценённых возможностей SQL.
Они позволяют индексировать только подмножество строк, соответствующих определённому условию — идеально подходят для флагов вроде
Но есть нюанс: если условие выполняется для большинства строк, индекс не даст прироста производительности.
Эта оптимизация дала огромный прирост в одном из проектов.
В статье подробно разбирается реализацию и показывается, как это использовать: читать
👉 Новости 👉 База вопросов
Без изменений в коде. Без кэширования. Просто добавил filtered index (фильтрованный индекс).
Фильтрованные индексы — одна из самых недооценённых возможностей SQL.
Они позволяют индексировать только подмножество строк, соответствующих определённому условию — идеально подходят для флагов вроде
ProcessedAt IS NULL.Но есть нюанс: если условие выполняется для большинства строк, индекс не даст прироста производительности.
Эта оптимизация дала огромный прирост в одном из проектов.
В статье подробно разбирается реализацию и показывается, как это использовать: читать
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😇 В EF Core 9 улучшена функция
Небольшое, но полезное улучшение.
Эта возможность появилась в EF Core 8 — для производительного обновления данных в базе без загрузки в память.
Однако изначально она поддерживала только примитивные типы.
Если нужно было обновить комплексный тип, приходилось вручную перечислять все его свойства… до выхода EF Core 9.
Теперь комплексные типы полностью поддерживаются — больше не нужно делать это вручную
👉 Новости 👉 База вопросов
ExecuteUpdateНебольшое, но полезное улучшение.
Эта возможность появилась в EF Core 8 — для производительного обновления данных в базе без загрузки в память.
Однако изначально она поддерживала только примитивные типы.
Если нужно было обновить комплексный тип, приходилось вручную перечислять все его свойства… до выхода EF Core 9.
Теперь комплексные типы полностью поддерживаются — больше не нужно делать это вручную
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1
#Собес #postgres
🤔 Что такое схемы (schemas) в PostgreSQL?
Схемы в PostgreSQL — это контейнеры для объектов базы данных (таблиц, представлений, функций и т. д.). Они позволяют организовывать объекты базы данных в логически разделенные группы, что помогает упорядочить структуру базы данных и избегать конфликтов имен.
👉 Новости 👉 База вопросов
Схемы в PostgreSQL — это контейнеры для объектов базы данных (таблиц, представлений, функций и т. д.). Они позволяют организовывать объекты базы данных в логически разделенные группы, что помогает упорядочить структуру базы данных и избегать конфликтов имен.
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😵💫 Улучшения производительности
👉 Новости 👉 База вопросов
FrozenDictionary с целочисленными (int) ключами в .NET 10FrozenDictionary представляют собой коллекции, оптимизированные для чтения (Dictionary и Set), создание которых занимает больше времени, но чтение из них происходит быстрее по сравнению с неизменяемыми (immutable) коллекциями.Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#полезное
🥺 Внедрение настроек в .NET? Существует три основных интерфейса:
🟠
🟠
🟠
Используйте
Подробнее о том, как работает паттерн Options и когда какой интерфейс использовать: read
👉 Новости 👉 База вопросов
IOptions: кэшируется на всё время жизни приложенияIOptionsSnapshot: переоценивается при каждом запросе (scoped)IOptionsMonitor: позволяет получать текущее значение и реагировать на измененияИспользуйте
IOptions для статической конфигурации, IOptionsSnapshot — в веб-приложениях, где конфигурация может меняться между запросами, а IOptionsMonitor — когда нужно отслеживать изменения настроек.Подробнее о том, как работает паттерн Options и когда какой интерфейс использовать: read
Please open Telegram to view this post
VIEW IN TELEGRAM
🥴1
#полезное
🤓 EF Core:
👉 Новости 👉 База вопросов
DbContextOptionsBuilder используется для настройки DbContext, как показано в примере для консольного проекта. Также он может применяться вместе с внедрением зависимостей (dependency injection)Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1🥴1
#Собес #postgres
🤔 Что такое Foreign Key (внешний ключ) в PostgreSQL?
Foreign Key - это ограничение в PostgreSQL, которое гарантирует целостность данных между двумя таблицами. Он связывает столбец одной таблицы с первичным ключом другой, обеспечивая, что все значения во внешнем ключе существуют в связанной таблице.
👉 Новости 👉 База вопросов
Foreign Key - это ограничение в PostgreSQL, которое гарантирует целостность данных между двумя таблицами. Он связывает столбец одной таблицы с первичным ключом другой, обеспечивая, что все значения во внешнем ключе существуют в связанной таблице.
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🛞 Хочешь отслеживать изменения в базе данных в реальном времени?
Я реализовал Change Data Capture (CDC) в .NET с использованием Debezium, PostgreSQL и RabbitMQ.
Поток обработки:
🟠 PostgreSQL настроен на генерацию событий об изменениях
🟠 Debezium перехватывает эти изменения
🟠 События публикуются в RabbitMQ
🟠 MassTransit в .NET потребляет и обрабатывает их
Это лишь один из способов реализации архитектуры, основанной на событиях (Event-Driven Architecture).
Если ты проектируешь распределённые системы в .NET — вот полный гайд по созданию event-driven-систем с RabbitMQ
👉 Новости 👉 База вопросов
Я реализовал Change Data Capture (CDC) в .NET с использованием Debezium, PostgreSQL и RabbitMQ.
Поток обработки:
Это лишь один из способов реализации архитектуры, основанной на событиях (Event-Driven Architecture).
Если ты проектируешь распределённые системы в .NET — вот полный гайд по созданию event-driven-систем с RabbitMQ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#полезное
😜 Видишь баг?
9 из 10 разработчиков пропускают его. Проверь себя
Проблема:
>
> Если
Решение:
✅ Явно оборачивай все такие команды в транзакцию вручную
Мелочь, а последствия могут быть серьёзные
👉 Новости 👉 База вопросов
9 из 10 разработчиков пропускают его. Проверь себя
Проблема:
>
ExecuteUpdateAsync и ExecuteDeleteAsync обходят Change Tracker в EF Core> Если
SaveChangesAsync() потом упадёт — обновления в базе не откатятся автоматическиРешение:
Мелочь, а последствия могут быть серьёзные
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🤯1
#полезное
😜 5 недооценённых LINQ-методов, которые мгновенно улучшают твой код:
1⃣
2⃣
3⃣
4⃣
5⃣
Бонус, который почти попал в топ:
🟠
🟠
🟠
🟠
🟠
LINQ — кладезь полезных методов, если знаешь, где копать
👉 Новости 👉 База вопросов
Zip — объединяет две последовательности в парыChunk — разбивает коллекцию на чанки фиксированного размераOfType<T>() — фильтрует элементы по типуDistinctBy — возвращает уникальные элементы по заданному ключуSelectMany — разворачивает вложенные коллекции в плоский списокБонус, который почти попал в топ:
SequenceEqual — сравнивает две коллекции на равенствоAggregate — накапливает значение с помощью функции (reduce)GroupJoin — объединяет по группам (аналог LEFT OUTER JOIN)ToLookup — создает коллекцию, похожую на Dictionary, но с множеством значенийIntersect — возвращает пересечение двух коллекцийLINQ — кладезь полезных методов, если знаешь, где копать
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#Собес #postgres
🤔 Что такое EXPLAIN в PostgreSQL?
EXPLAIN — это команда в PostgreSQL, которая показывает план выполнения запроса. Она помогает увидеть, как PostgreSQL планирует обрабатывать запрос, какие индексы используются и сколько времени займет выполнение каждого шага.
👉 Новости 👉 База вопросов
EXPLAIN — это команда в PostgreSQL, которая показывает план выполнения запроса. Она помогает увидеть, как PostgreSQL планирует обрабатывать запрос, какие индексы используются и сколько времени займет выполнение каждого шага.
Please open Telegram to view this post
VIEW IN TELEGRAM