Библиотека шарписта | C#, F#, .NET, ASP.NET
22.6K subscribers
2.41K photos
39 videos
85 files
4.6K links
Все самое полезное для C#-разработчика в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/b60af5a4

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead
Download Telegram
💵 Посчитали среднюю зарплату шарписта в необычном эквиваленте

💬 Сколько у вас кабачков в зарплате?

🐸Библиотека шарписта

#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
👨‍💻 ImmutableCollection и многозадачность в C#

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

ImmutableCollection помогает решить эту задачу, предоставляя коллекции, которые нельзя изменять после их создания. Но стоит ли использовать их везде?

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


Когда не стоит использовать:

• Каждый раз при изменении коллекции создается новая копия, что может снизить производительность.

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

Когда ImmutableCollection — это идеальный выбор:

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

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

🐸Библиотека шарписта

#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍2
👨‍💻 Нужен ли разработчику сайт-визитка или это лишнее

Сейчас у каждого есть GitHub, LinkedIn, Telegram и куча других платформ.
Казалось бы — зачем ещё и свой сайт-портфолио?

Давайте разберёмся.

Аргументы за сайт-визитку

• Контроль над брендом — соцсети меняются, сайты блокируют, а домен и сервер — ваша территория.

• Выделяетесь среди резюме — вместо унылого PDF можно показать проекты, интерактивные демки, блог.

• SEO и видимость — вас могут найти рекрутеры или клиенты через поиск.

• Тренировка навыков — сайт сам по себе демонстрирует, что вы умеете в верстку, дизайн, деплой и инфраструктуру.

Аргументы против или «пустая трата времени»

• Все и так смотрят GitHub/LinkedIn — работодателям важнее код и опыт, а не красивый лендинг.

• Поддерживать сложно — технологии быстро устаревают, сайт превращается в «заброшенный музей».

• Не решает ключевых задач — оффер дадут не за HTML-визитку, а за навыки и проекты.

• Время лучше потратить на реальные пет-проекты или open-source.

💬 Что думаете вы? Может у вас есть визитки? Скидывайте в комменты 👇

🐸Библиотека шарписта

#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍1
👨‍💻 Как реагировать на код-ревью

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

Критика = шанс для роста. Каждый комментарий — это возможность улучшить код и стать лучше. Не нужно воспринимать это как личную атаку.

Проблемы с кодом — это не проблемы с вами. Ошибки в коде — это нормальная часть работы. Главное — это стремление исправить их.

Порой избыточная критика может деморализовать. Главное — это знать, что каждый ошибается, и это не делает вас плохим разработчиком.

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

🐸Библиотека шарписта

#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍6
🔐 Хэширование в C#: как и когда использовать

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

Основная цель хэширования — ускорить операции, например, поиск элементов в коллекциях или в базах данных.

Как работает хэширование

В C# хэширование чаще всего встречается в таких структурах данных, как Dictionary и HashSet, где хэш-функции используются для быстрого поиска элементов. Эти коллекции используют хэш-таблицы для того, чтобы операции поиска, добавления и удаления выполнялись за время O(1) в среднем.

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

Пример реализации собственного хэширования:
// Переопределение метода GetHashCode для обеспечения корректного хэширования
public override int GetHashCode()
{
// Простой хэш-функции, использующей значения полей объекта
// Здесь мы комбинируем хэши Name и Age для создания уникального хэш-значения
int hashName = Name == null ? 0 : Name.GetHashCode();
int hashAge = Age.GetHashCode();

// Используем формулу для комбинирования хэшей, чтобы минимизировать коллизии
return hashName ^ hashAge;
}


Когда стоит использовать хэширование

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

Хэширование используется для защиты данных, например, в процессе хранения паролей. В этом случае важно использовать криптографически стойкие хэш-функции, такие как SHA-256 или bcrypt.

Хэш-функции могут использоваться для проверки, не изменились ли данные, например, для контроля над целостностью файлов.

💬 Как вы используете хэширование в своих проектах? Делитесь примерами в комментариях 👇

🐸Библиотека шарписта

#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
👾8👍41
💬 Full-Stack или глубокая специализация

Разработчики всегда стояли на перепутье: либо углубляться в одну область, становясь мастерами в ней, либо учить всё и сразу, чтобы быть востребованными на рынке.

Сейчас не редкость, что на рынок труда выходят кандидаты, которые могут работать с абсолютно всем — от фронтенда до бэкенда, от баз данных до DevOps. В некоторых случаях это выглядит как «швейцарские ножи», которые знают всё, но ни в чём не являются экспертами.

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

💬 Как думаете вы? Лучше углубиться в одну область или быть «швейцарским ножом»?


🐸Библиотека шарписта

#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2