C++ Academy
15.7K subscribers
799 photos
142 videos
1 file
738 links
По всем вопросам- @workakkk

РКН: clck.ru/3FmxJF

#VRHSZ
Download Telegram
❤️ Backend Talks от Яндекс 360 — конференция о разработке, технологиях и будущем

Инженеры Яндекс 360 каждый день строят высоконагруженные отказоустойчивые и масштабируемые системы, которые выдерживают больше 1 000 000 RPS: Диск, Телемост, Почту и другие цифровые сервисы.


16 мая они собирают единомышленников — опытных специалистов, для которых работа с высокими нагрузками давно стала повседневной практикой. Будет живая среда для обмена опытом — с обсуждениями, спорами, настолками и разговорами о рабочих задачах.

Главный упор — на практику. Спикеры разберут реальные рабочие кейсы. Параллельно будут работать зоны открытого общения — можно в любой момент присоединиться к дискуссиям и провести время с пользой.

🚀 Подробнее о программе — в карточках и на сайте мероприятия
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍2🔥1
🤣33👍8🥰1😱1🫡1
🧩 userver 3.0 — крупное обновление C++ фреймворка от Яндекса для highload-сервисов

Яндекс Go выпустил новую версию open source-фреймворка userver, который используется для разработки высоконагруженных и отказоустойчивых систем промышленного масштаба. В релиз вошло более 2500 улучшений.

🚀 Основные моменты:
- Chaotic — генерация boilerplate-кода по схемам данных
- userver easy — быстрый старт микросервисов с возможностью дальнейшего масштабирования
- Снижение потребления RAM и CPU в production-сценариях
- Асинхронная архитектура для высоконагруженных сервисов
- Используется в реальных сервисах Яндекса: Go, Еда, Лавка и других
- Open source и доступен сообществу на GitHub

📌 GitHub https://github.com/userver-framework

#cpp
12🔥8👍3
12😁5👍3
Когда работаешь с большим количеством данных, становится понятно, насколько важна продуманная инфраструктура. На митапе Максим Бабенко, руководитель разработки YTsaurus и преподаватель ШАДа и ВШЭ, рассказал о том, как платформа помогает решать такие задачи.

Команда проделала большую работу, чтобы YTsaurus можно было использовать как инфраструктуру для запуска GPU-вычислений. За последний год:

- добавили поддержку GPU в k8s, доработали планировщик и сделали API для распределённого чтения и записи датасетов
- добавили row-level security, constraints
- продолжили развивать инструменты мониторинга и сервисы для администрирования
👍3🥰2👌1
🚀 Высокоскоростная межъязыковая IPC библиотека Tachyon

Tachyon обеспечивает рекордно низкую задержку (56.5 нс) для межъязыкового взаимодействия между 7 языками, включая Python, Java и Rust. Он использует нулевую копию для передачи данных, что делает его идеальным для приложений, требующих высокой производительности, таких как ML и обработка медиа.

🚀 Основные моменты:
- Поддержка 7 языков: Python, Node.js, Java, Kotlin, Rust, Go, C++.
- Нулевая копия данных для повышения скорости.
- Простота использования: всего одна зависимость — ваш ядро.
- Идеален для ML и торговых приложений.

📌 GitHub: https://github.com/riyaneel/Tachyon
4👍2
🎨 FusionUI: современная библиотека UI на C++23

FusionUI — это библиотека для создания интерфейсов с декларативными виджетами и безопасной системой стилей. Она поддерживает анимации, переходы и различные платформенные бэкенды, обеспечивая гибкость и простоту в использовании.

🚀Основные моменты:
- Декларативные виджеты с типобезопасными стилями
- Поддержка анимаций и переходов
- Отсутствие глобального состояния для изоляции приложений
- Легкая интеграция с Vulkan и SDL3
- Кроссплатформенная: Windows, macOS, Linux

📌 GitHub: https://github.com/neilmewada/FusionUI

#cpp
👍162🔥2😁1
⚙️ clap: современный парсер аргументов командной строки для C++26

