Telegram Web Link
🤝 Как определить оптимальный баланс в профессиональной сфере

Кажется, что в крупных компаниях вершина успеха и билет к большой жизни. Но часто за этим стоят бессонные ночи, жёсткие дедлайны и жизнь «на работе».

А что если попробовать по-другому? Спокойные компании могут подарить больше свободы, времени для себя и ощущение, что ты живёшь не только ради работы.

В карточках выяснили, что настоящий успех — это умение выбрать, что подходит именно вам.

➡️ Узнайте, что подходит вам

🐸Библиотека шарписта
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱4
🧑‍💻 Когда важна скорость сериализации

MemoryPack — это высокопроизводительный сериализатор. который ориентирован на максимальную скорость и минимальные накладные расходы

Особенности инструмента

— MemoryPack минимизирует накладные расходы, копируя данные напрямую из памяти C#, без дополнительного кодирования.

— Поддерживает современные API: IBufferWriter<byte> и ReadOnlySequence<byte>.

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

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

Согласно данным из официального репозитория, MemoryPack значительно опережает другие популярные сериализаторы по производительности: он работает до 10 раз быстрее, чем System.Text.Json и protobuf-net при сериализации стандартных объектов, при работе с массивами структур до 50–200 раз.

Пример:
[MemoryPackable]
public partial class WeatherForecast
{
public DateTime Date { get; set; }
public int TemperatureC { get; set; }
public string? Summary { get; set; }
}

// Сериализация
byte[] bytes = MemoryPackSerializer.Serialize(forecast);

// Десериализация
WeatherForecast? result = MemoryPackSerializer.Deserialize<WeatherForecast>(bytes);


Его использование особенно оправдано в игровых проектах, высоконагруженных API и системах, где критична скорость обработки данных.

📎 Репозиторий проекта

🐸Библиотека шарписта #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22🥱21🔥1
👀 Почему C# крутой

C# и .NET прошли удивительную трансформацию, превратившись из тяжёлых корпоративных инструментов в современные, кроссплатформенные решения.

В видео рассказывается о том, как новые фичи, такие как records, pattern matching и улучшенный async/await, делают разработку проще и продуктивнее.

Теперь .NET поддерживает мобильные приложения, облачные функции и игры, всё через один SDK.

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

🐸Библиотека шарписта #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🥰5😁1
🆚 Как не ошибиться в процессе выбора

Один из наших подписчиков недавно задал вопрос:
Как вы принимаете технические решения в команде? Как правильно выбрать то, что действительно полезно и угодит всем?


Технические решения — это не просто выбор между «лучше» и «хуже». Это баланс между бизнес-целями, ограничениями технологии, ресурсами и командной динамикой.

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

1️⃣ Четкое понимание проблемы

Прежде чем что-то решать, нужно понять, с чем имеешь дело. Собираем данные, уточняем требования, учитываем ограничения.

Тут важно не упустить детали: от анализа текущей архитектуры до учета бизнес-задач.

2️⃣ Обсуждения с командой

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

3️⃣ Структурирование обсуждений

Чтобы не утонуть в множестве идей, стоит использовать визуализации: схемы, диаграммы, прототипы. Формальные практики, такие как архитектурные ревью обеспечивают системность.

4️⃣ Принятие решения и консенсус

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

В разногласиях роль лидера — взять ответственность и объяснить выбор.

5️⃣ Ретроспектива

После того как решение внедрено, важно его оценить. Что сработало? Что не так? Это шанс извлечь уроки и в следующий раз сделать процесс принятия решений еще более четким.

Открытость, системность и готовность анализировать результаты — вот что помогает работать слаженно и минимизировать конфликты в команде.

💬 Как в вашей команде принимаются решения? Делитесь опытом в комментариях 👇

🐸Библиотека шарписта #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
2😁2👍1🌚1
🚨 ИИ уже съел ваше место?

Стоп. Давайте без паники и хайпа.

Пока одни кричат «ИИ всех заменит!», другие спокойно получают оффер за оффером. Пока CEO сокращают команды «из-за ИИ», разработчики с нужными скиллами поднимают зарплаты.

Мы копаем глубже твиттеров «экспертов» и собираем данные от тех, кто каждый день коммитит, деплоит, фиксит баги — но в этом нам нужна ваша помощь.

Хотим понять:
— Кого действительно уволили и почему
— Как изменились задачи разработчиков
— Где ИИ помогает, а где только мешает
— Какие роли появились, какие исчезли
— Сколько платят тем, кто «дружит» с ИИ

Без буллшита — только цифры и факты. Результаты будут открыты для всех.

📊 Чем больше участников — тем точнее картина. Поделитесь опытом: https://clc.to/aFntFw
😁4
🧑‍💻 AI-инструменты, которые я использую каждый день

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

Мы опросили рядового разработчика — узнайте, как именно он использует нейросети. Смотрите интервью в карточках.

➡️ Как вам формат? Задавайте вопросы в комментариях, а мы найдём экспертов 👇

🐸Библиотека шарписта
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍53🔥1😁1🌚1
💡 Команда дня: профилирование .NET-приложения через dotnet-trace

Инструмент dotnet-trace предназначен для сбора runtime-трассировок .NET-приложений без сложной настройки.

