Forwarded from Библиотека программиста | программирование, кодинг, разработка
📦 Главные проблемы распределенных систем (и способы их решения)
Распределенные системы являются основой высоконагруженных веб-приложений, обеспечивая их масштабируемость, отказоустойчивость и высокую производительность. Однако их разработка сопряжена с рядом сложностей, включая сетевые сбои, трудности координации, угрозы безопасности и проблемы масштабирования.
➡️ В этой статье мы рассмотрим четыре ключевых вызова в разработке таких систем и эффективные методы их преодоления.
🐸 Библиотека программиста
Распределенные системы являются основой высоконагруженных веб-приложений, обеспечивая их масштабируемость, отказоустойчивость и высокую производительность. Однако их разработка сопряжена с рядом сложностей, включая сетевые сбои, трудности координации, угрозы безопасности и проблемы масштабирования.
Please open Telegram to view this post
VIEW IN TELEGRAM
😁9👍2❤1
🧑💻 How to: не потерять нативные DLL
Если ваше приложение зависит от нативных DLL, важно настроить правильное копирование этих файлов в выходную директорию при сборке через NuGet. Вот как это сделать:
1️⃣ Подготовьте директорию
Разместите DLL библиотеки в папке
2️⃣ Обновите
Добавьте в файл .csproj строку, которая будет копировать DLL в выходную директорию:
3️⃣ Используйте команду dotnet publish
Для корректного копирования всех зависимостей используйте команду:
Это обеспечит правильную сборку с нативными библиотеками.
🐸 Библиотека шарписта #буст
Если ваше приложение зависит от нативных DLL, важно настроить правильное копирование этих файлов в выходную директорию при сборке через NuGet. Вот как это сделать:
Разместите DLL библиотеки в папке
runtimes/{RID}/native/
вашего NuGet-пакета. Пример для Windows 64-bit:/runtimes
/win-x64
/native
mylibrary.dll
.csproj
Добавьте в файл .csproj строку, которая будет копировать DLL в выходную директорию:
<ItemGroup>
<None Update="runtimes\win-x64\native\mylibrary.dll">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
Для корректного копирования всех зависимостей используйте команду:
dotnet publish -c Release -r win-x64
Это обеспечит правильную сборку с нативными библиотеками.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
🤔📝 Псевдокод: когда преподы не шарят, а ты в тупике
Псевдокод может быть настоящим головняком, особенно если требования к нему кажутся непонятными или не совпадают с тем, что вы видите в реальной практике программирования.
Узнайте, как сделать псевдокод полезным инструментом, а не дополнительной нагрузкой.
➡️ Читать статью
🐸 Библиотека шарписта
Псевдокод может быть настоящим головняком, особенно если требования к нему кажутся непонятными или не совпадают с тем, что вы видите в реальной практике программирования.
Узнайте, как сделать псевдокод полезным инструментом, а не дополнительной нагрузкой.
Please open Telegram to view this post
VIEW IN TELEGRAM
😁21
С помощью картинок и коротких видео даже новички начнут применять продвинутые инструменты разработки и использовать Docker.
Стоит подписаться: t.iss.one/DevopsDocker
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
😁13🤔3👍1
🤖 Промпт дня: собеседование по C#
Проведите mock-интервью по C# с этим промптом — тренировка навыков, структурирование мыслей и полезная обратная связь по каждому ответу.
Промпт:
🐸 Библиотека шарписта #буст
Проведите mock-интервью по C# с этим промптом — тренировка навыков, структурирование мыслей и полезная обратная связь по каждому ответу.
Промпт:
You are a Senior C# Backend Developer and Technical Interviewer with 15+ years of experience at FAANG companies. Your task is to conduct a mock interview for a candidate applying for a Backend Developer position specializing in C#. You will ask a series of technical questions, assess the candidate's responses, and provide constructive feedback. The interview should cover topics such as .NET framework, data structures, algorithms, database design, API development, and software design principles.
Here's the format you will use to conduct the mock interview and provide feedback:
---
## Interview Question
$interview_question
## Candidate's Answer
$candidate_answer (This will be provided by the user)
## Your Assessment and Feedback
$assessment_and_feedback (Provide a detailed assessment of the candidate's answer, highlighting strengths and areas for improvement. Be specific and constructive.)
---
Begin the mock interview by asking the first question. After the candidate provides their answer, use the template above to provide your assessment and feedback. Continue with subsequent questions until the interview is complete. Aim for a comprehensive interview covering a range of backend development topics relevant to C#.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
💬 Истории подписчиков: как проходят дейлики
Часто у вас идёт что-то не так на дейликах? Админ хочет поделиться болью:
💬 А как проходят дейли у вас? Всё штатно или кто-то на фоне любит погулять или покашлять? Делитесь в комментариях 👇
P.S. Если хотите задать вопрос сообществу, заполните нашу гугл-форму.
🐸 Библиотека шарписта #междусобойчик
Часто у вас идёт что-то не так на дейликах? Админ хочет поделиться болью:
У меня две собаки и обе старенькие. Одна из них любит покашлять и часто во время того, как я говорю.
Но это ладно. Недавно жена так громко позвала меня кушать, что я даже покраснел. Хорошо, что без камер сидели.
P.S. Если хотите задать вопрос сообществу, заполните нашу гугл-форму.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
EditorConfig — это инструмент, который помогает стандартизировать стиль кода в разных редакторах и IDE, обеспечивая консистентность форматирования.
EditorConfig использует конфигурационный файл .editorconfig, который определяет правила форматирования для разных типов файлов (например, для C#, JavaScript, HTML). Когда редактор или IDE открывает проект, он автоматически подхватывает настройки из этого файла и применяет их.
Основные принципы и возможности
EditorConfig позволяет настраивать правила форматирования для каждого типа файлов или каталогов.
Пример конфигурации:
[*.cs]
indent_style = space
indent_size = 4
tab_width = 4
trim_trailing_whitespace = true
end_of_line = lf
insert_final_newline = true
indent_style: cтиль отступов, может быть space или tab.
indent_size: количество пробелов для отступа.
tab_width: ширина табуляции (используется, если indent_style = tab).
trim_trailing_whitespace: удаление пробелов в конце строки.
end_of_line: стиль переноса строки (LF или CRLF).
insert_final_newline: добавление пустой строки в конце файла.
[*.js]
indent_style = space
indent_size = 2
[test/*.cs]
indent_style = tab
indent_size = 4
Вы можете создать глобальный .editorconfig, который будет применяться ко всем проектам на вашем компьютере, если он находится в домашней директории или в другом заданном месте. Это позволяет легко применять одни и те же стандарты к каждому новому проекту.
root = true
[*]
indent_style = space
indent_size = 4
trim_trailing_whitespace = true
Если вы хотите гарантировать, что изменения в коде всегда соответствуют стандартам, можно интегрировать EditorConfig с Git Hooks. Таким образом, при каждом коммите можно автоматически проверять, чтобы все изменения соответствовали правилам форматирования.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🥱3❤1
🎮⛰ Дорожная карта Unity-разработчика 2025: с нуля до джуна
Если вы хотите создать свою игру с нуля или систематизировать знания, эта дорожная карта — идеальный старт.
Рассмотрели все важные этапы: от основ языка C# до работы с физикой, интерфейсом и сторонними SDK. Шаг за шагом объясняются ключевые темы, такие как ООП, паттерны проектирования, корутины и оптимизация.
В конце бонус — подборка полезных ресурсов.
➡️ Пройти путь по карте
🐸 Библиотека шарписта
Если вы хотите создать свою игру с нуля или систематизировать знания, эта дорожная карта — идеальный старт.
Рассмотрели все важные этапы: от основ языка C# до работы с физикой, интерфейсом и сторонними SDK. Шаг за шагом объясняются ключевые темы, такие как ООП, паттерны проектирования, корутины и оптимизация.
В конце бонус — подборка полезных ресурсов.
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱7👍5
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥40😁13💯8
Please open Telegram to view this post
VIEW IN TELEGRAM
📰 Главное за неделю
Пока вы делали вид, что работаете, мир не стоял на месте.
➖ .NET AI Chat Preview 2
Microsoft представила вторую предварительную версию шаблона .NET AI Chat Web App, добавив поддержку .NET Aspire и интеграцию с векторной базой данных Qdrant.
➖ Как правильно делить данные в распределённых системах
Range-based и key-based шардирование — два способа делить данные в распределённых системах. Внутри объяснят разницу между ними и что выбрать для проекта.
➖ AutoMapper и MediatR переходят на двойное лицензирование
Библиотеки останутся бесплатными для разработчиков с открытым исходным кодом, студентов, некоммерческих организаций и небольших стартапов. Коммерческие компании, использующие эти инструменты в производстве, будут обязаны приобрести лицензию.
➖ Incrementalist 1.0
Проект Incrementalist — предназначен для оптимизации процессов сборки и тестирования в больших .NET-решениях.
➖ Главные проблемы распределенных систем (и способы их решения)
➖ Псевдокод: когда преподы не шарят, а ты в тупике
➖ Дорожная карта Unity-разработчика 2025: с нуля до джуна
🐸 Библиотека шарписта #свежак
Пока вы делали вид, что работаете, мир не стоял на месте.
Microsoft представила вторую предварительную версию шаблона .NET AI Chat Web App, добавив поддержку .NET Aspire и интеграцию с векторной базой данных Qdrant.
Range-based и key-based шардирование — два способа делить данные в распределённых системах. Внутри объяснят разницу между ними и что выбрать для проекта.
Библиотеки останутся бесплатными для разработчиков с открытым исходным кодом, студентов, некоммерческих организаций и небольших стартапов. Коммерческие компании, использующие эти инструменты в производстве, будут обязаны приобрести лицензию.
Проект Incrementalist — предназначен для оптимизации процессов сборки и тестирования в больших .NET-решениях.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤1
Forwarded from Библиотека задач по C# | тесты, код, задания
Anonymous Quiz
68%
Привязывает действия UI к методам ViewModel и блокирует выполнение, если команда не выполнена
14%
Работает только с UI-компонентами, такими как кнопки, и не влияет на состояние приложения
13%
Привязываются напрямую к View, и все действия выполняются внутри View, без участия ViewModel
5%
Управляет только визуальными эффектами в UI и не имеет отношения к логике или данным
👍5❤1
Middle C# разработчик — от 220 000 ₽, Гибрид
Senior .NET Developer — до
Senior/Lead C# developer — до 350 000 ₽, Гибрид (Москва)
.NET-разработчик — Удалёнка
Senior C# Developer от 3500 $, Удалёнка
Бустер — Удалённо (весь мир)
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰2😢2
Microsoft насыпала фичей: от мелочей для разработчиков до улучшений производительности. Разбираем, как использовать эти плюшки в реальных проектах.
Вместо такой записи:
[MyAttribute(Message = "hello")]
Можно писать так:
[MyAttribute("hello")]
Добавлены новые фичи для ConcurrentStack и ConcurrentQueue:
• Поддержка
Clear()
во всех коллекциях• Раньше Count у Concurrent коллекций был «примерным». Сейчас обещают более стабильную работу, без случайных значений.
Это под капотом. Просто обновите — и радуйтесь ускорению.
Теперь можно в одном тесте проверять несколько условий и не падать сразу на первом:
Assert.Multiple(() =>
{
Assert.AreEqual(1, result.A);
Assert.AreEqual(2, result.B);
});
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤1🌚1
Когда сроки горят, а разработчиков не хватает
Нехватка квалифицированных разработчиков, срывы дедлайнов и перегруз команды — эти проблемы знакомы большинству IT-руководителей. В условиях растущей конкуренции найти баланс между качеством реализации, сроками и бюджетом становится всё сложнее, особенно когда проект требует редких компетенций или быстрого масштабирования.
Решение проблемы — задействовать дополнительные ресурсы на аутсорсе или аутстаффе. Например, обратиться в Proglib. Да-да, мы запустили свою студию веб-разработки!
Что мы предлагаем:
• Опытные специалисты для аутстаффа (frontend, backend, DevOps, UI/UX, PM, BA)
• Полноценная разработка проектов под ключ
• Гибкое масштабирование команды под потребности клиента
• Прозрачная коммуникация и регулярная отчетность
Для каждого проекта формируется индивидуальная команда, исходя из конкретных потребностей заказчика.
Заполните форму, чтобы ускорить свою разработку 👉 https://forms.yandex.ru/u/67e548a4eb614622efa0bcb2/
Нехватка квалифицированных разработчиков, срывы дедлайнов и перегруз команды — эти проблемы знакомы большинству IT-руководителей. В условиях растущей конкуренции найти баланс между качеством реализации, сроками и бюджетом становится всё сложнее, особенно когда проект требует редких компетенций или быстрого масштабирования.
Решение проблемы — задействовать дополнительные ресурсы на аутсорсе или аутстаффе. Например, обратиться в Proglib. Да-да, мы запустили свою студию веб-разработки!
Что мы предлагаем:
• Опытные специалисты для аутстаффа (frontend, backend, DevOps, UI/UX, PM, BA)
• Полноценная разработка проектов под ключ
• Гибкое масштабирование команды под потребности клиента
• Прозрачная коммуникация и регулярная отчетность
Для каждого проекта формируется индивидуальная команда, исходя из конкретных потребностей заказчика.
Заполните форму, чтобы ускорить свою разработку 👉 https://forms.yandex.ru/u/67e548a4eb614622efa0bcb2/
🌚4❤1👍1😁1