Библиотека С# С++
Відкрити в Telegram
https://t.me/+WgGTjeH0p1NjMDFi - ссылка на канал По всем вопросам- @workakkk @ai_machinelearning_big_data - Machine learning @itchannels_telegram - 🔥лучшие ит-каналы @csharp_ci- C# академия @pythonlbooks- python книги📚 РКН: clck.ru/3Fmvsw
Показати більше9 998
Підписники
-124 години
-177 днів
-6230 днів
Завантажуємо дані
Схожі канали
Хмара тегів
Вхідні та вихідні згадування
---
---
---
---
---
---
Залучення підписників
листопад '26лист '26
листопад '26
+6
в 0 каналах
жовтень '26
+37
в 0 каналах
Get PRO
вересень '26
+82
в 0 каналах
Get PRO
серпень '26
+46
в 0 каналах
Get PRO
липень '26
+39
в 0 каналах
Get PRO
червень '26
+18
в 0 каналах
Get PRO
травень '26
+25
в 0 каналах
Get PRO
квітень '26
+21
в 0 каналах
Get PRO
березень '26
+31
в 0 каналах
Get PRO
лютий '26
+134
в 0 каналах
Get PRO
січень '26
+280
в 1 каналах
Get PRO
грудень '25
+45
в 0 каналах
Get PRO
листопад '25
+159
в 2 каналах
Get PRO
жовтень '25
+53
в 0 каналах
Get PRO
вересень '25
+119
в 1 каналах
Get PRO
серпень '25
+140
в 1 каналах
Get PRO
липень '25
+172
в 0 каналах
Get PRO
червень '25
+165
в 0 каналах
Get PRO
травень '25
+46
в 0 каналах
Get PRO
квітень '25
+91
в 1 каналах
Get PRO
березень '25
+38
в 1 каналах
Get PRO
лютий '25
+109
в 0 каналах
Get PRO
січень '25
+133
в 0 каналах
Get PRO
грудень '24
+414
в 0 каналах
Get PRO
листопад '24
+1 175
в 0 каналах
Get PRO
жовтень '24
+1 196
в 0 каналах
Get PRO
вересень '24
+627
в 2 каналах
Get PRO
серпень '24
+575
в 1 каналах
Get PRO
липень '24
+484
в 1 каналах
Get PRO
червень '24
+730
в 1 каналах
Get PRO
травень '24
+469
в 35 каналах
Get PRO
квітень '24
+501
в 44 каналах
Get PRO
березень '24
+446
в 20 каналах
Get PRO
лютий '24
+435
в 1 каналах
Get PRO
січень '24
+735
в 43 каналах
Get PRO
грудень '23
+720
в 38 каналах
Get PRO
листопад '23
+231
в 1 каналах
Get PRO
жовтень '23
+459
в 18 каналах
Get PRO
вересень '23
+387
в 0 каналах
Get PRO
серпень '23
+648
в 0 каналах
Get PRO
липень '23
+506
в 0 каналах
Get PRO
червень '23
+291
в 0 каналах
Get PRO
травень '23
+1 094
в 0 каналах
Get PRO
квітень '23
+698
в 0 каналах
Get PRO
березень '23
+73
в 0 каналах
Get PRO
лютий '23
+23
в 0 каналах
Get PRO
січень '23
+60
в 0 каналах
Get PRO
грудень '22
+87
в 0 каналах
Get PRO
листопад '22
+457
в 0 каналах
| Дата | Залучення підписників | Згадування | Канали | |
| 15 листопада | 0 | |||
| 14 листопада | +2 | |||
| 13 листопада | 0 | |||
| 12 листопада | 0 | |||
| 11 листопада | +1 | |||
| 10 листопада | 0 | |||
| 09 листопада | 0 | |||
| 08 листопада | 0 | |||
| 07 листопада | 0 | |||
| 06 листопада | 0 | |||
| 05 листопада | 0 | |||
| 04 листопада | 0 | |||
| 03 листопада | 0 | |||
| 02 листопада | +3 | |||
| 01 листопада | 0 |
Дописи каналу
🖥️ Почему `errno` в C не ломается при работе 32 потоков одновременно?
На первый взгляд
errno выглядит как обычная глобальная переменная:
if (errno == EINTR) {
// retry
}
Но если 32 потока одновременно выполняют системные вызовы, почему они не перезаписывают errno друг у друга?
Потому что errno на самом деле не обычная глобальная переменная.
В glibc это макрос, который обращается к специальной функции __errno_location():
extern int *__errno_location(void);
#define errno (*__errno_location())
Функция возвращает указатель на отдельную область памяти для каждого потока через механизм Thread-Local Storage (TLS).
Получается, каждый поток работает со своим экземпляром errno:
- Поток №1 читает и изменяет собственное значение.
- Поток №2 работает со своим.
- Поток №32 получает отдельное значение.
Поэтому потоки не перезаписывают errno друг у друга.
Это не особенность только Linux: POSIX гарантирует потокоспецифичное поведение errno.
Ещё один нюанс: проверять errno нужно только после того, как функция сообщила об ошибке. Само по себе изменение errno не означает, что операция завершилась неудачно.| 2 | ✔️ Tencent показала Hyra 2.0: ресерч-агента для автоматизацииисследований
В первой версии Hyra агент работал по схеме: предложить решение, запустить эксперимент, оценить метрику и использовать результаты для следующей итерации.
В Hyra 2.0 Tencent предлагает сохранять не только удачные решения, но и полученные в процессе инструменты, модели и экспериментальные пайплайны.
Например, при оптимизации обучения агент может разработать собственный способ поиска гиперпараметров или оценки кандидатов, а затем повторно использовать его в других экспериментах.
Это интересное развитие идеи AutoResearch. Обычно каждый запуск оптимизирует конкретную задачу в рамках заданного бюджета. Здесь предполагается накапливать исследовательские инструменты, чтобы следующие задачи решались эффективнее.
https://hy.tencent.com/research/hyra2
#Tencent | 712 |
| 3 | 🖥️ Черная пятница на Stepik на один из лучших курсов по контейнеризации!
Если давно хотел разобраться в теме, но постоянно откладывал или терялся среди десятков материалов, этот курс на Stepik поможет выстроить обучение последовательно.
Что получишь:
- Понятные объяснения без лишней воды.
- Практические задания для закрепления знаний.
- Возможность учиться в удобном темпе.
- Структурированный подход вместо хаотичного поиска информации.
Подойдёт тем, кто начинает с нуля или хочет систематизировать знания.
Начни прокачивать навыки уже сейчас:
https://stepik.org/course/303477/ | 619 |
| 4 | В C# наконец появились union-типы
Разбираем C# 15 и .NET 11: union-типы, закрытые иерархии через closed, аргументы в коллекционных выражениях, extension-индексаторы и именованные break и continue.
Разработчики на C# просили размеченные объединения (discriminated unions) почти десять лет. Обсуждение в репозитории языка годами оставалось одним из самых популярных, а команды тем временем писали свои OneOf, Result и иерархии из абстрактных record с бесконечными default: throw. В C# 15, который выходит вместе с .NET 11, союзы наконец становятся частью языка. Вместе с ними приходят закрытые иерархии, аргументы в коллекционных выражениях, extension-индексаторы и именованные break/continue. Разберём, что из этого реально пригодится в коде уже сейчас.
https://uproger.com/csharp-15-union-types/ | 804 |
| 5 | Эта функция из 1983 года выглядит как ошибка. Но работает
В 1983 году Том Дафф в Lucasfilm вставил switch прямо внутрь цикла do while, чтобы ускорить копирование. Показываю на примере 11 элементов, как код «проваливается» по веткам case, и привожу цитату из его письма Ритчи и Пайку. Я замерил на C: без оптимизаций трюк быстрее обычного цикла на 40%, с оптимизацией выигрыш всего 13%, а memcpy быстрее в пять раз.
https://www.youtube.com/shorts/jnr3r_7j14w | 701 |
| 6 | «what the fu**?»: самый странный комментарий в игровом коде
Одна строка из Quake III заменяет деление и корень сдвигом битов и магическим числом 0x5f3759df. Покажу на примере, как это работает, и посчитаю погрешность: 3.44% до уточнения и 0.175% после одного шага Ньютона. А кто на самом деле придумал трюк, вы вряд ли угадаете.
https://youtube.com/shorts/oIpqqzNNCHo | 699 |
| 7 | 👨🏻💻 AI в бэкенд-задачах — на Podlodka Backend Crew
Код теперь может написать агент, но за результат всё ещё отвечаете вы. Организаторы Podlodka Backend Crew собрали конференцию о том, как работать с бэкендом после того, как AI написал код.
Причём в программе нет докладов в жанре «у нас все получилось» — только реальная практика. Конференция пройдёт с 26 по 30 октября.
🧠️️️️ Участники сезона:
• Разберут пулл‑реквесты от агента и попробуют предотвратить возможные инциденты на рулетке кейсов
• Выяснят, какие неожиданные ловушки скрываются в OpenAPI и на что обращать внимание при разработке контрактов
• Разберут антипаттерны в AI-юнит-тестах, узнают, как их избежать с помощью современных инструментов, и заберут себе новый агентский скилл
• Спроектируют бэкенд дейтинг-приложения на архитектурной кате и решат, где в нём действительно нужен AI.
Формат Podlodka Backend Crew — комфортный онлайн: 5 дней, утренние и вечерние сессии в Zoom.
Отдельный плюс — цена: заметно ниже привычных конференций, при этом вы не просто слушаете о чужом опыте, а разбираете PR и отвечаете за релиз, проектируете систему в команде и расследуете чужие провалы.
Такого вовлечения не получить на обычной конференции.
🔗 Изучайте программу и присоединяйтесь: https://podlodka.io/becrew
Промокод на скидку для подписчиков backendcrew | 759 |
| 8 | 20 готовых программ на C++ с кодом: практика для новичков и не только (2026)
20 готовых программ на C++ с исходным кодом: от калькулятора до LRU-кэша и алгоритма Дейкстры. Копируйте, запускайте и прокачивайте навыки в 2026 году.
https://uproger.com/20-programm-na-cpp-s-kodom-2026/ | 980 |
| 9 | 💡 В C можно заполнить три элемента массива, а остальные обнулятся автоматически
Для этого есть designated initializers — инициализация с указанием индексов:
int flags[256] = {
['A'] = 1,
['Z'] = 1,
[42] = 99
};
Получаем:
• flags['A'] и flags['Z'] равны 1.
• flags[42] равен 99.
• Все остальные элементы равны 0, даже если массив локальный.
'A' здесь — символьная константа: её числовое значение используется как индекс.
Удобно для таблиц флагов, классификации символов и индексов из enum. Не нужно вручную перечислять сотни нулей.
Возможность входит в стандарт C начиная с C99. | 897 |
| 10 | Альфа-Банк ищет скиллового коллегу QA Fullstack на C#
Предлагаем полную удалёнку или гибридный график – у нас классные ИТ-офисы в Москве, Питере и Екатеринбурге.
Что нужно делать
– Разрабатывать автотесты на C#.
– Запускать функциональные, регрессионные и интеграционные тесты, включая API.
– Снижать количество дефектов в диалоге с разработкой и бизнесом.
Какие навыки важны
– Опыт автоматизации на C# и ручного тестирования от года.
– Знание API (SOAP, REST), SQL, основ клиент-серверной архитектуры и тест-дизайна.
Условия и развитие
– Сильное сообщество QA и C#-разработчиков: можно получить совет и поделиться опытом на митапе и в блоге на Хабре.
– Реальная перспектива роста: технический трек развития, в том числе до C#-лида
Оставляйте отклик по ссылке. | 1 162 |
| 11 | Rust vs Go vs C# в 2026: почему наивный Rust проиграл Go
Сравнение производительности Rust, Go и C# в 2026 году: наш тест на аллокациях, где наивный Rust уступил Go, а Rust с ареной оказался в 7 раз быстрее, плюс разбор GC, памяти, холодного старта, Green Tea и .NET 10
Спор «что быстрее: Rust, Go или C#» обычно заканчивается ссылкой на чей-то бенчмарк, где один язык обгоняет другой в полтора раза. Мы решили проверить простую вещь и сразу получили результат, который ломает привычную картину: наивный код на Rust проиграл Go по времени выполнения. Ниже разбираем, почему так вышло, что на самом деле означает «производительность» в 2026 году и как выбирать язык под конкретную нагрузку.
https://uproger.com/rust-vs-go-vs-csharp-proizvoditelnost-2026/ | 1 338 |
| 12 | Наследование в чистом C: одно правило, и всё работает
В C нет классов, но наследование можно собрать вручную. Правило одно: родительская структура должна стоять первым полем дочерней.
struct Animal { int age; char name[32]; };
struct Dog {
struct Animal base; // обязательно первым
char breed[32];
};
struct Dog d = { {3, "Rex"}, "Labrador" };
print_animal((struct Animal *)&d); // работает
Почему это законно: стандарт C гарантирует, что в начале структуры нет паддинга, а указатель на структуру, приведённый к нужному типу, указывает на её первое поле. Поэтому &d и &d.base это один и тот же адрес, и функция, которая ждёт Animal*, спокойно работает с Dog.
Это не трюк из головоломок, а основа реальных систем. Так устроены объекты в CPython, где каждая структура начинается с PyObject_HEAD, так же работают GObject в GTK и многие структуры ядра Linux. Если родитель лежит не первым полем, ядро достаёт его через макрос container_of.
Есть важная оговорка: обратное приведение Animal* в Dog* корректно, только если объект действительно Dog. Компилятор этого не проверит, и ошибка здесь превращается в тихое повреждение памяти. | 1 153 |
| 13 | 🦈 Открытое собеседование на Middle C# | 6 октября, 19:00 МСК
Приглашаем на открытое собеседование: Senior C# разработчик проведёт его в прямом эфире. Можно посмотреть, как всё устроено изнутри, и понять, насколько ты готов к такому интервью.
Как это будет:
📂 Собеседует Александр Моргунов — Senior C# разработчик, 7+ лет в европейских высоконагруженных сервисах. Отвечает разработчик-доброволец;
📂 Всё как на настоящем собесе: Александр задаёт те вопросы и задачи, которые даёт кандидатам на своих интервью. Заранее их никто не знает;
📂 После каждого ответа Александр даст обратную связь: что прозвучало сильно, а что стоило раскрыть иначе. Так станет понятнее, на что обращают внимание на собесе;
📂 В конце можно задать любой вопрос.
Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для C# разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.
Переходи в нашего бота, чтобы получить ссылку на эфир -> @shortcut_csharp_bot
Реклама.
О рекламодателе. | 818 |
| 14 | UTF-8-декодер на C: таблица и несколько строк кода
Бьёрн Хёрманн реализовал декодирование UTF-8 через конечный автомат (DFA). Он обрабатывает байты по одному, собирает кодовую точку Unicode и проверяет корректность последовательности.
Таблица utf8d выполняет две задачи:
* определяет класс очередного байта;
* выбирает следующее состояние автомата.
`ACCEPT` означает, что кодовая точка полностью прочитана. `REJECT` - обнаружена ошибка. Остальные состояния означают, что нужны дополнительные байты.
Подход удобен для потоковой обработки: если символ разорван между двумя сетевыми пакетами, достаточно сохранить состояние и накопленное значение.
Нюанс: после последнего байта тоже нужно проверить состояние. Если оно не ACCEPT, строка некорректна - например, оборвалась посреди символа. | 1 059 |
| 15 | Участвуй во всероссийском ИТ-чемпионате МТС True Tech Champ 2026 c призовой фондом 10 250 000 рублей.
Если тебе нравятся алгоритмы, структуры данных и задачи на чистую логику — участвуй в алгоритмическом треке с индивидуальным зачетом.
Решай задачи разного уровня сложности: от базовых до тех, что проверяют скорость мышления и умение оптимизировать решения за ограниченное время.
В финале лучшие 120 участников алгоритмического трека сразятся в лайв-кодинге за шесть призовых мест и 2 750 000 рублей. Всех финалистов ждут:
— Лимитированный мерч;
— Сертификаты об участии;
— Масштабное мероприятие с выступлениями хэдлайнеров и фестивальными активностями.
Успей зарегистрироваться и пройти отборочный этап до 27 сентября | 1 175 |
| 16 | 🔍Тестовое собеседование с Senior C# разработчиком уже завтра
15 сентября(уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle C# разработчика.
Как это будет:
📂 Александр Моргунов, старший C# разработчик с опытом 7+ лет в Европейских высоконагруженных сервисах, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Александр будет комментировать каждый ответ респондента, чтобы дать понять, чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Александру
Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для C# разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.
Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_csharp_bot
Реклама.
О рекламодателе. | 550 |
| 17 | 💡 C++: std::map<std::string, ...> не обязан создавать временный std::string при каждом поиске
Если ключ уже приходит как std::string_view, можно использовать transparent comparator:
std::map<std::string, int, std::less<>> status_codes{
{"not_found", 404},
{"timeout", 504}
};
std::string_view key = "timeout";
auto match = status_codes.find(key); | 1 099 |
| 18 | 🔥 Хочешь расти в IT быстрее остальных? Перестань учиться в одиночку
Можно годами смотреть курсы, читать документацию и всё равно топтаться на месте.
А можно попасть в правильное окружение, где каждый день обсуждают новые инструменты, вакансии, реальные кейсы, ошибки и то, что уже завтра станет стандартом.
Здесь собраны папки и каналы по разным направлениям IT, чтобы ты быстрее находил нужных людей, идеи и полезный контент - без бесконечного поиска.
AI: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Хакинг: t.me/linuxkalii
DevOps: t.me/DevOPSitsec
Docker: https://t.me/+90Z5TAyfuNU5YmRi
Golang: t.me/Golang_google
Rust: t.me/rust_code
C++: t.me/cpluspluc
C#: t.me/csharp_ci
Java: t.me/javatg
JavaScript: t.me/javascriptv
React: t.me/react_tg
Frontend: t.me/front
PHP: t.me/phpshka
Android: t.me/android_its
Мобильная разработка: t.me/mobdevelop
Базы данных: t.me/sqlhub
Data Science: t.me/data_analysis_ml
Big Data: t.me/bigdatai
Математика: t.me/data_math
Физика: t.me/fizmat
Kubernetes: t.me/kubernetc
GameDev: https://t.me/gamedev
Haskell: t.me/haskell_tg
Собеседования и карьера:
DS собеседования: t.me/machinelearning_interview
Python собеседования: t.me/python_job_interview
Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: https://t.me/addlist/2Ls-snqEeytkMDgy
Папка Frontend: https://t.me/addlist/mzMMG3RPZhY2M2Iy
Полезное сверху:
ИТ-мемы: t.me/memes_prog
Английский для программистов: t.me/english_forprogrammers
ИИ и технологии: t.me/vistehno
954 ГБ open-source курсов: https://t.me/+rKBQEMccAA01MTcy
ИТ-книги бесплатно: https://t.me/addlist/BkskQciUW_FhNjEy
Max Ai: https://max.ru/ai_machinelearning_big_data
Max python: https://max.ru/pythonl
ТЕХНО: https://max.ru/vistehno
Max Go: https://max.ru/Golang_google
Max Linux: https://max.ru/linuxkalii
Devops: https://max.ru/DevOPSitsec
C#: https://max.ru/csharp_ci
C++: https://max.ru/cpluspluc
SQL: https://max.ru/sqlhub
Java: https://max.ru/javatg
Подпишись и сохрани, здесь регулярно появляются новые подборки, инструменты и материалы, которые реально помогают расти быстрее. | 858 |
| 19 | 🖥 C++: объект уничтожен, а 16 МиБ всё ещё заняты
std::weak_ptr может удерживать память даже при expired() == true.
Причина в std::make_shared: обычно он размещает объект и управляющий блок в одной аллокации.
В примере на скриншоте массив на 16 МиБ находится прямо внутри Blob. После удаления последнего shared_ptr:
* деструктор объекта вызывается;
* expired() возвращает true;
* общий блок памяти остаётся выделенным, пока существует хотя бы один weak_ptr.
После сброса последней слабой ссылки блок можно освободить.
Что делать: удалять протухшие ссылки из долгоживущих кешей. Для крупных объектов также можно рассмотреть отдельную аллокацию через std::shared_ptr<Blob>(new Blob()).
Нюанс касается размера самого объекта. Если данные хранятся в обычном std::vector, его отдельный буфер освобождается при вызове деструктора.
[Разбор от Microsoft](https://devblogs.microsoft.com/oldnewthing/20230815-00/?p=108602) | 951 |
| 20 | C++26 получил новый контейнер `std::hive` - что-то между `std::vector` и `std::list`.
Главная фишка: элементы после вставки практически не двигаются в памяти. Поэтому указатели и итераторы на существующие объекты остаются валидными даже после вставок и удаления других элементов.
Как это работает:
- данные хранятся не в одном массиве, а в нескольких блоках
- удалённые элементы не сдвигают остальные
- свободные места потом переиспользуются
- специальный skipfield позволяет быстро пропускать удалённые слоты
В результате:
- вставка и удаление - амортизированно O(1)
- указатели остаются стабильными
- локальность памяти заметно лучше, чем у std::list
- но случайного доступа через [] нет
- порядок вставки не гарантируется
-
Особенно полезно для игровых движков, пулов соединений, систем частиц и других случаев, где объекты постоянно создаются и удаляются, а другие части программы хранят указатели на них.
Коротко: std::hive - не более быстрый vector, а скорее гораздо более cache-friendly альтернатива list.
https://sandordargo.com/blog/2026/09/02/cpp26-hive | 1 154 |
