Telegram Web Link
💻 Инструмент недели: палитра команд

Microsoft представила в составе PowerToys инструмент — Command Palette. Этот функционал призван упростить и ускорить выполнение повседневных задач на Windows, предоставляя быстрый доступ к командам и приложениям через единый удобный интерфейс.

Command Palette — это командная панель в стиле известных редакторов кода (например, Visual Studio Code), которая позволяет быстро искать и запускать команды, приложения и функции системы.

Вместо привычного поиска в меню Пуск или множества кликов — достаточно открыть палитру, начать вводить нужную команду, и инструмент покажет релевантные варианты.

➡️ Попробовать палитру команд

🐸Библиотека шарписта #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍92🤔2
🥵 Устали от статей, где эйчары рассказывают, как на самом деле выглядит рынок труда в ИТ?

Мы тоже! Поэтому решили узнать правду и представить ее всем айтишникам — но нам нужен ваш голос. Опрос займет 3 минуты, а пользы — вагон для всего сообщества.

Результаты этого исследования помогут понять, как специалистам искать работу в 2025-м (а компаниям — специалистов).

👉 Если вы готовы сделать свой вклад в исследование — велком: https://clc.to/VGgyNA
😁51👍1👾1
⚙️ Новая скорость для LINQ

Удобство LINQ стоит дорого: скрытые аллокации, замедления и GC-паузы.

ZLINQ решает эти проблемы. Это библиотека, которая заменяет стандартный LINQ на ValueEnumerable-подход без потери совместимости и с приростом производительности.

Теперь можно писать Where, Select, Sum прямо по Span, и всё это — без аллокаций.

➡️ Смотреть видео

🐸Библиотека шарписта #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔22👍1
🤨 Интерфейс или не интерфейс

Недавно к нам поступил вопрос от подписчика:
Когда использование интерфейсов — это хорошее архитектурное решение, а когда излишек?


Интерфейсы — это важный элемент в разработке программного обеспечения. Но не всегда их стоит применять бездумно. Давайте разберёмся, когда интерфейсы играют ключевую роль, а когда они становятся лишними.

Интерфейс — это контракт, который задаёт набор методов и свойств, но не их реализацию. Реализация интерфейса предоставляет конкретное поведение этих методов.

public interface IAnimal
{
void Speak();
}

public class Dog : IAnimal
{
public void Speak()
{
Console.WriteLine("Гав!");
}
}

public class Cat : IAnimal
{
public void Speak()
{
Console.WriteLine("Мяу!");
}
}

// Использование:
IAnimal animal = new Dog();
animal.Speak(); // Выведет "Гав!"


Когда интерфейсы — это хорошее решение

• Интерфейсы помогают скрывать детали реализации и позволяют менять код без воздействия на остальную часть программы.

• Когда система зависит от интерфейсов, легко подменить реальную реализацию на мок-объект для юнит-тестов.

• Интерфейсы идеально подходят для расширяемых систем, где в будущем может потребоваться добавление новых реализаций.

• Когда вам нужно интегрировать различные системы или модули, интерфейсы обеспечивают чёткие контракты для взаимодействия.

Когда интерфейсы — это излишек

• Если вам точно известно, что реализация интерфейса не будет меняться, интерфейс может стать лишней абстракцией.

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

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

Интерфейсы полезны, но важно не переусердствовать. Применяйте их там, где это даёт реальную ценность, например, для повышения гибкости и тестируемости, а не для каждого объекта.

💬 Как вы используете интерфейсы в своих проектах? Пишите в комментариях, поделитесь своими примерами!👇

P.S. Если хотите задать вопрос сообществу, заполните нашу гугл-форму.

🐸Библиотека шарписта #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🌚21🔥1🎉1
📎 Берём с собой метаданные

Иногда полезно встраивать версию приложения или метаданные непосредственно в сборку. Это можно сделать с помощью флагов в dotnet build:

dotnet build /p:Version=1.0.0 /p:CommitHash=$(git rev-parse --short HEAD)


/p:Version=1.0.0: встраивает версию в сборку.

/p:CommitHash=$(git rev-parse --short HEAD)
: встраивает хэш текущего коммита в сборку, полученный с помощью Git.

Вы можете использовать эти переменные в коде для отображения версии и метаданных в финальном приложении.

🐸Библиотека шарписта #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍2
🚩 Фича-флаги в .NET: как включать функции без релизов и не терять контроль

Фича
-флаги позволяют запускать функциональность по частям, тестировать на реальных пользователях и быстро отключать при проблемах — без перекомпиляции и деплоя.

Разбираемся в карточках: от простой переменной до кастомных фильтров и best practices в продакшене.

➡️ Полный гайд по фича-флагам у нас в статье

🐸Библиотека шарписта #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13👾21
🥸 Шарписты в очках

Сидите у монитора по 10–12 часов, втыкаете в Visual Studio, гоняете сборки.

И тут коллега с серьёзным лицом заявляет:
Без очков с фильтром синего ты себе глаза посадишь!


Но правда ли это — или просто маркетинг, нацеленный на программистов, особенно тех, кто пишет на C# и ценит комфорт?