Устанавливается командой:
dotnet tool install -g dotnet-trace


Сбор трассировки:
dotnet-trace collect \
--process-id <PID> \
--format speedscope \
-o profile.speedscope.json


Откройте profile.speedscope.json в Speedscope — получите интерактивную визуализацию горячих точек CPU, поведения GC и потоков.

🐸Библиотека шарписта #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍4🥱1
📣 Исключения или Result — что выбрать для обработки ошибок

Когда речь заходит о том, как лучше обрабатывать ошибки в C#, многие разработчики оказываются в двух лагерях.

• Исключения — классический подход

Исключения используются в C# с самого начала. Они позволяют немедленно прерывать выполнение программы в случае ошибки и предоставить стек вызовов для диагностики проблемы.

Многие считают это стандартом, потому что исключения чётко отображают сбой, который требует внимания.

• Result-типы — альтернатива

С другой стороны, есть подход с явным использованием Result-типа, который помогает разработчику контролировать ошибки через возвращаемые значения.

Обеспечивает большую гибкость в работе с результатами, позволяет возвращать ошибки с дополнительной информацией.

💬 Когда вы предпочитаете использовать исключения? А когда лучше использовать Result? Делитесь мнениями в комментариях 👇

🐸Библиотека шарписта #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
2🤔1
📌 Главное за неделю

Представляем самые важные новости и события, которые определяли повестку уходящей недели.

C# сохраняет пятую позицию в TIOBE

C# продолжает оставаться одним из ведущих языков для разработки приложений, игр и веб-сервисов.

6 скрытых возможностей C# для геймдева

В видео делятся практическими примерами использования малоизвестных функций для повышения производительности и качества кода.

От фотографий к задачам с помощью ИИ

В новой статье Microsoft описывается, как с помощью .NET MAUI и Microsoft.Extensions.AI можно преобразовать изображения в структурированные данные.

Пользователи могут делать снимки или выбирать фотографии, а ИИ анализирует их, извлекая задачи и проекты для приложения Telepathic.

5 ошибок, делающих ваш код неподдерживаемым

В статье выделяются пять распространённых ошибок в проектировании ПО, которые приводят к трудностям в поддержке кода.

Пройдите наш опрос про ИИ

🐸Библиотека шарписта #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
В чем различие между классом и структурой?

Для С# классы System.Object, System.Exception, System.File-Stream и System.Random — это ссылочные типы (память выделяется из упр. кучи). В свою очередь размерные типы в документации называются структурами (structure) и перечислениями (enumeration). Например, структуры System.In132, System.Boolean, System.Decimal, System.TimeSpan и перечисления System.DayOfWeek, System.10.FileAttributes и System.Drawing.FontStyle являются размерными типами (хранятся обычно в стеке потока, но могут быть встроены в ссылочные типы).

Библиотека задач по C#
😢12😁62🤔1🌚1
⌚️ Подборка вакансий для шарпистов

Tech Lead (C#) — гибрид в Москве.

Инженер-программист C# (Middle) — от 200 000 ₽, офис в Москве.

C# Developer (.Net) — до 370 000 ₽, удалёнка.

C#/.NET Developer (Middle, Senior) — удалёнка.

Senior .NET Developer — удалёнка.

Бустер — удалённо в метре от вас.

➡️ Еще больше топовых вакансий — в нашем канале С# Jobs
Please open Telegram to view this post
VIEW IN TELEGRAM
🎮 Реализация системы инвентаря в Unity 6 с использованием C#

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

Решение: в книге «Unity 6 Game Development with C# Scripting» автор предлагает подробное руководство по разработке системы инвентаря, используя возможности Unity и C#. Он акцентирует внимание на создании гибкой структуры данных, которая позволяет эффективно управлять предметами, их свойствами и взаимодействиями в игровом процессе.

Пример кода:
public class InventoryItem
{
public string itemName;
public Sprite itemIcon;
public int itemID;
public string itemDescription;

public InventoryItem(string name, Sprite icon, int id, string description)
{
itemName = name;
itemIcon = icon;
itemID = id;
itemDescription = description;
}
}

public class InventorySystem : MonoBehaviour
{
private List<InventoryItem> items = new List<InventoryItem>();

public void AddItem(InventoryItem newItem)
{
items.Add(newItem);
Debug.Log("Item added: " + newItem.itemName);
}

public void RemoveItem(InventoryItem itemToRemove)
{
if (items.Contains(itemToRemove))
{
items.Remove(itemToRemove);
Debug.Log("Item removed: " + itemToRemove.itemName);
}
else
{
Debug.Log("Item not found: " + itemToRemove.itemName);
}
}

public void DisplayInventory()
{
foreach (var item in items)
{
Debug.Log("Item: " + item.itemName + " | ID: " + item.itemID);
}
}
}


Преимущества:

— Гибкость в управлении предметами и их свойствами.
— Упрощение процесса добавления и удаления предметов из инвентаря.
— Лёгкость в интеграции с другими системами игры, такими как квесты или торговля.

➡️ Лучшее из мира IT-книг — у нас в @progbook
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱153🌚2👾1
2025/07/13 14:33:44
Back to Top
HTML Embed Code: