ch
Feedback
Senior C++ Developer

Senior C++ Developer

前往频道在 Telegram

Изучаем C++. По вопросам сотрудничества: @adv_and_pr РКН: https://www.gosuslugi.ru/snet/676e9a1e4e740947beca35ba

显示更多

📈 Telegram 频道 Senior C++ Developer 的分析概览

频道 Senior C++ Developer (@seniorcpp) 俄语 语言赛道中的 是活跃参与者。目前社区聚集了 11 846 名订阅者,在 技术与应用 类别中位列第 10 582,并在 俄罗斯 地区排名第 55 674

📊 受众指标与增长动态

невідомо 创建以来,项目保持高速增长,吸引了 11 846 名订阅者。

根据 10 六月, 2026 的最新数据,频道保持稳定运转。过去 30 天订阅人数变化为 -76,过去 24 小时变化为 0,整体触达仍然可观。

  • 认证状态: 未认证
  • 互动率 (ER): 平均受众互动率为 12.88%。内容发布后 24 小时内通常能获得 4.87% 的反应,占订阅者总量。
  • 帖子覆盖: 每篇帖子平均可获得 1 526 次浏览,首日通常累积 577 次浏览。
  • 互动与反馈: 受众积极参与,单帖平均反应数为 0
  • 主题关注点: 内容集中在 c++, контейнер, диапазон, git, true 等核心主题上。

📝 描述与内容策略

作者将该频道定位为表达主观观点的平台:
Изучаем C++. По вопросам сотрудничества: @adv_and_pr РКН: https://www.gosuslugi.ru/snet/676e9a1e4e740947beca35ba

凭借高频更新(最新数据采集于 11 六月, 2026),频道始终保持新鲜度与高覆盖。分析显示受众积极互动,使其成为 技术与应用 类别中的关键影响点。

11 846
订阅者
无数据24 小时
-167
-7630
帖子存档
Видеоуроки по созданию игры на C++ Серия видео, в которой автор по шагам рассказывает, как написать свою игру на C++. Смотреть статью

#вопросы_с_собеседований Что выведет код сверху? Ответ: 10 99 40 99 В этой программе мы меняем местами определенные значения
#вопросы_с_собеседований Что выведет код сверху? Ответ: 10 99 40 99 В этой программе мы меняем местами определенные значения в двух векторах с помощью iter_swap.

🏆 Пройди тест на знание алгоритмов и структур данных и получи доступ к записям всех открытых (бонусных) уроков (41 видео) из
🏆 Пройди тест на знание алгоритмов и структур данных и получи доступ к записям всех открытых (бонусных) уроков (41 видео) из курса «Алгоритмы и структуры данных» от OTUS. Некоторые темы — просто 🔥 огонь! Например: - Трилогия «Создание словаря: 7 способов» - Дилогия «Визуальное сравнение пяти алгоритмов сортировок: Пузырьком, Вставкой, Шелла, Выбором и Пирамидальной» и многое другое ➡️ НАЧАТЬ ТЕСТИРОВАНИЕ Прямо сейчас переходи на сайт, чтобы посмотреть два последних открытых урока‼️без регистрации и оценить формат обучения. 📊 «Алгоритмы и структуры данных» — это большой курс для разработчиков, которые хотят улучшить качество своего кода и развивать карьеру. 📚 Для кого этот курс? - Для бэкенд- и фронтенд-разработчиков. - Для junior-программистов. 📅 Старт группы уже 31 июля 2024г. Доступна рассрочка на обучение. ⏰ Успейте записаться в группу по скидке 🎁15% до 28.07 включительно. Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Узнаем размер файла с помощью C++ В этом примере мы открываем файл example.txt с помощью ifstream, перемещаем указатель на ко
Узнаем размер файла с помощью C++ В этом примере мы открываем файл example.txt с помощью ifstream, перемещаем указатель на конец файла с помощью функции seekg, а затем получаем текущую позицию (размер файла) с помощью функции tellg. Результат выводится на экран.