👓 Аргументы за очки с фильтром синего света:

• Производители обещают защиту от «синих пиков» LED-экранов.

• Есть мнение, что блокировка синего света вечером помогает выработке мелатонина.

• Некоторым пользователям помогают при чувствительности к свету.

• Модный аксессуар. Особенно с антирефлексом и аккуратной оправой — +10 к внешности на митапах.

🧠 Аргументы против:

• Реальная проблема это плохая эргономика, поза и освещение.

• Лучше настроить яркость, использовать dark mode и 20-20-20 правило.

• Фильтрация синего искажает цвета. Особенно критично, если работаешь с графикой или UI.

• Хорошие очки стоят как лицензионный ReSharper.

💬 А вы носите очки? Не обязательно с фильтрами, может просто с диоптриями. Делитесь в комментариях 👇

🐸Библиотека шарписта #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
👍121
📰 Итоги недели

Краткий взгляд на то, что происходило в мире.

План выпуска Critter Stack

Jeremy Miller анонсировал выпуск обновлений для Critter Stack, включая Marten 8.0, Weasel 8.0 и Wolverine 4.0, запланированный на 1 июня 2025 года.

PowerShell AI Shell Preview

Выпущена версия Preview 4 AI Shell для PowerShell, включающая улучшения для macOS, поддержку аутентификации через Microsoft Entra ID и расширенные возможности командной строки.

AI и Vector Data Extensions для .NET теперь доступны

Microsoft анонсировала общедоступный статус для расширений AI и Vector Data в .NET. Эти библиотеки предоставляют общие абстракции и утилиты для работы с ИИ-моделями и векторными хранилищами.

Microsoft запускает Agent Store

Agent Store — новый централизованный магазин агентов в рамках Microsoft Copilot. Платформа позволяет пользователям просматривать, устанавливать и тестировать агентов, разработанных Microsoft, партнерами и клиентами.

Microsoft обновили .NET Aspire до версии 9.3

🐸Библиотека шарписта #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Какое из следующих утверждений верно относительно ключевого слова «sealed» в C#?

👾 — Предотвращает наследование
👍 — Допускает множественное наследование
🥰 — Применяется только к методам
⚡️ — Ни одно из вышеперечисленных

Библиотека задач по C#
👾223🥱24🌚1
💼 Подборка вакансий для шарпистов

Разработчик C# — Гибрид (Москва)

Fullstack Developer (С#/JavaScript) — до 310 000 ₽, Гибрид (Москва)

Разработчик С# / .NET Core — до 350 000 ₽, Удалёнка

Ведущий разработчик C# — от 585 000 ₽, Удалёнка

Разработчик C# .NET — Удалёнка

Fullstack Developer — до 250 000 ₽, Удалёнка

Разработчик .Net Core — от 270 000 ₽, Удалёнка

Бустер — Удалённо (в любом городе мира).

➡️ Еще больше топовых вакансий — в нашем канале С# Jobs
Please open Telegram to view this post
VIEW IN TELEGRAM
Июнь в коде: ключевые мероприятия

Собрали для вас мероприятия для нетворкинга, обмена опытом и не только.

KnowledgeConf X 2025

2 июня в Москве пройдёт юбилейная KnowledgeConf — крупнейшая российская конференция о корпоративной памяти, внутреннем обучении и обмене знаниями в IT.

Summer Merge 2025

С 20 по 22 июня в эко-парке «Русский берег» (Ульяновская область) состоится пятая антиконференция Summer Merge — событие для IT-специалистов, уставших от офисной рутины.

Вместо традиционных докладов — мастер-классы по soft skills, эмоциональному интеллекту, управлению командами и борьбе с выгоранием.

Saint TeamLead Conf 2025

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

🐸Библиотека шарписта #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
🎮 Реализация очереди с помощью связного списка

Проблема: стандартные массивы для очереди могут привести к необходимости дорогостоящих операций сдвига элементов при удалении.

Решение: в книге Algorithms and Data Structures for OOP With C# автор предлагает реализовать очередь на основе связного списка, что позволяет эффективно добавлять элементы в конец и удалять с начала за O(1).

Пример кода:
public class Node<T>
{
public T Data;
public Node<T> Next;

public Node(T data)
{
Data = data;
Next = null;
}
}

public class QueueLinkedList<T>
{
private Node<T> front, rear;

public QueueLinkedList()
{
front = rear = null;
}

public void Enqueue(T item)
{
var newNode = new Node<T>(item);
if (rear == null)
{
front = rear = newNode;
return;
}
rear.Next = newNode;
rear = newNode;
}

public T Dequeue()
{
if (front == null)
throw new InvalidOperationException("Queue is empty.");

var data = front.Data;
front = front.Next;

if (front == null)
rear = null;

return data;
}
}


Преимущества:
— Нет затрат на сдвиг элементов
— Высокая производительность при операциях добавления и удаления
— Универсальная реализация для любых типов данных

➡️ Лучшее из мира IT-книг — у нас в @progbook
Please open Telegram to view this post
VIEW IN TELEGRAM
😁9👍6🥱1
2025/07/11 21:32:11
Back to Top
HTML Embed Code: