Диплом в IT вещь нестабильная. Одним подавай три профильных, чтобы устроиться, другие косо взглянут на любой диплом, который не из МФТИ.
В карточках собрали факты про эту корочку. Листайте и проверяйте сколько вам можно накинуть за диплом.
📍 Навигация: Вакансии • Задачи • Собесы
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2🥰2
Partial классы — это C#-хакинг, который разбивает один класс на несколько файлов, не ломая компиляцию. Идеально для автогенерации, командной работы и масштабирования монстров-кода.
Представьте: WinForms или WPF дизайнер генерирует кучу кода в .Designer.cs, а вы хотите добавить свою логику. Без partial пришлось бы вручную мержить изменения или наследоваться с кучей override. Partial решает это элегантно — основной класс в вашем файле, автокод в отдельном.
Все части класса должны иметь одинаковые модификаторы доступа и использовать ключевое слово
partial. Компилятор проверит согласованность.Живой пример:
// Employee.Core.cs — базовая структура
public partial class Employee
{
public string Name { get; set; }
public decimal Salary { get; set; }
public partial void ValidateName();
public partial void ValidateSalary();
public void Hire()
{
ValidateName();
ValidateSalary();
Console.WriteLine($"{Name} нанят с зарплатой {Salary:C}!");
}
}
// Employee.Validation.cs — бизнес-правила
public partial class Employee
{
public partial void ValidateName()
{
if (string.IsNullOrWhiteSpace(Name) || Name.Length < 2)
throw new ArgumentException("Имя должно быть не короче 2 символов!");
}
public partial void ValidateSalary()
{
if (Salary < 50000) throw new ArgumentException("Зарплата не может быть ниже 50k!");
}
}
// Employee.Extensions.cs — расширения (опционально)
public partial class Employee
{
public void Promote() => Salary *= 1.2m;
}
Partial методы уникальны: если реализация отсутствует, метод полностью удаляется из IL. Идеально для опциональных хуков в генерируемом коде.
📍 Навигация: Вакансии • Задачи • Собесы
#sharp_view
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6🥰2
AI-агенты в Enterprise: взгляд .NET разработчика
Пока стартапы играются с Python-скриптами, энтерпрайз требует архитектуры. Мультиагентные системы в 2026 году — это, по сути, новые микросервисы.
В обновленном курсе по AI-агентам мы сместили фокус с простого «кодинга» на системное проектирование и архитектуру.
Что важного для архитектора:
— Оркестрация: Разбор
— RAG & Vector DBs: Интеграция с Pinecone/Weaviate (актуально для корпоративных баз знаний).
— Инфраструктура: Deployment, GPU-кластеры и AgentOps (мониторинг).
—
Курс разделен на треки. Если не хотите писать на Python, выбирайте
⚡️ Offer 3-in-1:
Покупаете курс по агентам — забираете два любых других бесплатно. Отличный шанс взять «Алгоритмы» или «Паттерны».
Изучить программу
Пока стартапы играются с Python-скриптами, энтерпрайз требует архитектуры. Мультиагентные системы в 2026 году — это, по сути, новые микросервисы.
В обновленном курсе по AI-агентам мы сместили фокус с простого «кодинга» на системное проектирование и архитектуру.
Что важного для архитектора:
— Оркестрация: Разбор
LangGraph (графы состояний) и AutoGen.— RAG & Vector DBs: Интеграция с Pinecone/Weaviate (актуально для корпоративных баз знаний).
— Инфраструктура: Deployment, GPU-кластеры и AgentOps (мониторинг).
—
Курс разделен на треки. Если не хотите писать на Python, выбирайте
Overview — поймете принципы построения систем, протоколы MCP и A2A коммуникацию.⚡️ Offer 3-in-1:
Покупаете курс по агентам — забираете два любых других бесплатно. Отличный шанс взять «Алгоритмы» или «Паттерны».
Изучить программу
😁5❤2
Вспомним что происходило на этой неделе.
— GetElapsedTime сам посчитает время выполнения
— Пишем письмо Деду Морозу
— Пагинация и фильтрация через красоту
— Сотрудника Amazon уволили из-за пинга
Почитать:
— Подборка ИИ-инструментов для поиска работы за рубежом
📍 Навигация: Вакансии • Задачи • Собесы
#async_news
Please open Telegram to view this post
VIEW IN TELEGRAM
В FluentValidation условная валидация запускает правила только при нужных условиях.
When и Unless экономят циклы и делают валидаторы читаемыми.•
When = «проверить, если условие верно»•
Unless = «проверить, если условие НЕ верно»Пример:
RuleFor(x => x.ShippingAddress)
.NotEmpty()
.When(x => x.DeliveryMethod == "Express");
RuleFor(x => x.CreditCard)
.NotEmpty()
.Unless(x => x.PaymentMethod == "PayPal");
When проверяет условие перед правилом. Express доставка требует адрес, PayPal не требует карту. Логика в одном месте без if-else в контроллере.
📍 Навигация: Вакансии • Задачи • Собесы
#sharp_view
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤3
Lazy<T> в C# стал де-факто стандартом для thread-safe ленивой инициализации. Забудьте
lock, volatile и двойные проверки.Проблемы классического синглтона:
public sealed class ClassicSingleton
{
private static ClassicSingleton _instance;
private static readonly object _lock = new object();
private ClassicSingleton()
{
// 2 секунды на реальную БД/файлы
Thread.Sleep(2000);
Console.WriteLine("ClassicSingleton создан");
}
public static ClassicSingleton Instance
{
get
{
if (_instance == null)
{
lock (_lock)
{
_instance ??= new ClassicSingleton();
}
}
return _instance;
}
}
}
Lazy<T> решает всё элегантно:
public sealed class LazySingleton
{
private static readonly Lazy<LazySingleton> _lazy = new Lazy<LazySingleton>(() =>
{
Console.WriteLine("LazySingleton создан (ТОЛЬКО РАЗ)");
Thread.Sleep(2000); // Имитация тяжёлой работы
return new LazySingleton();
});
private LazySingleton() { }
public static LazySingleton Instance => _lazy.Value;
public static bool IsInitialized => _lazy.IsValueCreated;
}
Реальный многопоточный тест:
static async Task TestPerformance()
{
var stopwatch = Stopwatch.StartNew();
var tasks = Enumerable.Range(0, 1000)
.Select(i => Task.Run(() =>
{
var instance = LazySingleton.Instance;
return instance.GetHashCode();
}))
.ToArray();
var results = await Task.WhenAll(tasks);
stopwatch.Stop();
Console.WriteLine($"1000 потоков: {stopwatch.ElapsedMilliseconds}ms");
Console.WriteLine($"Уникальных объектов: {results.Distinct().Count()}");
Console.WriteLine($"Инициализировано: {LazySingleton.IsInitialized}");
}
Lazy<T> — это не хак, а официальный стандарт Microsoft.📍 Навигация: Вакансии • Задачи • Собесы
#il_люминатор
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🥰2😢2
Работаете днём в корпоративном репо, вечером в личном на GitHub. Один ПК, но email и ключи подписи разные. Ручная смена настроек Git каждый раз бесит и приводит к косякам с коммитами.
Условные includeIf решают всё
Добавьте в
~/.gitconfig пару строк. Git сам подхватит нужный конфиг по пути к папке или remote URL.Для рабочих папок загрузит корпоративный email:
[includeIf "gitdir:~/work/"] path = .gitconfig-corp
Личные репозитории получат ваш домашний email автоматически:
[includeIf "hasconfig:remote.*.url:https://github.com/вашеимя/**"] path = .gitconfig-personal
Забудьте про
git config --global user.email каждый раз.📍 Навигация: Вакансии • Задачи • Собесы
#sharp_view
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🥰3🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
AI-агенты в продакшн: промышленный стандарт архитектуры
В Enterprise-разработке на первый план выходит контроль и предсказуемость. Мы учим проектировать ИИ-агентов как надёжные системы со строгой логикой и мониторингом.
Ключевые модули:
— управление состоянием в
— архитектура `RAG` на базе
— промышленная автоматизация через
— безопасность и observability с внедрением
Результат — масштабируемая система, готовая к интеграции в ваш стек.
Подробности курса
В Enterprise-разработке на первый план выходит контроль и предсказуемость. Мы учим проектировать ИИ-агентов как надёжные системы со строгой логикой и мониторингом.
Ключевые модули:
— управление состоянием в
LangGraph для проектирования сложных стейт-машин;— архитектура `RAG` на базе
Pinecone или Chroma для обоснованной генерации ответов;— промышленная автоматизация через
n8n для интеграции логики в бизнес-процессы;— безопасность и observability с внедрением
LangSmith и Guardrails для аудита системы.Результат — масштабируемая система, готовая к интеграции в ваш стек.
Подробности курса
😁11🥰2🥱2🌚2❤1
RoomSharp смешивает декларативные
[AutoMigration] и императивные классы миграций. Автоматически обрабатывает переименования таблиц, колонок, добавление/удаление полей. MigrationManager следит за версиями в __room_metadata, предупреждает о деструктивных изменениях и запускает колбэки.Установка —
dotnet add package RoomSharp плюс провайдеры вроде RoomSharp.SqlServer. Расширения RoomSharp.Extensions для конфига.📍 Навигация: Вакансии • Задачи • Собесы
#async_news
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍1
Когда коллекция растет, руками гонять двойные циклы для поиска дубликатов уже не хочется. В .NET это хорошо решается комбинацией
LINQ и HashSet, плюс классическими GroupBy и Distinct.• LINQ Any и HashSet
Идея простая: HashSet хранит только уникальные элементы. Метод
Add возвращает false если такое значение уже было. Значит можно пробежать коллекцию через Any и остановиться на первом дубликате:public static bool HasDuplicatesAny<T>(IEnumerable<T> source)
{
HashSet<T> seen = new();
return source.Any(item => !seen.Add(item));
}
Метод возвращает
true как только встретится элемент который не удалось добавить в набор.• LINQ GroupBy и Count 1
Если нужны сами дубликаты, а не только факт их наличия, помогает
GroupBy. Мы группируем по значению и фильтруем группы в которых больше одного элемента:public static IEnumerable<T> GetDuplicatesGroupBy<T>(IEnumerable<T> source)
{
return source
.GroupBy(x => x)
.Where(g => g.Count() > 1)
.Select(g => g.Key);
}
• LINQ Distinct и подсчет элементов
Иногда достаточно проверить есть ли дубликаты, не вытаскивая их. Тогда можно сравнить размер исходной коллекции и количества уникальных элементов после
Distinct:public static bool HasDuplicatesDistinct<T>(IEnumerable<T> source)
{
int total = source.Count();
int unique = source.Distinct().Count();
return unique != total;
}
Для быстрых проверок чаще всего хватает
Any + HashSet. GroupBy удобно когда нужны сами дубликаты.📍 Навигация: Вакансии • Задачи • Собесы
#sharp_view
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7⚡2👍1🥰1
Backend-разработчик C# на удалёнку.
.NET Developer (Middle) — удалёнка или офис в СПб.
Senior Backend-разработчик — от 365 000 ₽
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1