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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead
Download Telegram
🍇 18 основных паттернов микросервисной архитектуры

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

Читать статью
👍14🔥81😁1
🛠 Использование MSBuild.Sdk.SqlProj — альтернативы для SQL Database Projects

Если вы используете SQL Database Projects aka файлы .dacpac для разработки, вам стоит обратить внимание на альтернативный подход — MSBuild.Sdk.SqlProj.

📌 И вот почему:

1. Сборка SQL Database Project на любой платформе .NET и в любом .NET IDE и CI pipeline:


dotnet build


2. Упакуйте ваш проект для повторного использования в виде NuGet-пакета:


dotnet pack


3. Публикуйте в вашу базу данных / контейнер для внутреннего цикла разработки:


dotnet publish


4. Запускайте статический анализ кода, используя более 50 правил от Microsoft и сообщества с открытым исходным кодом:


<RunSqlCodeAnalysis>True</RunSqlCodeAnalysis>


5. Интеграция с .NET Aspire для начальной настройки базы данных из вашего AppHost проекта.
6. Интеграция с tSQLt для тестирования базы данных.
7. Сообщество разработчиков и открытый исходный код.
👍9🤔41
🦄 5 мифов о работе в IT, которые мешают начать карьеру программиста

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

🔗 Ссылка
Please open Telegram to view this post
VIEW IN TELEGRAM
👏3👍1🤩1🥱1
💉 ThreadPool – инъекция потоков

ThreadPool в .NET часто воспринимается нами как данность. Надежно укрытый от глаз за простым интерфейсом async-await, он выполняет трудную работу по обеспечению эффективной работы с потоками.

Два главных способа понять устройство ThreadPool — чтение кода и, конечно, эксперименты с многопоточностью. Автор статьи начинает с небольшого погружения в код ThreadPool’a, а заканчивает интересным кейсом применения матанализа в одной из самых важных частей многопоточности в .NET.

👉 Читать
👍31
😨 Страх ошибок: как он мешает вам писать код

Страх совершить ошибку при внесении изменений в код может серьезно ограничивать профессиональный рост программиста. Как преодолеть этот психологический барьер и стать более эффективным разработчиком? Ответы — в нашей статье.
Привет, друзья! Мы готовим статью о важных софт скиллах для сеньоров, тимлидов и других старших IT-специалистов. По вашему мнению, какой из перечисленных софт скиллов вы считаете самым важным для успешной работы в IT?
Anonymous Poll
36%
Умение говорить «нет» 🚫
41%
Давать конструктивный фидбэк 💬
50%
Брать на себя ответственность 💪
17%
Общаться с токсичными людьми 🧘
56%
Доводить процессы до завершения
18%
Организовывать эффективные совещания 📊
10%
Импровизировать на публике 🎭
51%
Сохранять спокойствие в сложных ситуациях 😌
⬆️🆕 Какой дополнительный soft skill вы бы добавили в список?
📈 Как вы развиваете свои soft skills?

Поделитесь своими мыслями и опытом в комментариях! Самые интересные идеи и предложения мы обязательно включим в статью. Спасибо за участие! 🙏
🔥 Non-allocating split finally: совсем скоро в .NET 9
👍50😍5
🌐 9 основных паттернов для проектирования распределенных систем

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

Читать статью
🤔 Cloned Dictionary 🆚 Immutable Dictionary 🆚 Frozen Dictionary в условиях высокой нагрузки на систему: сравнение эффективности различных реализаций словарей в условиях высокой нагрузки на систему

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

👉 Читать
👍3
💻 15 продвинутых лайфхаков для работы в терминале Linux

Рассказываем, как использовать малоизвестные, но мощные инструменты терминала: от редактирования длинных команд в текстовом редакторе до автоматизации сложных процессов с помощью tmux.

👉 Ссылка
👍5
💡Простой пример использования оператора explicit в C#

В .NET у нас есть множество способов сопоставлять объекты друг с другом. Выше — пример использования оператора explicit для этих целей.

👉 Подробнее
👍45🤔8🔥2😢2🌚1
🐘🔮 Иллюзия согласованности в PostgreSQL: как избежать неприятных сюрпризов

Несмотря на то, что PostgreSQL обеспечивает строгую согласованность данных благодаря использованию многоверсионного параллельного контроля (MVCC), порядок выполнения транзакций может быть неожиданным для клиента. Это может привести к ситуации, когда записи появляются в неправильном порядке. Рассказываем, как и почему это происходит, и что делать для минимизации подобных проблем.

Читать статью
👏9👍2
🧠 Быстрый и точный способ расчета Уточненного U-теста Манна-Уитни и его эталонная реализация от Андрея Акиньшина

Wilcoxon–Mann–Whitney U Test является одним из самых популярных непараметрических тестов. Он почти так же эффективен, как t-тест Стьюдента при нормальном распределении, и более эффективен при большинстве ненормальных распределений.

Андрей обсуждает улучшения в расчете p-значения теста Манна–Уитни, описывает существующие проблемы. В качестве альтернативы он предлагает более точный и быстрый метод расчета p-значения, использующий разложение Эджворта и реализацию Лёффлера.

👉 Читать
👍17😁3🥱1
💡Предложение для type (discriminated) unions в C#

Type unions позволяют хранить в переменной значения разных типов, которые могут быть ограничены заранее определенным набором типов. Это полезно, когда необходимо обрабатывать данные разного типа, но связанные общей логикой.

📌 В C# предлагается четыре категории type unions:

🔻 Standard Unions — объединения, где типы членов и само объединение могут быть определены вместе, например, для сериализации или моделей данных.
🔻 Specialized Unions — для кейсов, когда необходимо избегать выделения памяти или использовать специальные типы, при этом допуская некоторые ограничения.
🔻 Ad Hoc Unions — анонимные объединения типов, которые могут состоять из существующих, возможно, несвязанных типов.
🔻 Custom Unions — для кейсов, которые не подходят под предыдущие категории, например, если требуется особая логика хранения данных или поведение API.

Type unions могут быть реализованы как классы, структуры или анонимные объединения с использованием предложенного синтаксиса. Это расширяет возможности C# по работе с различными типами данных и улучшает безопасность типизации на этапе компиляции.

💬 Как вам?
🔥19👍6🤩2🤔1👾1
⚙️ Переход на конфигурацию Microsoft.Extensions.Configuration (IOptions): история команды 2ГИС

Андрей Рягузов работает над внутренним продуктом для актуализации справочных данных на .NET. Несколько лет назад для работы с настройками его команда пользовались самописным методом.

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

📌 Андрей рассказывает:

• почему изначально решились на нестандартный метод;
• что за сложности возникли и что хотели улучшить;
• какие решения рассматривали;
• и какие преимущества получили от «коробочных» инструментов.
👍18🔥1