Промпт-инженеринг — новый хайп или перспективная профессия? Рассказываем про направление с большим потенциалом и маленькой ко
Промпт-инженеринг — новый хайп или перспективная профессия? Рассказываем про направление с большим потенциалом и маленькой конкуренцией на рынке на нашей бесплатной лекции. По итогам эфира вы узнаете: — Кто такой промт-инженер и чем он занимается; — Как интегрировать скиллы промт-инжинеринга в работу, если вы работаете в IT; — Кому в действительности нужны его услуги и какие результаты это даст; — Сколько платят промт-инженеру в России и мире; — Кто может стать промт-инженером и какой порог входа; Кликай на ссылку и забирай подробную информацию вместе с классными бонусами. erid: LjN8KaG2R ООО Зерокодер, ИНН 9715401631

Интервью на C ++ с инженером Google: Closest Coin (с русскими субтитрами) Смотреть видео

Офер в Яндекс для опытных бэкендеров за два дня 24–25 августа приглашаем бэкендеров с опытом работы от пяти лет получить офер
Офер в Яндекс для опытных бэкендеров за два дня 24–25 августа приглашаем бэкендеров с опытом работы от пяти лет получить офер в Яндекс через multitrack за 2 дня. Достаточно решить задачи онлайн до 20 августа и пройти несколько технических секции 24 августа, чтобы уже 25-го получить офер и выбрать три команды, к которым вам было бы интересно присоединиться. Как правило, за несколько собеседований сложно понять, подходит ли вам команда и наоборот. Multitrack позволит вам поработать в трёх разных командах Яндекса и выбрать подходящую. Вы сможете погрузиться в рабочие процессы, познакомиться с будущими коллегами и понять, с какими задачами и технологиями хотите работать. Узнать подробности и зарегистрироваться.

Алгоритм random_shuffle Он случайным образом переставляет элементы в диапазоне [первый, последний). Алгоритм меняет значение
Алгоритм random_shuffle Он случайным образом переставляет элементы в диапазоне [первый, последний). Алгоритм меняет значение каждого элемента на какой-либо другой случайно выбранный элемент. Про различия между shuffle и random_shuffle можно почитать здесь.

seniorcpp 25.07 Открытый урок. Аллокаторы в C++: Что делать, если менеджер памяти вас разочаровывает? 🤔 C++ известен тем, чт
seniorcpp 25.07 Открытый урок. Аллокаторы в C++: Что делать, если менеджер памяти вас разочаровывает? 🤔 C++ известен тем, что позволяет работать с памятью напрямую. Здесь вы точно знаете, где и как расположен каждый из ваших объектов, сколько памяти он занимает. Но можете ли вы принимать решение, где и как будет размещен ваш объект? Часто стандартные методы выделения памяти не удовлетворяют узким требованиям конкретной логики. ⚡️Присоединяйтесь к открытому вебинару 8 августа в 20:00 мск! Поговорим, зачем в C++ существуют аллокаторы. ✅Обсудим, что C++ приобрел при введении полиморфных аллокаторов. И рассмотрим конкретный пример увеличения производительности программы с их помощью. ➡️ Зарегистрируйтесь сейчас, чтобы не пропустить бесплатный урок: https://vk.cc/cyEjkw Встречаемся в преддверии старта курса C++ Developer. Professional. До 31.07 на курс действует скидка 10%. 🔥

Функция div() Функция div() вычисляет величину numerator/denominator и возвращает частное и остаток в структуре div_t, котора
Функция div() Функция div() вычисляет величину numerator/denominator и возвращает частное и остаток в структуре div_t, которая содержит два целочисленных поля (в неопределённом порядке) quot и rem. Частное округляется до ближайшего нуля. Результат равняется quot*denominator+rem = numerator. Функции ldiv(), lldiv() и imaxdiv() выполняют эту же функцию, деля числа соответствующего типа и возвращая результат в структуре с соответствующим именем, всегда с полями quot и rem того же типа, что и аргументы функции. #для_начинающих