clap предлагает удобный способ парсинга аргументов командной строки с использованием рефлексии. Он поддерживает различные типы аргументов, включая обязательные и необязательные, а также предоставляет возможность задавать значения по умолчанию и использовать переменные окружения.

🚀Основные моменты:
- Поддержка значений по умолчанию и необязательных аргументов
- Краткие аргументы и комбинированные флаги
- Аннотации для описаний полей
- Автоматическое преобразование имен в kebab-case
- Простота использования с рефлексией

📌 GitHub: https://github.com/nathan-baggs/clap

#cpp
🔥8👍21
🚁Высокопроизводительная библиотека H.A.L.O. для автономных дронов

H.A.L.O. Aegis Omniverse - это библиотека на C++20, предназначенная для навигации и защиты автономных спасательных дронов в сложных условиях. Она сочетает в себе передовые методы поиска пути и тактическое избегание препятствий с реакцией менее чем за наносекунду.

🚀 Основные моменты:
- Высокая производительность с использованием JPS+ для навигации.
- 10-слойная система защиты для мгновенного реагирования.
- Оптимизация под ARM NEON и SSE4 для максимальной скорости.
- Открытый исходный код для гуманитарных миссий.

📌 GitHub: https://github.com/Nguyenidkskibidi/halo-aegis-core

#cpp
🔥9👍5🤔41
Самый знаменитый комментарий в истории C.

Его оставил разработчик id Software в 1999 году в коде Quake III Arena.

Одна строка с приведением указателя, один битовый сдвиг, одно вычитание - и на выходе получается приближение к 1/√x.

Просто битовые трюки, магическая константа и финальный шаг уточнения методом Ньютона.

А комментарий в коде был максимально честный:

what the f***?
🔥37👍83👀1
🖥 Курс «Git Pro: от первого коммита до уровня senior» - на Stepik

project_final_v2_FINAL_truly_final - знакомо?

Значит, пора.

Большинство разработчиков знают 5 команд Git и боятся шестую. Коммитят в main, гуглят «how to undo» и копируют папку «на всякий случай».

Это не работа - это выживание.

После курса вы:
— делаете rebase, не задерживая дыхание;
— разбираете конфликт на 200 файлов по алгоритму;
— возвращаете «потерянные навсегда» коммиты за 30 секунд через reflog;
— пишете историю, которую не стыдно показать на code review.
Git Flow, trunk-based, Pull Request, защита веток, CI/CD-хуки — всё, что отличает джуна от senior в командной работе.

Скидка 53%, 48 часов: https://stepik.org/course/284799/
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍3🔥2
Сломал систему
🔥28😁124👍2
✔️ Одно слово в C, которое может ускорить ваш цикл

В C есть ключевое слово restrict.

Оно говорит компилятору простую, но очень важную вещь:

«Эти указатели не пересекаются в памяти».

Без restrict компилятор обязан быть осторожным. Он не знает, могут ли a, b и result указывать на один и тот же участок памяти. Поэтому он не всегда может агрессивно оптимизировать код.

С restrict ситуация меняется:

- компилятор уверен, что указатели не alias друг друга
- цикл можно безопаснее векторизовать
- загрузки и записи можно переупорядочивать
- проще включать SIMD-инструкции
- GCC и Clang получают больше свободы для оптимизаций

Пример:


void add_arrays(int *restrict a,
int *restrict b,
int *restrict result,
int n)
{
for (int i = 0; i < n; i++)
result[i] = a[i] + b[i];
}

Но есть важный момент.

restrict - это обещание программиста компилятору. Если вы соврали и передали пересекающиеся массивы, поведение может стать неопределённым.

Именно поэтому restrict полезен в участках кода, где вы точно контролируете память: численные вычисления, обработка массивов, графика, DSP, low-level performance-код.

Иногда одно слово даёт компилятору больше информации, чем десяток ручных микрооптимизаций.
Please open Telegram to view this post
VIEW IN TELEGRAM
23👍9🔥5