С# Backend developer — до 200 000 ₽, Удалёнка
Руководитель отдела разработки — от 500 000 ₽, Удалёнка
Разработчик C# — Удалёнка.
Разработчик ПО — до 300 000 ₽, Удалёнка.
Senior Web-разработчик C# — Удалёнка.
Бустер — Удалённо (домашний офис).
Please open Telegram to view this post
VIEW IN TELEGRAM
Проблема: при работе с большими наборами данных обычное бинарное дерево поиска (BST) может деградировать в линейную структуру, что снижает скорость поиска до O(n).
Решение: В книге Algorithms and Data Structures for OOP With C# автор предлагает использовать AVL-дерево — сбалансированное дерево, которое поддерживает балансировку после каждой операции вставки или удаления. Это гарантирует сложность поиска, вставки и удаления за O(log n).
Пример кода:
public class AVLNode
{
public int Key;
public AVLNode Left, Right;
public int Height;
public AVLNode(int key)
{
Key = key;
Height = 1;
}
}
public class AVLTree
{
private AVLNode root;
int Height(AVLNode node) => node?.Height ?? 0;
int BalanceFactor(AVLNode node) => Height(node.Left) - Height(node.Right);
AVLNode RightRotate(AVLNode y)
{
var x = y.Left;
var T2 = x.Right;
x.Right = y;
y.Left = T2;
y.Height = Math.Max(Height(y.Left), Height(y.Right)) + 1;
x.Height = Math.Max(Height(x.Left), Height(x.Right)) + 1;
return x;
}
AVLNode LeftRotate(AVLNode x)
{
var y = x.Right;
var T2 = y.Left;
y.Left = x;
x.Right = T2;
x.Height = Math.Max(Height(x.Left), Height(x.Right)) + 1;
y.Height = Math.Max(Height(y.Left), Height(y.Right)) + 1;
return y;
}
public AVLNode Insert(AVLNode node, int key)
{
if (node == null)
return new AVLNode(key);
if (key < node.Key)
node.Left = Insert(node.Left, key);
else if (key > node.Key)
node.Right = Insert(node.Right, key);
else
return node;
node.Height = 1 + Math.Max(Height(node.Left), Height(node.Right));
int balance = BalanceFactor(node);
if (balance > 1 && key < node.Left.Key)
return RightRotate(node);
if (balance < -1 && key > node.Right.Key)
return LeftRotate(node);
if (balance > 1 && key > node.Left.Key)
{
node.Left = LeftRotate(node.Left);
return RightRotate(node);
}
if (balance < -1 && key < node.Right.Key)
{
node.Right = RightRotate(node.Right);
return LeftRotate(node);
}
return node;
}
}
Преимущества:
— Обеспечение сбалансированного дерева с высотой O(log n)
— Быстрый поиск и обновление данных
— Подходит для систем, требующих высокопроизводительных операций поиска
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤2🔥1
😡 А вас тоже бесят облачные сервисы?
Согласитесь, статус отношений с облаками — все сложно. Но что, если можно изменить правила игры?
Мы готовим нечто особенное в мире облачных технологий, но сначала хотим услышать правду от тех, кто реально работает с облаками каждый день.
❓Что мы хотим узнать:
— Для чего вы реально используете облако?
— Чего катастрофически не хватает прямо сейчас?
— Что бесит больше всего? (можно материться)
— Как выбираете провайдера — по цене или по любви?
— и тому подобное
По результатам опроса мы подготовим исследование без маркетингового мусора и вы узнаете, как обстоят дела у коллег.
⚡️Время на опрос: меньше, чем на кофе-брейк. Жмите → https://clc.to/nboYDA
Согласитесь, статус отношений с облаками — все сложно. Но что, если можно изменить правила игры?
Мы готовим нечто особенное в мире облачных технологий, но сначала хотим услышать правду от тех, кто реально работает с облаками каждый день.
❓Что мы хотим узнать:
— Для чего вы реально используете облако?
— Чего катастрофически не хватает прямо сейчас?
— Что бесит больше всего? (можно материться)
— Как выбираете провайдера — по цене или по любви?
— и тому подобное
По результатам опроса мы подготовим исследование без маркетингового мусора и вы узнаете, как обстоят дела у коллег.
⚡️Время на опрос: меньше, чем на кофе-брейк. Жмите → https://clc.to/nboYDA
🥱2❤1🥰1
📒 Красота и удобство: Scalar для документации
Хотите, чтобы ваше API был не только функциональным, но и удобным для разработчиков? В карточках — шаги по созданию элегантной и интерактивной документации с помощью Scalar.
➡️ Прочитайте статью и украсьте ваши API
🐸 Библиотека шарписта #буст
Хотите, чтобы ваше API был не только функциональным, но и удобным для разработчиков? В карточках — шаги по созданию элегантной и интерактивной документации с помощью Scalar.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
🔁 Клонируем объекты по-взрослому
Надо скопировать объект так, чтобы ничего не сломать и не тащить за собой мусор? Для этого можно использовать FastCloner — библиотеку для C#, которая умеет делать глубокое клонирование объектов.
Вместо ручного копирования или сериализации — одна строка:
— Пример:
— Как подключить
С этой либой объект «просто скопируется» и не начнёт вести себя как капризный клон в sci-fi фильме.
➡️ Посмотреть репозиторий проекта
🐸 Библиотека шарписта #буст
Надо скопировать объект так, чтобы ничего не сломать и не тащить за собой мусор? Для этого можно использовать FastCloner — библиотеку для C#, которая умеет делать глубокое клонирование объектов.
Вместо ручного копирования или сериализации — одна строка:
DeepClone()
.— Пример:
using FastCloner;
var original = new Person {
Name = "Alice",
Address = new Address { City = "Berlin" }
};
var clone = original.DeepClone();
clone.Address.City = "Paris";
// original.Address.City всё ещё "Berlin"
— Как подключить
dotnet add package FastCloner
С этой либой объект «просто скопируется» и не начнёт вести себя как капризный клон в sci-fi фильме.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤4🌚3🔥1
🚀 Вышел .NET 10 Preview №5
Microsoft представила очередной превью .NET 10. Особо отмечены улучшения производительности и новые API, уже можно смело тестировать приложения.
Что нового
— Прогрессивное улучшение производительности — escape-анализ делегатов, оптимизация под ARM64 и улучшенный inlining.
— Поддержка пост-квантовой криптографии (PQC).
— Введены пользовательские составные операторы присваивания (compound assignment).
— ASP.NET Core и Blazor: добавлены OpenAPI 3.1, трассировка, кастомные настройки HTTP.sys и поддержка NotFound-страниц в Blazor Router.
➡️ Блог разработчиков
🐸 Библиотека шарписта #свежак
Microsoft представила очередной превью .NET 10. Особо отмечены улучшения производительности и новые API, уже можно смело тестировать приложения.
Что нового
— Прогрессивное улучшение производительности — escape-анализ делегатов, оптимизация под ARM64 и улучшенный inlining.
— Поддержка пост-квантовой криптографии (PQC).
— Введены пользовательские составные операторы присваивания (compound assignment).
— ASP.NET Core и Blazor: добавлены OpenAPI 3.1, трассировка, кастомные настройки HTTP.sys и поддержка NotFound-страниц в Blazor Router.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤5🔥2🥰2
Please open Telegram to view this post
VIEW IN TELEGRAM
😁49🌚6👾5
Когда проект растёт, важно не только чтобы «работало», а чтобы его можно было легко поддерживать, тестировать и расширять.
Подготовили вашего личного ревьюера, который знает наизусть все пять принципов SOLID и умеет применять их на практике.
Промпт для ревью по принципам SOLID:
You are a seasoned SOLID C# .NET Coach, renowned for your ability to identify code smells and guide developers towards writing maintainable, testable, and robust applications. Your expertise lies in the SOLID principles and their practical application within the .NET ecosystem. Your goal is to analyze provided C# code snippets and pinpoint violations of the SOLID principles, offering concrete suggestions for improvement.
Here is the format you will use to analyze the code and provide actionable recommendations:
---
## Code Snippet
```csharp
$code_snippet
```
## SOLID Principle Violations Identified
* **Single Responsibility Principle (SRP):** $srp_violation_explanation
* **Recommendation:** $srp_recommendation
* **Open/Closed Principle (OCP):** $ocp_violation_explanation
* **Recommendation:** $ocp_recommendation
* **Liskov Substitution Principle (LSP):** $lsp_violation_explanation
* **Recommendation:** $lsp_recommendation
* **Interface Segregation Principle (ISP):** $isp_violation_explanation
* **Recommendation:** $isp_recommendation
* **Dependency Inversion Principle (DIP):** $dip_violation_explanation
* **Recommendation:** $dip_recommendation
## Refactored Code (Optional - Only provide if significant changes are needed)
```csharp
$refactored_code
```
## Additional Notes
$additional_notes (e.g., potential trade-offs, further improvements)
---
Here is the C# code you are tasked with analyzing: [ВСТАВЬТЕ КОД СЮДА]
Формат ответа — как в профессиональном ревью: по каждому принципу отдельный блок, плюс пояснение и улучшенный вариант кода, если нужно.
Please open Telegram to view this post
VIEW IN TELEGRAM
😁7👍4❤2🔥2
🌧️ Облачная терапия: время выговориться!
Знакомая ситуация? Покупаете облако как BMW, а получаете телегу с квадратными колесами. Обещают 99.9% uptime, а сервер падает на релизе. Техподдержка отвечает через сутки фразой «попробуйте перезагрузить».
Пора узнать, как обстоят дела с облаками на самом деле. Поэтому мы собираем ваши реальные истории про облачные сервисы.
🤫О чем спросим:
— Зачем вам вообще это облако нужно
— Какие косяки достали до печенок
— Сколько денег утекает в никуда ежемесячно
— Что должно случиться, чтобы вы сменили провайдера
— И еще пару каверзных вопросов
⏱️ 2 минуты честности = большое исследование без воды → https://clc.to/nboYDA
Знакомая ситуация? Покупаете облако как BMW, а получаете телегу с квадратными колесами. Обещают 99.9% uptime, а сервер падает на релизе. Техподдержка отвечает через сутки фразой «попробуйте перезагрузить».
Пора узнать, как обстоят дела с облаками на самом деле. Поэтому мы собираем ваши реальные истории про облачные сервисы.
🤫О чем спросим:
— Зачем вам вообще это облако нужно
— Какие косяки достали до печенок
— Сколько денег утекает в никуда ежемесячно
— Что должно случиться, чтобы вы сменили провайдера
— И еще пару каверзных вопросов
⏱️ 2 минуты честности = большое исследование без воды → https://clc.to/nboYDA
😁12
🧑💻 История одного недоразумения в команде
Представьте, что вы сидите на собрании, слушаете коллегу и вдруг ловите себя на мысли: «Что он вообще имеет в виду?»
Все говорят об одном и том же, но каждый использует свои термины.
Такое случилось с одним из наших подписчиков, который столкнулся с забавным недоразумением.
История подписчика:
💬 А с вами были похожие случаи, когда разные термины вызывали недоразумения? Поделитесь опытом в комментариях 👇
P.S. Если хотите задать вопрос сообществу или поделиться историей, заполните нашу гугл-форму.
🐸 Библиотека шарписта #междусобойчик
Представьте, что вы сидите на собрании, слушаете коллегу и вдруг ловите себя на мысли: «Что он вообще имеет в виду?»
Все говорят об одном и том же, но каждый использует свои термины.
Такое случилось с одним из наших подписчиков, который столкнулся с забавным недоразумением.
История подписчика:
Работая в своей команде, я привык называть стенд, которым пользуются клиенты, «прод» — это слово всегда звучало для меня как нечто привычное и стандартное.
Но вот на одном собрании коллега вдруг начал говорить о нашем «бое». Я сразу немного растерялся. Не понимаю... Что за «бой»? Может, это означает что-то важное или срочное? Я начал гадать, что, возможно, это продукт, над которым команда работает под невероятным давлением сроков.
💬 А с вами были похожие случаи, когда разные термины вызывали недоразумения? Поделитесь опытом в комментариях 👇
P.S. Если хотите задать вопрос сообществу или поделиться историей, заполните нашу гугл-форму.
Please open Telegram to view this post
VIEW IN TELEGRAM
😁2❤1
Иногда баг живёт только на сервере: локально всё чисто, staging не помогает, а в проде что-то горит. Решение?
Remote Debugging — официальная фича Visual Studio, которая позволяет подключиться к удалённому процессу и отлаживать его, как будто он у вас под рукой.
Как это работает:
1. Устанавливаете Remote Tools на удалённую машину (подходит даже обычный Windows Server, главное — не забыть про нужную версию под вашу IDE).
2. Открываете в Visual Studio на локальной машине ваш проект.
3. Подключаетесь к удалённому хосту через IP или hostname — да, просто так.
4. Прикрепляетесь к процессу (например, dotnet.exe или IIS) и начинаете отладку.
Всё работает: точки остановок, переменные, выражения, консоль, async-код — вы реально «внутри» приложения.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12👍6🔥2👏2
Успей впрыгнуть на курс «AI-агенты для DS» до завтрашнего повышения цены: 59.000 р. вместо
Про RAG слышали все — это уже два года самый массовый способ применения LLM в проде для бизнеса.
Это значит, что точность и надёжность такого решения достаточно предсказуемы для того, чтобы исключить человека из процесса аппрува выдачи LLM,
а связка «локально развернутая LLM + RAG над корпоративными документами» обеспечивает достаточную конфиденциальность, чтобы снять тревожность
«что наши данные попадут в OpenAI».
Эта история настолько популярна, что на рынке есть готовые RAG-решения,
а даже «маленькие» опенсорс-модели (до 5B) уже обзавелись своей RAG-ареной:
👉 https://huggingface.co/spaces/aizip-dev/SLM-RAG-Arena
Во время обучения на курсе «AI-агенты для DS» научим собирать автономные системы под реальные бизнес-задачи. На прошлой неделе мы рассказали о первом занятии.
— Собираем свой RAG-пайплайн на своих данных
— Обсуждаем, почему качество такой системы нельзя измерять «на глаз»
— Разбираем схему LLM as a Judge и как подготовить для неё датасет
— Что такое guardrails и как они спасают от бреда
— Что делать, когда LLM не знает ответа
— Смотрим на агентский RAG и обсуждаем, можно ли использовать RAG как память агента
Если пропустили первое занятие, то вот ссылочка
❗️До повышения цены остался последний день — бронируйте место сейчас
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1🥱1
🤖 Доработки Copilot для разработчиков
Microsoft добавили несколько интересных фичей для разработчиков в Copilot. Давайте разберём, что появилось нового.
— Теперь Copilot подтягивает свежую документацию прямо из Microsoft Learn, если модель не знает об обновлениях .NET.
— При реализации интерфейсов или абстрактных методов можно выбрать вариант "с помощью Copilot" — и он сам сгенерирует тело метода на основе контекста.
— Наведите курсор на метод или переменную — и через «Describe with Copilot» получите пояснение к коду, прямо в редакторе.
— Copilot сам предложит заполнить summary, param и returns, когда вы пишете «///» над методом.
Если у вас Visual Studio 17.14 и включены feature‑flags для Copilot, всё это работает прямо из коробки.
➡️ Блог разработчиков
🐸 Библиотека шарписта #свежак
Microsoft добавили несколько интересных фичей для разработчиков в Copilot. Давайте разберём, что появилось нового.
— Теперь Copilot подтягивает свежую документацию прямо из Microsoft Learn, если модель не знает об обновлениях .NET.
— При реализации интерфейсов или абстрактных методов можно выбрать вариант "с помощью Copilot" — и он сам сгенерирует тело метода на основе контекста.
— Наведите курсор на метод или переменную — и через «Describe with Copilot» получите пояснение к коду, прямо в редакторе.
— Copilot сам предложит заполнить summary, param и returns, когда вы пишете «///» над методом.
Если у вас Visual Studio 17.14 и включены feature‑flags для Copilot, всё это работает прямо из коробки.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍5😢1
Когда речь заходит о продуктивности, многие стремятся следовать общепринятым методам и подходам. Но что если самые странные лайфхаки действительно работают?
В карточках выяснили, что нестандартные методы могут быть такими же эффективными, как и проверенные.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5😁4💯3