Адаптированный паттерн Command с использованием Dependency Injection
Паттерн Command — широко известный и мощный инструмент построения гибких систем, позволяющий целиком вынести логику каждого метода в отдельный класс.
В статье показано как совмещение Command с Dependency Injection (DI) даёт дополнительные преимущества в архитектуре приложений.
Статья будет полезна разработчикам всех уровней, а также архитекторам приложений.
Читать далее
https://habr.com/ru/articles/953590/?utm_campaign=953590&utm_source=habrahabr&utm_medium=rss
Паттерн Command — широко известный и мощный инструмент построения гибких систем, позволяющий целиком вынести логику каждого метода в отдельный класс.
В статье показано как совмещение Command с Dependency Injection (DI) даёт дополнительные преимущества в архитектуре приложений.
Статья будет полезна разработчикам всех уровней, а также архитекторам приложений.
Читать далее
https://habr.com/ru/articles/953590/?utm_campaign=953590&utm_source=habrahabr&utm_medium=rss
Хабр
Адаптированный паттерн Command с использованием Dependency Injection
Вступление Паттерн Command — широко известный и мощный инструмент построения гибких систем, позволяющий целиком вынести логику каждого метода в отдельный класс. В статье показано как совмещение...
Файловый менеджер Files: ошибки по папочкам
Files — это сторонний файловый менеджер для Windows. Он сделан для того, чтобы быть лучшим открытым файловым менеджером для ОС, который поддерживается сообществом. А в этой статье мы взглянем на ошибки в исходном коде Files и внесём свой вклад в open source сообщество.
Читать далее
https://habr.com/ru/companies/pvs-studio/articles/953912/?utm_campaign=953912&utm_source=habrahabr&utm_medium=rss
Files — это сторонний файловый менеджер для Windows. Он сделан для того, чтобы быть лучшим открытым файловым менеджером для ОС, который поддерживается сообществом. А в этой статье мы взглянем на ошибки в исходном коде Files и внесём свой вклад в open source сообщество.
Читать далее
https://habr.com/ru/companies/pvs-studio/articles/953912/?utm_campaign=953912&utm_source=habrahabr&utm_medium=rss
Хабр
Файловый менеджер Files: ошибки по папочкам
Files — это сторонний файловый менеджер для Windows. Он сделан для того, чтобы быть лучшим открытым файловым менеджером для ОС, который поддерживается сообществом. А в этой статье мы взглянем на...
🔥2
Visual Studio Dev/Test Benefit Explained
Before joining Microsoft, I served as VP of Application Development at one of the largest temporary staffing companies in the United States. I’ll never forget the look on our CFO’s face when I told him we needed two to three additional cloud environments to support a large-scale modernization project. His expression went from curious to […]
The post Visual Studio Dev/Test Benefit Explained appeared first on Visual Studio Blog.
https://devblogs.microsoft.com/visualstudio/visual-studio-dev-test-benefit-explained/
Before joining Microsoft, I served as VP of Application Development at one of the largest temporary staffing companies in the United States. I’ll never forget the look on our CFO’s face when I told him we needed two to three additional cloud environments to support a large-scale modernization project. His expression went from curious to […]
The post Visual Studio Dev/Test Benefit Explained appeared first on Visual Studio Blog.
https://devblogs.microsoft.com/visualstudio/visual-studio-dev-test-benefit-explained/
Microsoft News
Visual Studio Dev/Test Benefit Explained
Learn how to unlock major cloud savings with the Visual Studio Dev/Test benefit. Discover how Windows and SQL Server VMs run at Linux rates in Azure, helping teams modernize faster, reduce costs, and maximize their Visual Studio subscription value.
Вышел NWinfo 1.4.4: открытый инструмент для быстрого просмотра характеристик ПК на Windows
Вышел релиз NWinfo 1.4.4 — портативного open source инструмента для просмотра характеристик ПК на Windows. Новая версия получила поддержку Ctrl+C, отчёты в JSON/YAML/LUA и обновлённые драйверы.
— Читать дальше «Вышел NWinfo 1.4.4: открытый инструмент для быстрого просмотра характеристик ПК на Windows»
https://tproger.ru/news/vywel-nwinfo-1-4-4--otkrytyj-instrument-dlya-bystrogo-prosmotra-harakteristik-pk-na-windows
Вышел релиз NWinfo 1.4.4 — портативного open source инструмента для просмотра характеристик ПК на Windows. Новая версия получила поддержку Ctrl+C, отчёты в JSON/YAML/LUA и обновлённые драйверы.
— Читать дальше «Вышел NWinfo 1.4.4: открытый инструмент для быстрого просмотра характеристик ПК на Windows»
https://tproger.ru/news/vywel-nwinfo-1-4-4--otkrytyj-instrument-dlya-bystrogo-prosmotra-harakteristik-pk-na-windows
Tproger
Вышел NWinfo 1.4.4: открытый инструмент для быстрого просмотра характеристик ПК на Windows
Вышел релиз NWinfo 1.4.4 — портативного open source инструмента для просмотра характеристик ПК на Windows. Новая версия получила поддержку Ctrl+C, отчёты в JSON/YAML/LUA и обновлённые драйверы.
Принтер этикеток, или Как бэкендеры писали десктоп-приложение
Представьте команду бэкенд-разработчиков, которые привыкли писать бэкенды на .NET и немного фронтенд на Typescript + React. Это мы, ага. А теперь представьте, что этой команде прилетает задача: написать рабочее десктоп-приложение для печати этикеток.Сложно даже подумать о таком? А с нами всё так и случилось! Сегодня расскажу, как бэкендеры писали приложение для Windows, опираясь на привычную для себя строгую структуру кода, тесты и CI/CD, и о том, что из этого получилось.
Читать далее
https://habr.com/ru/companies/dododev/articles/952852/?utm_campaign=952852&utm_source=habrahabr&utm_medium=rss
Представьте команду бэкенд-разработчиков, которые привыкли писать бэкенды на .NET и немного фронтенд на Typescript + React. Это мы, ага. А теперь представьте, что этой команде прилетает задача: написать рабочее десктоп-приложение для печати этикеток.Сложно даже подумать о таком? А с нами всё так и случилось! Сегодня расскажу, как бэкендеры писали приложение для Windows, опираясь на привычную для себя строгую структуру кода, тесты и CI/CD, и о том, что из этого получилось.
Читать далее
https://habr.com/ru/companies/dododev/articles/952852/?utm_campaign=952852&utm_source=habrahabr&utm_medium=rss
Хабр
Принтер этикеток, или Как бэкендеры писали десктоп-приложение
Мы привыкли писать бэкенды на .NET и немного фронтенд на Typescript + React. Десктопные приложения всегда были где-то рядом, но не в нашей зоне ответственности. Поэтому когда внезапно понадобилось...
Developer and AI Code Reviewer: Reviewing AI-Generated Code in .NET
Learn how to effectively review AI-generated .NET code with practical strategies for maintaining quality, enforcing standards, and boosting team productivity through thoughtful code review practices.
The post Developer and AI Code Reviewer: Reviewing AI-Generated Code in .NET appeared first on .NET Blog.
https://devblogs.microsoft.com/dotnet/developer-and-ai-code-reviewer-reviewing-ai-generated-code-in-dotnet/
Learn how to effectively review AI-generated .NET code with practical strategies for maintaining quality, enforcing standards, and boosting team productivity through thoughtful code review practices.
The post Developer and AI Code Reviewer: Reviewing AI-Generated Code in .NET appeared first on .NET Blog.
https://devblogs.microsoft.com/dotnet/developer-and-ai-code-reviewer-reviewing-ai-generated-code-in-dotnet/
Microsoft News
Developer and AI Code Reviewer: Reviewing AI-Generated Code in .NET
Learn how to effectively review AI-generated .NET code with practical strategies for maintaining quality, enforcing standards, and boosting team productivity through thoughtful code review practices.
Плагины на C# без рантайма: NativeAOT-экспорт и вызов из Rust/Python
Привет, Хабр!
Наткнулись на задачу: нужен плагин на C#, который можно грузить как обычную C-библиотеку без CLR и JIT, а вызывать из Rust и Python. Без обвязок, без CoreCLR-хостинга и прочего. Чистый C ABI, нормальные строки, предсказуемые структуры, обработка ошибок и нулевой JIT-прогрев. Это как раз случай для NativeAOT: компилируем библиотеку в нативный .dll/.so/.dylib, экспортируем функции через [UnmanagedCallersOnly], а дальше живём как с любой C-библиотекой. Нюансов хватает: что экспортируется и как назвать символ, как договориться по ABI, что делать со строками UTF-8, как возвращать ошибку, как освобождать память снаружи, почему исключения нельзя проталкивать за границу, и в каком месте «cdecl» реально что-то значит.
Ознакомиться с примером NativeAOT
https://habr.com/ru/companies/otus/articles/950462/?utm_campaign=950462&utm_source=habrahabr&utm_medium=rss
Привет, Хабр!
Наткнулись на задачу: нужен плагин на C#, который можно грузить как обычную C-библиотеку без CLR и JIT, а вызывать из Rust и Python. Без обвязок, без CoreCLR-хостинга и прочего. Чистый C ABI, нормальные строки, предсказуемые структуры, обработка ошибок и нулевой JIT-прогрев. Это как раз случай для NativeAOT: компилируем библиотеку в нативный .dll/.so/.dylib, экспортируем функции через [UnmanagedCallersOnly], а дальше живём как с любой C-библиотекой. Нюансов хватает: что экспортируется и как назвать символ, как договориться по ABI, что делать со строками UTF-8, как возвращать ошибку, как освобождать память снаружи, почему исключения нельзя проталкивать за границу, и в каком месте «cdecl» реально что-то значит.
Ознакомиться с примером NativeAOT
https://habr.com/ru/companies/otus/articles/950462/?utm_campaign=950462&utm_source=habrahabr&utm_medium=rss
Хабр
Плагины на C# без рантайма: NativeAOT-экспорт и вызов из Rust/Python
Привет, Хабр! Наткнулись на задачу: нужен плагин на C#, который можно грузить как обычную C-библиотеку без CLR и JIT, а вызывать из Rust и Python. Без обвязок, без CoreCLR-хостинга и прочего. Чистый C...
Function Object — как основа бизнес логики приложения
В предыдущей статье "Адаптированный паттерн Command с использованием Dependency Injection", я описывал как инкапсуляция логики приложений в отдельные объекты-функции позволяет получить преимущества в архитектуре приложений.
В качестве основы для концепции объекта-функции мной был выбран известный паттерн Command, но обсуждение статьи показало, что читателям тяжело отказатся от слишком узкой специфики паттерна Command и это мешяет восприятию материала.
Эта статья пытается исправиль допущенную автором ошибку.
Статья является дополнением к предыдущей.
Читать далее
https://habr.com/ru/articles/954516/?utm_campaign=954516&utm_source=habrahabr&utm_medium=rss
В предыдущей статье "Адаптированный паттерн Command с использованием Dependency Injection", я описывал как инкапсуляция логики приложений в отдельные объекты-функции позволяет получить преимущества в архитектуре приложений.
В качестве основы для концепции объекта-функции мной был выбран известный паттерн Command, но обсуждение статьи показало, что читателям тяжело отказатся от слишком узкой специфики паттерна Command и это мешяет восприятию материала.
Эта статья пытается исправиль допущенную автором ошибку.
Статья является дополнением к предыдущей.
Читать далее
https://habr.com/ru/articles/954516/?utm_campaign=954516&utm_source=habrahabr&utm_medium=rss
Хабр
Function Object — как основа бизнес логики приложения
Введение В предыдущей статье " Адаптированный паттерн Command с использованием Dependency Injection ", я описывал как инкапсуляция логики приложений в отдельные объекты-функции позволяет получить...
🤡1
Preparing for the .NET 10 GC (DATAS)
Learn how DATAS in .NET 10 adapts heap size, what changes to expect versus previous Server Garbage Collection (GC) behavior, and how to decide whether to tune or disable it.
The post Preparing for the .NET 10 GC (DATAS) appeared first on .NET Blog.
https://devblogs.microsoft.com/dotnet/preparing-for-dotnet-10-gc/
Learn how DATAS in .NET 10 adapts heap size, what changes to expect versus previous Server Garbage Collection (GC) behavior, and how to decide whether to tune or disable it.
The post Preparing for the .NET 10 GC (DATAS) appeared first on .NET Blog.
https://devblogs.microsoft.com/dotnet/preparing-for-dotnet-10-gc/
Microsoft News
Preparing for the .NET 10 GC (DATAS)
Learn how DATAS in .NET 10 adapts heap size, what changes to expect versus previous Server Garbage Collection (GC) behavior, and how to decide whether to tune or disable it.
AI-ассистент для 15 000 файлов: быстрее, чем спросить у коллег
Привет! Я Алексей из команды Fiji, которая занимается внутренним продуктом для хранения и редактирования геоданных. Мы уже немного рассказывали о нем на Хабре: раз, два, три, четыре.
Наш проект активно развивается уже 10 лет, недавно ещё и команда выросла вдвое. Соответственно, почти вдвое увеличилось количество задач, а вместе с ним — и сложность интеграций с другими командами. Требования часто дополняются и меняются по ходу реализации, статьи в Confluence не всегда актуализируются, а часть информации оседает в чатах и на созвонах. Только код в мастере стабильно отражает то, что реально работает на продакшне.
Не так давно у нас случился триггер на одном из созвонов — технолог задал вопрос про задачу, которую делали пару месяцев назад, а мы все сидим и глазами хлопаем, ничего не помним. Ни заказчики, ни аналитики, ни разработчики. Кого-то из тех, кто мог бы ответить, на встрече не было. Тут и подумалось: в коде-то эта вся логика есть, нужно её только достать и переварить обратно в текст.
Так и появилась идея сделать помощника как для новых ребят, так и для старичков, так как весь контекст держать в головах уже проблематично: основной солюшн — это почти 15 тысяч файлов на C# и около 1.5 млн строк кода, плюс утилиты и пара сервисов на Java. В статье — история о пройденном пути создания командного ассистента, который помогает отвечать на любые вопросы о проекте.
Читать далее
https://habr.com/ru/companies/2gis/articles/949704/?utm_campaign=949704&utm_source=habrahabr&utm_medium=rss
Привет! Я Алексей из команды Fiji, которая занимается внутренним продуктом для хранения и редактирования геоданных. Мы уже немного рассказывали о нем на Хабре: раз, два, три, четыре.
Наш проект активно развивается уже 10 лет, недавно ещё и команда выросла вдвое. Соответственно, почти вдвое увеличилось количество задач, а вместе с ним — и сложность интеграций с другими командами. Требования часто дополняются и меняются по ходу реализации, статьи в Confluence не всегда актуализируются, а часть информации оседает в чатах и на созвонах. Только код в мастере стабильно отражает то, что реально работает на продакшне.
Не так давно у нас случился триггер на одном из созвонов — технолог задал вопрос про задачу, которую делали пару месяцев назад, а мы все сидим и глазами хлопаем, ничего не помним. Ни заказчики, ни аналитики, ни разработчики. Кого-то из тех, кто мог бы ответить, на встрече не было. Тут и подумалось: в коде-то эта вся логика есть, нужно её только достать и переварить обратно в текст.
Так и появилась идея сделать помощника как для новых ребят, так и для старичков, так как весь контекст держать в головах уже проблематично: основной солюшн — это почти 15 тысяч файлов на C# и около 1.5 млн строк кода, плюс утилиты и пара сервисов на Java. В статье — история о пройденном пути создания командного ассистента, который помогает отвечать на любые вопросы о проекте.
Читать далее
https://habr.com/ru/companies/2gis/articles/949704/?utm_campaign=949704&utm_source=habrahabr&utm_medium=rss
Хабр
AI-ассистент для 15 000 файлов: быстрее, чем спросить у коллег
Привет! Я Алексей из команды Fiji, которая занимается внутренним продуктом для хранения и редактирования геоданных. Мы уже немного рассказывали о нем на Хабре: раз , два , три , четыре . Наш проект...
Scaled Rank Fusion — объединяет значения из нескольких списков с учётом масштаба
Семейство методов Rank Fusion включает различные алгоритмы объединения нескольких ранжированных списков результатов в один улучшенный ранжированный список с целью повышения качества и надежности итогового ранжирования.
Основная идея — агрегировать информацию из разных систем или моделей, которые могут по-разному оценивать релевантность документов.
Rank Fusion широко применяется в информационном поиске, мультимедийном поиске, гибридных системах поиска, системах на основе модели Retrieval Augmented Generation (RAG), а также в задачах ансамблевого обучения.
В статье описан новый алгоритм семейства Rank Fusion, а может и не новый, дайте знать.
Читать далее
https://habr.com/ru/articles/955050/?utm_campaign=955050&utm_source=habrahabr&utm_medium=rss
Семейство методов Rank Fusion включает различные алгоритмы объединения нескольких ранжированных списков результатов в один улучшенный ранжированный список с целью повышения качества и надежности итогового ранжирования.
Основная идея — агрегировать информацию из разных систем или моделей, которые могут по-разному оценивать релевантность документов.
Rank Fusion широко применяется в информационном поиске, мультимедийном поиске, гибридных системах поиска, системах на основе модели Retrieval Augmented Generation (RAG), а также в задачах ансамблевого обучения.
В статье описан новый алгоритм семейства Rank Fusion, а может и не новый, дайте знать.
Читать далее
https://habr.com/ru/articles/955050/?utm_campaign=955050&utm_source=habrahabr&utm_medium=rss
Хабр
Scaled Rank Fusion — объединяет значения из нескольких списков с учётом масштаба
Семейство методов Rank Fusion Семейство методов Rank Fusion включает различные алгоритмы объединения нескольких ранжированных списков результатов в один улучшенный ранжированный список с целью...
🤡1
DotNet&More #161: Чем отличается джун от миддла от сеньора и не только
Технологии меняются каждые 5 лет, алгоритмы учатся за пол года литкода, любой хипстер может навайбкодить SAAS за 3 промпта.Так может все, в современном мире нет места сеньорам?
Спасибо всем, кто нас слушает. Ждем Ваши комментарии.
Музыка из выпуска:
- https://artists.landr.com/056870627229
- https://www.tg-me.com/angry_programmer_screams
Весь плейлист курса "Kubernetes для DotNet разработчиков": https://www.youtube.com/playlist?list=PLbxr_aGL4q3SrrmOzzdBBsdeQ0YVR3Fc7
Бесплатный открытый курс "Rust для DotNet разработчиков": https://www.youtube.com/playlist?list=PLbxr_aGL4q3S2iE00WFPNTzKAARURZW1Z
Shownotes:
00:00:00 Вступление
00:05:30 Разные подходы к коду
00:14:00 Senior как знатоки технологий
00:26:00 Грейд как степень независимости
00:36:20 Проблема закрытых вопросов на собесах
00:52:00 Грейды и выслуга лет
Ссылки:
- https://ecode.ozon.tech/talks/f22529885e974f188e5c97c18eca2603/?referer=%2Fpersons%2Ff5fb0cca75ab472b8b6c1eccce3b77d6%2F&__rr=1 : Доклад нашего гостя
Видео: https://youtube.com/live/YnYCRh4pTpo
Слушайте все выпуски: https://dotnetmore.mave.digital
YouTube: https://www.youtube.com/playlist?list=PLbxr_aGL4q3R6kfpa7Q8biS11T56cNMf5
Twitch: https://www.twitch.tv/dotnetmore
Обсуждайте:
- Telegram: https://www.tg-me.com/dotnetmore_chat
Следите за новостями:
– Twitter: https://twitter.com/dotnetmore
– Telegram channel: https://www.tg-me.com/dotnetmore
Copyright: https://creativecommons.org/licenses/by-sa/4.0/
https://dotnetmore.mave.digital/ep-165
Технологии меняются каждые 5 лет, алгоритмы учатся за пол года литкода, любой хипстер может навайбкодить SAAS за 3 промпта.Так может все, в современном мире нет места сеньорам?
Спасибо всем, кто нас слушает. Ждем Ваши комментарии.
Музыка из выпуска:
- https://artists.landr.com/056870627229
- https://www.tg-me.com/angry_programmer_screams
Весь плейлист курса "Kubernetes для DotNet разработчиков": https://www.youtube.com/playlist?list=PLbxr_aGL4q3SrrmOzzdBBsdeQ0YVR3Fc7
Бесплатный открытый курс "Rust для DotNet разработчиков": https://www.youtube.com/playlist?list=PLbxr_aGL4q3S2iE00WFPNTzKAARURZW1Z
Shownotes:
00:00:00 Вступление
00:05:30 Разные подходы к коду
00:14:00 Senior как знатоки технологий
00:26:00 Грейд как степень независимости
00:36:20 Проблема закрытых вопросов на собесах
00:52:00 Грейды и выслуга лет
Ссылки:
- https://ecode.ozon.tech/talks/f22529885e974f188e5c97c18eca2603/?referer=%2Fpersons%2Ff5fb0cca75ab472b8b6c1eccce3b77d6%2F&__rr=1 : Доклад нашего гостя
Видео: https://youtube.com/live/YnYCRh4pTpo
Слушайте все выпуски: https://dotnetmore.mave.digital
YouTube: https://www.youtube.com/playlist?list=PLbxr_aGL4q3R6kfpa7Q8biS11T56cNMf5
Twitch: https://www.twitch.tv/dotnetmore
Обсуждайте:
- Telegram: https://www.tg-me.com/dotnetmore_chat
Следите за новостями:
– Twitter: https://twitter.com/dotnetmore
– Telegram channel: https://www.tg-me.com/dotnetmore
Copyright: https://creativecommons.org/licenses/by-sa/4.0/
https://dotnetmore.mave.digital/ep-165
Landr
Angry Programmer Screams - Hello, World!
Listen to Hello, World! by Angry Programmer Screams.
🤡2👍1
Data API Builder 1.6 Adds HTTP Header Controls and Flexible Logging
Microsoft has released Data API Builder (DAB) 1.6, expanding the open-source runtime’s capabilities for REST and GraphQL endpoints over Azure SQL, PostgreSQL, MySQL, and Cosmos DB. The new version introduces advanced HTTP header behaviours for better client-side control and a revamped logging subsystem designed to improve diagnostics and observability in both cloud and on-premise deployments.
By Edin Kapić
https://www.infoq.com/news/2025/10/data-api-builder-16/?utm_campaign=infoq_content&utm_source=infoq&utm_medium=feed&utm_term=.NET
Microsoft has released Data API Builder (DAB) 1.6, expanding the open-source runtime’s capabilities for REST and GraphQL endpoints over Azure SQL, PostgreSQL, MySQL, and Cosmos DB. The new version introduces advanced HTTP header behaviours for better client-side control and a revamped logging subsystem designed to improve diagnostics and observability in both cloud and on-premise deployments.
By Edin Kapić
https://www.infoq.com/news/2025/10/data-api-builder-16/?utm_campaign=infoq_content&utm_source=infoq&utm_medium=feed&utm_term=.NET
InfoQ
Data API Builder 1.6 Adds HTTP Header Controls and Flexible Logging
Microsoft has released Data API Builder (DAB) 1.6, expanding the open-source runtime’s capabilities for REST and GraphQL endpoints over Azure SQL, PostgreSQL, MySQL, and Cosmos DB. The new version introduces advanced HTTP header behaviours for better client…
Формирование RPM пакета для OC Linux с использованием GitLab CI/CD (часть 2)
В предыдущей статье рассмотрены основы сборки RPM пакета и автоматизации процесса.
Данная публикация завершает цикл. Продемонстрировав практическую реализацию готового решения, включая:
Разработку Web сервиса.
Регистрацию сервиса в качестве системной службы с автозагрузкой (systemd) при установке пакета.
Внедрение централизованного логирования через journald.
В результате создана полнофункциональная заготовка для быстрого развертывания сервисов с последующей публикацией их в RPM пакет.
Читать далее
https://habr.com/ru/articles/955642/?utm_campaign=955642&utm_source=habrahabr&utm_medium=rss
В предыдущей статье рассмотрены основы сборки RPM пакета и автоматизации процесса.
Данная публикация завершает цикл. Продемонстрировав практическую реализацию готового решения, включая:
Разработку Web сервиса.
Регистрацию сервиса в качестве системной службы с автозагрузкой (systemd) при установке пакета.
Внедрение централизованного логирования через journald.
В результате создана полнофункциональная заготовка для быстрого развертывания сервисов с последующей публикацией их в RPM пакет.
Читать далее
https://habr.com/ru/articles/955642/?utm_campaign=955642&utm_source=habrahabr&utm_medium=rss
Хабр
Формирование RPM пакета для OC Linux с использованием GitLab CI/CD (часть 2)
В предыдущей статье рассмотрены основы сборки RPM пакета и автоматизации процесса. Данная публикация завершает цикл. Продемонстрировав практическую реализацию готового решения, включая: Разработку Web...
Минималистский графический интерфейс, на C++ / WTL, для консольного загрузчика
Введение
Всё началось с комментирования статьи: «[Как я написал современный GUI для yt-dlp на Python]( https://habr.com/ru/articles/930260/)».
Программа автора мне понравилась, и я обещал ему попробовать сделать аналогичный проект на C++ / WTL.
Так вот, не прошло и полгода, как первая версия аналогичной программы уже готова. Её рабочее название – MiniDL, а исходники доступны на сайтах:
http://polezp.narod.ru/Prg/MiniDL100.zip
и
http://lecole.free.nf/Prg/MiniDL100.zip
или
https://disk.yandex.ru/d/yGQDXbkpk6LPqw
Архив содержит также скомпилированные бинарники для 32-х и 64-х разрядных, релизных версий, под Windows («MiniDL32r.exe» и «MiniDL64r.exe»).
Естественно, создать конкурентный интерфейс профессиональной библиотеке CustomTkinter, для Питона, на сверхлегком движке WTL, за обозримое время, практически невозможно. Но такая задача и не ставилась. Хотелось просто реализовать идею автора – работать с удобной графической оболочкой для консольной программы, в данном случае – внешнем загрузчике медиа-контента из Ютуба и других, поддерживаемых им сайтов.
Ради простоты, пришлось отказаться от попытки реализовать все интерфейсные плюшки автора и ограничиться минималистским вариантом. Тем более что, лично меня он вполне устраивает. Более того, поскольку я привык работать в Total Commander, то там вполне удобно использовать и консольные программы, особенно в паре с командным файлом их запуска, что позволяет перенести туда все параметры командной строки. А, в случае с загрузчиком yt-dlp.exe ситуация оказалась еще лучше, так как, он поддерживает конфигурационный файл, с мощными настройками. Если их хорошо освоить, то, в принципе, ничего больше и не надо. Ведь, эти настройки позволяют легко скачивать не только аудио и видео файлы, но и субтитры к ним и тому подобное. Также, легко и просто указать каталог загрузки, но уже в нашей программе, и не мучиться, как автор, с сохранением их на рабочий стол.
Читать далее
https://habr.com/ru/articles/955838/?utm_campaign=955838&utm_source=habrahabr&utm_medium=rss
Введение
Всё началось с комментирования статьи: «[Как я написал современный GUI для yt-dlp на Python]( https://habr.com/ru/articles/930260/)».
Программа автора мне понравилась, и я обещал ему попробовать сделать аналогичный проект на C++ / WTL.
Так вот, не прошло и полгода, как первая версия аналогичной программы уже готова. Её рабочее название – MiniDL, а исходники доступны на сайтах:
http://polezp.narod.ru/Prg/MiniDL100.zip
и
http://lecole.free.nf/Prg/MiniDL100.zip
или
https://disk.yandex.ru/d/yGQDXbkpk6LPqw
Архив содержит также скомпилированные бинарники для 32-х и 64-х разрядных, релизных версий, под Windows («MiniDL32r.exe» и «MiniDL64r.exe»).
Естественно, создать конкурентный интерфейс профессиональной библиотеке CustomTkinter, для Питона, на сверхлегком движке WTL, за обозримое время, практически невозможно. Но такая задача и не ставилась. Хотелось просто реализовать идею автора – работать с удобной графической оболочкой для консольной программы, в данном случае – внешнем загрузчике медиа-контента из Ютуба и других, поддерживаемых им сайтов.
Ради простоты, пришлось отказаться от попытки реализовать все интерфейсные плюшки автора и ограничиться минималистским вариантом. Тем более что, лично меня он вполне устраивает. Более того, поскольку я привык работать в Total Commander, то там вполне удобно использовать и консольные программы, особенно в паре с командным файлом их запуска, что позволяет перенести туда все параметры командной строки. А, в случае с загрузчиком yt-dlp.exe ситуация оказалась еще лучше, так как, он поддерживает конфигурационный файл, с мощными настройками. Если их хорошо освоить, то, в принципе, ничего больше и не надо. Ведь, эти настройки позволяют легко скачивать не только аудио и видео файлы, но и субтитры к ним и тому подобное. Также, легко и просто указать каталог загрузки, но уже в нашей программе, и не мучиться, как автор, с сохранением их на рабочий стол.
Читать далее
https://habr.com/ru/articles/955838/?utm_campaign=955838&utm_source=habrahabr&utm_medium=rss
Хабр
Как я написал современный GUI для yt-dlp на Python
Надоело каждый раз лезть в терминал, чтобы скачать видео с YouTube? Мне тоже. Поэтому я сделал нормальный GUI для yt-dlp - без лишних кнопок, с современным интерфейсом и чтобы просто работал. Код на...
Система резервации на 600 заказов в секунду без буферизации и другой дичи
Я прочитал статью https://habr.com/ru/companies/ozontech/articles/950044/, и меня поразило, сколько сомнительных решений можно использовать для одной простой задачи.
В этой статье я расскажу, как правильно создать сервис для конкурентных обновлений остатков данных в базе данных. Буду использовать .NET, C#, Entity Framework и PostgreSql.
Читать далее
https://habr.com/ru/articles/955714/?utm_campaign=955714&utm_source=habrahabr&utm_medium=rss
Я прочитал статью https://habr.com/ru/companies/ozontech/articles/950044/, и меня поразило, сколько сомнительных решений можно использовать для одной простой задачи.
В этой статье я расскажу, как правильно создать сервис для конкурентных обновлений остатков данных в базе данных. Буду использовать .NET, C#, Entity Framework и PostgreSql.
Читать далее
https://habr.com/ru/articles/955714/?utm_campaign=955714&utm_source=habrahabr&utm_medium=rss
Хабр
Как мы победили «сковородочный апокалипсис» — буферизация резервации товаров в Ozon
или Почему наша система теперь не боится ни распродаж, ни внезапного наплыва любителей гречки и сковородок Всем привет! Меня зовут Александр Исай, я тимлид в Ozon Tech. Сегодня я расскажу историю...
🤡1
Выбор языка программирования для создание более трудных проектов: как сделать правильный выбор новичку?
Мир программирования разнообразен, и новичкам сложно выбрать первый язык. Важно понять свои цели и предпочтения, чтобы сделать правильный выбор и уверенно начать.
Сложность языка зависит не только от его особенностей, но и от вашего опыта и готовности разбираться в материалах. Объективного критерия нет.
Часто сложность связывают с уровнем языка: низкоуровневые ближе к машинному коду и требуют работы с памятью и процессором, что сложнее, но даёт больше контроля. Высокоуровневые проще в использовании благодаря большим стандартным библиотекам и готовым решениям. Однако эта классификация не всегда однозначна и вызывает споры.
Читать далее
https://habr.com/ru/articles/956302/?utm_campaign=956302&utm_source=habrahabr&utm_medium=rss
Мир программирования разнообразен, и новичкам сложно выбрать первый язык. Важно понять свои цели и предпочтения, чтобы сделать правильный выбор и уверенно начать.
Сложность языка зависит не только от его особенностей, но и от вашего опыта и готовности разбираться в материалах. Объективного критерия нет.
Часто сложность связывают с уровнем языка: низкоуровневые ближе к машинному коду и требуют работы с памятью и процессором, что сложнее, но даёт больше контроля. Высокоуровневые проще в использовании благодаря большим стандартным библиотекам и готовым решениям. Однако эта классификация не всегда однозначна и вызывает споры.
Читать далее
https://habr.com/ru/articles/956302/?utm_campaign=956302&utm_source=habrahabr&utm_medium=rss
Хабр
Выбор языка программирования для создание более трудных проектов: как сделать правильный выбор новичку?
Мир программирования огромен и разнообразен. Для новичка выбор первого языка может показаться сложной задачей: сколько их существует, какие лучше выбрать, с чего начинать? В этой статье мы разберем...
Announcing the .NET Security Group
Learn how to join the .NET Security Group for early access to CVE information and help deliver security patches to your .NET distribution simultaneously with Microsoft.
The post Announcing the .NET Security Group appeared first on .NET Blog.
https://devblogs.microsoft.com/dotnet/announcing-dotnet-security-group/
Learn how to join the .NET Security Group for early access to CVE information and help deliver security patches to your .NET distribution simultaneously with Microsoft.
The post Announcing the .NET Security Group appeared first on .NET Blog.
https://devblogs.microsoft.com/dotnet/announcing-dotnet-security-group/
Microsoft News
Announcing the .NET Security Group
Learn how to join the .NET Security Group for early access to CVE information and help deliver security patches to your .NET distribution simultaneously with Microsoft.
Announcing .NET 10 Release Candidate 2
.NET 10 Release Candidate 2 focuses on final quality, reliability, and stabilization across the runtime, SDK, libraries, ASP.NET Core, Blazor, .NET MAUI, and more.
The post Announcing .NET 10 Release Candidate 2 appeared first on .NET Blog.
https://devblogs.microsoft.com/dotnet/dotnet-10-rc-2/
.NET 10 Release Candidate 2 focuses on final quality, reliability, and stabilization across the runtime, SDK, libraries, ASP.NET Core, Blazor, .NET MAUI, and more.
The post Announcing .NET 10 Release Candidate 2 appeared first on .NET Blog.
https://devblogs.microsoft.com/dotnet/dotnet-10-rc-2/
Microsoft News
Announcing .NET 10 Release Candidate 2
.NET 10 Release Candidate 2 focuses on final quality, reliability, and stabilization across the runtime, SDK, libraries, ASP.NET Core, Blazor, .NET MAUI, and more.
.NET and .NET Framework October 2025 servicing releases updates
A recap of the latest servicing updates for .NET and .NET Framework for October 2025.
The post .NET and .NET Framework October 2025 servicing releases updates appeared first on .NET Blog.
https://devblogs.microsoft.com/dotnet/dotnet-and-dotnet-framework-october-2025-servicing-updates/
A recap of the latest servicing updates for .NET and .NET Framework for October 2025.
The post .NET and .NET Framework October 2025 servicing releases updates appeared first on .NET Blog.
https://devblogs.microsoft.com/dotnet/dotnet-and-dotnet-framework-october-2025-servicing-updates/
Microsoft News
.NET and .NET Framework October 2025 servicing releases updates
A recap of the latest servicing updates for .NET and .NET Framework for October 2025.