Инженеры Яндекс 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
🧩 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
Яндекс 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
Когда работаешь с большим количеством данных, становится понятно, насколько важна продуманная инфраструктура. На митапе Максим Бабенко, руководитель разработки YTsaurus и преподаватель ШАДа и ВШЭ, рассказал о том, как платформа помогает решать такие задачи.
Команда проделала большую работу, чтобы YTsaurus можно было использовать как инфраструктуру для запуска GPU-вычислений. За последний год:
- добавили поддержку GPU в k8s, доработали планировщик и сделали API для распределённого чтения и записи датасетов
- добавили row-level security, constraints
- продолжили развивать инструменты мониторинга и сервисы для администрирования
Команда проделала большую работу, чтобы YTsaurus можно было использовать как инфраструктуру для запуска GPU-вычислений. За последний год:
- добавили поддержку GPU в k8s, доработали планировщик и сделали API для распределённого чтения и записи датасетов
- добавили row-level security, constraints
- продолжили развивать инструменты мониторинга и сервисы для администрирования
ytsaurus.tech
YTsaurus Блог
YTsaurus — платформа с открытым исходным кодом, способная хранить и обрабатывать большие данные для десятков тысяч пользователей одновременно. Выполняйте задачи по Batch-обработке, Ad hoc аналитике, OLTP, машинному обучению, построению хранилищ данных и ETL!
👍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
Tachyon обеспечивает рекордно низкую задержку (56.5 нс) для межъязыкового взаимодействия между 7 языками, включая Python, Java и Rust. Он использует нулевую копию для передачи данных, что делает его идеальным для приложений, требующих высокой производительности, таких как ML и обработка медиа.
🚀 Основные моменты:
- Поддержка 7 языков: Python, Node.js, Java, Kotlin, Rust, Go, C++.
- Нулевая копия данных для повышения скорости.
- Простота использования: всего одна зависимость — ваш ядро.
- Идеален для ML и торговых приложений.
📌 GitHub: https://github.com/riyaneel/Tachyon
GitHub
GitHub - riyaneel/Tachyon: Tachyon, IPC/RPC primitive.
Tachyon, IPC/RPC primitive. Contribute to riyaneel/Tachyon development by creating an account on GitHub.
❤4👍2
🎨✨ FusionUI: современная библиотека UI на C++23
FusionUI — это библиотека для создания интерфейсов с декларативными виджетами и безопасной системой стилей. Она поддерживает анимации, переходы и различные платформенные бэкенды, обеспечивая гибкость и простоту в использовании.
🚀Основные моменты:
- Декларативные виджеты с типобезопасными стилями
- Поддержка анимаций и переходов
- Отсутствие глобального состояния для изоляции приложений
- Легкая интеграция с Vulkan и SDL3
- Кроссплатформенная: Windows, macOS, Linux
📌 GitHub: https://github.com/neilmewada/FusionUI
#cpp
FusionUI — это библиотека для создания интерфейсов с декларативными виджетами и безопасной системой стилей. Она поддерживает анимации, переходы и различные платформенные бэкенды, обеспечивая гибкость и простоту в использовании.
🚀Основные моменты:
- Декларативные виджеты с типобезопасными стилями
- Поддержка анимаций и переходов
- Отсутствие глобального состояния для изоляции приложений
- Легкая интеграция с Vulkan и SDL3
- Кроссплатформенная: Windows, macOS, Linux
📌 GitHub: https://github.com/neilmewada/FusionUI
#cpp
👍16❤2🔥2😁1
⚙️ clap: современный парсер аргументов командной строки для C++26
clap предлагает удобный способ парсинга аргументов командной строки с использованием рефлексии. Он поддерживает различные типы аргументов, включая обязательные и необязательные, а также предоставляет возможность задавать значения по умолчанию и использовать переменные окружения.
🚀Основные моменты:
- Поддержка значений по умолчанию и необязательных аргументов
- Краткие аргументы и комбинированные флаги
- Аннотации для описаний полей
- Автоматическое преобразование имен в kebab-case
- Простота использования с рефлексией
📌 GitHub: https://github.com/nathan-baggs/clap
#cpp
clap предлагает удобный способ парсинга аргументов командной строки с использованием рефлексии. Он поддерживает различные типы аргументов, включая обязательные и необязательные, а также предоставляет возможность задавать значения по умолчанию и использовать переменные окружения.
🚀Основные моменты:
- Поддержка значений по умолчанию и необязательных аргументов
- Краткие аргументы и комбинированные флаги
- Аннотации для описаний полей
- Автоматическое преобразование имен в kebab-case
- Простота использования с рефлексией
📌 GitHub: https://github.com/nathan-baggs/clap
#cpp
🔥8👍2❤1
🚁Высокопроизводительная библиотека 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
H.A.L.O. Aegis Omniverse - это библиотека на C++20, предназначенная для навигации и защиты автономных спасательных дронов в сложных условиях. Она сочетает в себе передовые методы поиска пути и тактическое избегание препятствий с реакцией менее чем за наносекунду.
🚀 Основные моменты:
- Высокая производительность с использованием JPS+ для навигации.
- 10-слойная система защиты для мгновенного реагирования.
- Оптимизация под ARM NEON и SSE4 для максимальной скорости.
- Открытый исходный код для гуманитарных миссий.
📌 GitHub: https://github.com/Nguyenidkskibidi/halo-aegis-core
#cpp
🔥9👍5🤔4❤1
Самый знаменитый комментарий в истории C.
Его оставил разработчик id Software в 1999 году в коде Quake III Arena.
Одна строка с приведением указателя, один битовый сдвиг, одно вычитание - и на выходе получается приближение к 1/√x.
Просто битовые трюки, магическая константа и финальный шаг уточнения методом Ньютона.
А комментарий в коде был максимально честный:
what the f***?
Его оставил разработчик id Software в 1999 году в коде Quake III Arena.
Одна строка с приведением указателя, один битовый сдвиг, одно вычитание - и на выходе получается приближение к 1/√x.
Просто битовые трюки, магическая константа и финальный шаг уточнения методом Ньютона.
А комментарий в коде был максимально честный:
what the f***?
🔥37👍8❤3👀1
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
В 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