Forwarded from Библиотека девопса | DevOps, SRE, Sysadmin
🍇 18 основных паттернов микросервисной архитектуры
Рассказываем о паттернах, которые представляют собой набор проверенных решений типичных проблем и задач в микросервисной архитектуре. Их правильное применение может значительно улучшить масштабируемость и надежность системы.
Читать статью
Рассказываем о паттернах, которые представляют собой набор проверенных решений типичных проблем и задач в микросервисной архитектуре. Их правильное применение может значительно улучшить масштабируемость и надежность системы.
Читать статью
👍14🔥8❤1😁1
🛠 Использование MSBuild.Sdk.SqlProj — альтернативы для SQL Database Projects
Если вы используете SQL Database Projects aka файлы
📌 И вот почему:
1. Сборка SQL Database Project на любой платформе .NET и в любом .NET IDE и CI pipeline:
2. Упакуйте ваш проект для повторного использования в виде NuGet-пакета:
3. Публикуйте в вашу базу данных / контейнер для внутреннего цикла разработки:
4. Запускайте статический анализ кода, используя более 50 правил от Microsoft и сообщества с открытым исходным кодом:
5. Интеграция с .NET Aspire для начальной настройки базы данных из вашего AppHost проекта.
6. Интеграция с tSQLt для тестирования базы данных.
7. Сообщество разработчиков и открытый исходный код.
Если вы используете 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🤔4❤1
Forwarded from Proglib.academy | IT-курсы
🦄 5 мифов о работе в IT, которые мешают начать карьеру программиста
Разоблачаем в нашей статье 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.
👉 Читать
ThreadPool в .NET часто воспринимается нами как данность. Надежно укрытый от глаз за простым интерфейсом async-await, он выполняет трудную работу по обеспечению эффективной работы с потоками.
Два главных способа понять устройство ThreadPool — чтение кода и, конечно, эксперименты с многопоточностью. Автор статьи начинает с небольшого погружения в код ThreadPool’a, а заканчивает интересным кейсом применения матанализа в одной из самых важных частей многопоточности в .NET.
👉 Читать
👍31
Forwarded from Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter
😨 Страх ошибок: как он мешает вам писать код
Страх совершить ошибку при внесении изменений в код может серьезно ограничивать профессиональный рост программиста. Как преодолеть этот психологический барьер и стать более эффективным разработчиком? Ответы — в нашей статье.
Страх совершить ошибку при внесении изменений в код может серьезно ограничивать профессиональный рост программиста. Как преодолеть этот психологический барьер и стать более эффективным разработчиком? Ответы — в нашей статье.
Привет, друзья! Мы готовим статью о важных софт скиллах для сеньоров, тимлидов и других старших IT-специалистов. По вашему мнению, какой из перечисленных софт скиллов вы считаете самым важным для успешной работы в IT?
Anonymous Poll
36%
Умение говорить «нет» 🚫
41%
Давать конструктивный фидбэк 💬
50%
Брать на себя ответственность 💪
17%
Общаться с токсичными людьми 🧘
56%
Доводить процессы до завершения ✅
18%
Организовывать эффективные совещания 📊
10%
Импровизировать на публике 🎭
51%
Сохранять спокойствие в сложных ситуациях 😌
⬆️🆕 Какой дополнительный soft skill вы бы добавили в список?
📈 Как вы развиваете свои soft skills?
Поделитесь своими мыслями и опытом в комментариях! Самые интересные идеи и предложения мы обязательно включим в статью. Спасибо за участие! 🙏
📈 Как вы развиваете свои soft skills?
Поделитесь своими мыслями и опытом в комментариях! Самые интересные идеи и предложения мы обязательно включим в статью. Спасибо за участие! 🙏
Forwarded from Библиотека девопса | DevOps, SRE, Sysadmin
🌐 9 основных паттернов для проектирования распределенных систем
В этой статье мы рассмотрим 9 основных паттернов и области их применения, что поможет вам в проектировании высоконагруженных приложений.
Читать статью
В этой статье мы рассмотрим 9 основных паттернов и области их применения, что поможет вам в проектировании высоконагруженных приложений.
Читать статью
🤔 Cloned Dictionary 🆚 Immutable Dictionary 🆚 Frozen Dictionary в условиях высокой нагрузки на систему: сравнение эффективности различных реализаций словарей в условиях высокой нагрузки на систему
Автор делится опытом и рассказывает о том, какой тип словаря может быть неэффективным из-за больших затрат на выделение памяти и какой работает медленно из-за необходимости выделения памяти для каждой операции.
👉 Читать
Автор делится опытом и рассказывает о том, какой тип словаря может быть неэффективным из-за больших затрат на выделение памяти и какой работает медленно из-за необходимости выделения памяти для каждой операции.
👉 Читать
👍3
Forwarded from Библиотека C/C++ разработчика | cpp, boost, qt
💻 15 продвинутых лайфхаков для работы в терминале Linux
Рассказываем, как использовать малоизвестные, но мощные инструменты терминала: от редактирования длинных команд в текстовом редакторе до автоматизации сложных процессов с помощью tmux.
👉 Ссылка
Рассказываем, как использовать малоизвестные, но мощные инструменты терминала: от редактирования длинных команд в текстовом редакторе до автоматизации сложных процессов с помощью tmux.
👉 Ссылка
👍5
🌟 Какой тренд в использовании языков программирования и ИИ-инструментов, по вашему мнению, стал самым значимым в последнее время? Напишите в комментариях, почему и как он повлиял на вашу работу или планы по развитию?
Anonymous Poll
16%
Взрывной рост популярности Rust
33%
Доминирование Python в сфере AI и машинного обучения
14%
Укрепление позиций TypeScript в веб-разработке
6%
Возрождение интереса к функциональным языкам (например, Haskell или Clojure)
21%
Рост Go в облачных и микросервисных архитектурах
44%
Массовое внедрение ИИ-ассистентов для написания и ревью кода
13%
Популяризация no-code/low-code платформ с ИИ-генерацией
13%
Тестирование с помощью ИИ-инструментов
7%
Другое (напишу в комментариях)
❤1👍1
💡Простой пример использования оператора explicit в C#
В .NET у нас есть множество способов сопоставлять объекты друг с другом. Выше — пример использования оператора
👉 Подробнее
В .NET у нас есть множество способов сопоставлять объекты друг с другом. Выше — пример использования оператора
explicit
для этих целей.👉 Подробнее
👍45🤔8🔥2😢2🌚1
Forwarded from Библиотека джависта | Java, Spring, Maven, Hibernate
🐘🔮 Иллюзия согласованности в PostgreSQL: как избежать неприятных сюрпризов
Несмотря на то, что PostgreSQL обеспечивает строгую согласованность данных благодаря использованию многоверсионного параллельного контроля (MVCC), порядок выполнения транзакций может быть неожиданным для клиента. Это может привести к ситуации, когда записи появляются в неправильном порядке. Рассказываем, как и почему это происходит, и что делать для минимизации подобных проблем.
Читать статью
Несмотря на то, что PostgreSQL обеспечивает строгую согласованность данных благодаря использованию многоверсионного параллельного контроля (MVCC), порядок выполнения транзакций может быть неожиданным для клиента. Это может привести к ситуации, когда записи появляются в неправильном порядке. Рассказываем, как и почему это происходит, и что делать для минимизации подобных проблем.
Читать статью
👏9👍2
🧠 Быстрый и точный способ расчета Уточненного U-теста Манна-Уитни и его эталонная реализация от Андрея Акиньшина
Wilcoxon–Mann–Whitney U Test является одним из самых популярных непараметрических тестов. Он почти так же эффективен, как t-тест Стьюдента при нормальном распределении, и более эффективен при большинстве ненормальных распределений.
Андрей обсуждает улучшения в расчете p-значения теста Манна–Уитни, описывает существующие проблемы. В качестве альтернативы он предлагает более точный и быстрый метод расчета p-значения, использующий разложение Эджворта и реализацию Лёффлера.
👉 Читать
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# по работе с различными типами данных и улучшает безопасность типизации на этапе компиляции.
💬 Как вам?
Type unions позволяют хранить в переменной значения разных типов, которые могут быть ограничены заранее определенным набором типов. Это полезно, когда необходимо обрабатывать данные разного типа, но связанные общей логикой.
📌 В C# предлагается четыре категории type unions:
🔻 Standard Unions — объединения, где типы членов и само объединение могут быть определены вместе, например, для сериализации или моделей данных.
🔻 Specialized Unions — для кейсов, когда необходимо избегать выделения памяти или использовать специальные типы, при этом допуская некоторые ограничения.
🔻 Ad Hoc Unions — анонимные объединения типов, которые могут состоять из существующих, возможно, несвязанных типов.
🔻 Custom Unions — для кейсов, которые не подходят под предыдущие категории, например, если требуется особая логика хранения данных или поведение API.
Type unions могут быть реализованы как классы, структуры или анонимные объединения с использованием предложенного синтаксиса. Это расширяет возможности C# по работе с различными типами данных и улучшает безопасность типизации на этапе компиляции.
💬 Как вам?
GitHub
csharplang/proposals/TypeUnions.md at 18a527bcc1f0bdaf542d8b9a189c50068615b439 · dotnet/csharplang
The official repo for the design of the C# programming language - dotnet/csharplang
🔥19👍6🤩2🤔1👾1
⚙️ Переход на конфигурацию Microsoft.Extensions.Configuration (IOptions): история команды 2ГИС
Андрей Рягузов работает над внутренним продуктом для актуализации справочных данных на .NET. Несколько лет назад для работы с настройками его команда пользовались самописным методом.
Пока приложения были простыми, команду всё устраивало, однако при масштабировании начали вылезать неприятности. Поиски альтернативы не заставили себя ждать.
📌 Андрей рассказывает:
• почему изначально решились на нестандартный метод;
• что за сложности возникли и что хотели улучшить;
• какие решения рассматривали;
• и какие преимущества получили от «коробочных» инструментов.
Андрей Рягузов работает над внутренним продуктом для актуализации справочных данных на .NET. Несколько лет назад для работы с настройками его команда пользовались самописным методом.
Пока приложения были простыми, команду всё устраивало, однако при масштабировании начали вылезать неприятности. Поиски альтернативы не заставили себя ждать.
📌 Андрей рассказывает:
• почему изначально решились на нестандартный метод;
• что за сложности возникли и что хотели улучшить;
• какие решения рассматривали;
• и какие преимущества получили от «коробочных» инструментов.
👍18🔥1