Функция ptsname() Функция ptsname() возвращает имя подчиненного псевдотерминального устройства, соответствующего главному уст
Функция ptsname() Функция ptsname() возвращает имя подчиненного псевдотерминального устройства, соответствующего главному устройству, на которое ссылается файловый дескриптор fd. Функция ptsname_r() является реентерабельным эквивалентном ptsname(). Она сохраняет имя устройства подчинённого псевдо-терминала в виде строки (завершающейся null) в буфер, указанный в buf. В аргументе buflen задаётся количество байт, доступных в buf. #для_начинающих

Библиотека Библиотека используется для работы с псевдотерминалами (PTY — Pseudo Terminal). Псевдотерминалы предоставляют сред
Библиотека <pty.h> Библиотека <pty.h> используется для работы с псевдотерминалами (PTY — Pseudo Terminal). Псевдотерминалы предоставляют средство для создания пары устройств, одно из которых может использоваться как мастер (master), а другое как рабочее (slave). Процессы могут обмениваться данными между этими устройствами, эмулируя терминальные взаимодействия. #для_начинающих

👍Пройдите тест по IoT👍 📌Пройдите тест из 10 вопросов и проверьте, насколько вы готовы к обучению на углубленном курсе «IoT
👍Пройдите тест по IoT👍 📌Пройдите тест из 10 вопросов и проверьте, насколько вы готовы к обучению на углубленном курсе «IoT Developer» от OTUS. Сможете сдать - пройдете на курс со скидкой! ⏰ Время прохождения теста ограничено 10 минут 👉ПРОЙТИ ТЕСТ Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

#вопросы_с_собеседований Как подсчитать количество элементов в std::list? Чтобы подсчитать количество элементов в std::list, можно использовать следующие способы: 1. Вызвать метод size() самого списка. Он вернет количество элементов. 2. Проитерировать список циклом и считать элементы. 3. Воспользоваться алгоритмом std::distance, передав ему начало и конец списка. 4. Применить алгоритм std::count_if с условием, которое всегда истинно.

Про логирование и как его ускорить Как-то раз я ускорял логгер через io_uring, т.к. скорость логгера не позволяла совмещать активную торговлю и достаточное количество информации для расследования случившихся инцидентов. Поэтому расскажу что понял на эту тему. Простое логирование состоит из 2х частей: форматирование и вывод. Различные throttle'ры, примочки, фильтры, окрашиватели рассматривать не будем. Форматирование: 1) std::stringstream - не стоит, не надо: это медленно. 2) std::snprintf - не стоит, не надо: медленно, не современно. 3) std::format, поддерживается только с C++20. Я его не смотрел, но подозреваю, что в текущем виде libfmt будет быстрее. 4) libfmt - базовый выбор, достаточно быстрый. Для самых критических областей добавляем FMT_COMPILE, но не повсюду. 5) Не форматировать вообще. Можно складывать бинарные данные в файл (подход Binlog), либо отправлять куда-то (но это получается уже телеметрия). Но тогда файл требует декодирования отдельной тулзой. Но это можно автоматизировать. 6) Выносить форматирование в отдельный поток. Интересный подход из Quill. Они encode'ят аргументы в буфер, и предполагается, что это быстрее, чем отформатировать. Попробую эту либу, и позже поделюсь впечатлениями. 7) Еще крайне желательно не вычислять формат аргументы, если текущий verbosity все равно не выведет эту строку. Это приводит нас к тому, что нам подходят только макросы в том месте, где юзеры вызывают логирование. Какие есть варианты по выводу сформированной строки на file storage: 1) Вывод в файл через: - std::ofstream::operator << и flush - fwrite + fflush (glibc) - один write syscall Выдают примерно одинаковые величины задержек. По логике можно представить, что дёрнуть просто syscall дешевле, но по факту разницу сложно увидеть. В первых двух вариантах можно не делать flush на каждую строку, это сильно быстрее (т.к. данные буферятся в юзерспейсе), но тогда: - Если долго нет новой строчки, то последнюю можно долго не видеть в логе. Но можно дополнительно flush'ить по таймеру. - Что-то потеряется при креше, т.к. останется в памяти процесса. Однако это можно достать из кордампа gdb-скриптюней (такое не писал, но выглядит осуществимым). Проблемы: средняя скорость min/avg: до 1 микроса, но периодически write может сделать серьезный пик, уходя в запись на устройство на 1-5мс (это на nvme). Можно попробовать понастраивать механизм сбрасывания dirty pages (см. sysctl -a | grep vm.dirty_). 2) Передаём задачу записи в отдельный поток. Так делает, например, Quill. Это очень быстро (скорость: от сотни наносекунд, если используете простую очередь, mutex и cv, и несколько наносекунд, если пишете в ring buffer (если не боитесь переполнения и нет параллельных вызовов)), но имеет свои недостатки: - Этому отдельному потоку тоже нужно какое-то (неторговое) ядро. - При креше вы можете потерять несколько последних строк (а именно они обычно нужны при креше). Снова можно пробовать выковыривать из крешдампа, но это неудобно. Скорее всего, можно дождаться дозаписи в крэшхэндлере. 3) Запись в ядре через io_uring: выглядит интересно, но имеет свои сложности: код надо очень аккуратно писать, понимать как настраивать kworker'ы (куда их пиннить, какие там размеры буферов и т.п.). Подходит для kernel'ов старше 5.1. В случае креша без специальных приседаний ядро не дозапишет строки. Я эту штуку использовал, и было интересно познакомиться с механизмом. Ждал дозаписи строк в крэш-хэндлере. 4) Запись в отдельном своём сервисе. Как ему максимально быстро передать строку - отдельный непростой вопрос, который может сильно всё усложнить. Сервисом тоже нужно управлять, деплоить, он тоже может упасть. 5) Вариант предыдущего пункта: выводить в stdout и писать в файловую систему через стандартный сервис (journald, dockerd). Тоже один syscall, поэтому по скорости как запись в файл, но без пиков в несколько миллисов. Довольно быстро, стандартно. Легко поддержать ротацию. Если процесс крашнется сразу после лог строчки, то демон всё дозапишет. Дополняйте, если что, или поправьте.

Александр пишет про C++ разработку, concurrency, low-latency алгоритмы, high frequency trading, tips & tricks по утилитам для разработчиков, и проводит бесплатные практические воркшопы. Стоит почитать.

spaceship operator Spaceship operator (&lt;=&gt;) — это оператор сравнения, введенный в C++20. Преимущества spaceship operato
spaceship operator Spaceship operator (<=>) — это оператор сравнения, введенный в C++20. Преимущества spaceship operator: — Позволяет создавать типы, которые можно сравнивать с помощью одного оператора вместо нескольких (==, !=, <, > и т. д.). — Упрощает написание функций сравнения, например std::sort. — Читабельнее и компактнее кода с традиционными операторами сравнения.

#вопросы_с_собеседований Что случится, если вернуть ссылку на временный объект? Если вернуть ссылку на временный объект, созданный в стеке, то это приведет к неопределенному поведению программы. После выхода из функции память, выделенная под временный объект, освобождается. И если где-то сохранилась ссылка на этот объект, то при попытке обратиться к нему произойдет ошибка.

@seniorcpp 22.07 🦾Хардкорный тест по языку С🦾 📌Пройдите тест из 20 вопросов и проверьте, насколько вы готовы к обучению на
@seniorcpp 22.07 🦾Хардкорный тест по языку С🦾 📌Пройдите тест из 20 вопросов и проверьте, насколько вы готовы к обучению на углубленном курсе «Программист С» от OTUS. Сможете сдать - пройдете на курс по спеццене! ⏰ Время прохождения теста ограничено 30 минут 👉ПРОЙТИ ТЕСТ Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

«Код-ревью — это когда твои комментарии в интернете действительно читают»: дискуссия с разработчиками на C++ Смотреть статью