Вкладывай в перспективу - вкладывай в себя!
Пройди тест из 20 вопросов и проверь, насколько хорошо nы знаешь язык C++ и готов освоить QT и ОС Аврора .
Сможешь сдать — пройдёшь на продвинутый онлайн-курс "Разработка прикладного ПО на Qt и ОС Аврора" от OTUS.
🎁 А еще OTUS празднует День Рождения! Дарим вам промокод 7YEARS -15% на оплату любого курса до 07 апреля 2024.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ruPlease open Telegram to view this post
VIEW IN TELEGRAM
🦾 Освойте основы разработки нативных приложений под ОС Аврора 5
🎙 Ждём вас на бесплатном практическом уроке от OTUS, где вы вместе с опытным экспертом:
Встречаемся 17 апреля в 20:00 мск в рамках курса «Разработка прикладного ПО на Qt и ОС Аврора». Доступна рассрочка на обучение!
👉 Пройдите короткий тест прямо сейчас, чтобы посетить бесплатный урок и получить запись: https://clck.ru/39yLXr
🎙 Ждём вас на бесплатном практическом уроке от OTUS, где вы вместе с опытным экспертом:
- познакомитесь с российской мобильной операционной системой Аврора, её устройством и основными характеристиками;
- посмотрите на структуру и конфигурацию нативного приложения для Аврора 5.0;
- обсудите основные этапы его сборки и запуска;
- разберете приложение, отправляющее уведомление в графическую подсистему Lipstick через DBus.
Встречаемся 17 апреля в 20:00 мск в рамках курса «Разработка прикладного ПО на Qt и ОС Аврора». Доступна рассрочка на обучение!
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576Please open Telegram to view this post
VIEW IN TELEGRAM
Libcds
Libcds (Concurrent Data Structures) — это библиотека C++ для безопасных многопоточных структур данных и методов безопасного освобождения памяти. Она практически header-only, то есть все структуры данных определены в заголовочных .h-файлах, а только реализация ядра алгоритмов SMR (Safe Memory Reclamation) вынесена в небольшую динамическую библиотеку.
#для_продвинутых
Libcds (Concurrent Data Structures) — это библиотека C++ для безопасных многопоточных структур данных и методов безопасного освобождения памяти. Она практически header-only, то есть все структуры данных определены в заголовочных .h-файлах, а только реализация ядра алгоритмов SMR (Safe Memory Reclamation) вынесена в небольшую динамическую библиотеку.
#для_продвинутых
Clover
Clover — это инструмент покрытия кода для Java и Groovy, который помогает разработчикам измерить насколько тестами покрыт ваш код, определить какие части кода не тестируются, улучшить качество вашего кода за счет написания тестов для непокрытых частей.
Clover работает путем отслеживания выполнения вашего кода и записи информации о том, какие строки кода были выполнены.
Эта информация используется для создания отчетов, которые показывают вам, насколько хорошо ваш код покрыт тестами.
#для_продвинутых
Clover — это инструмент покрытия кода для Java и Groovy, который помогает разработчикам измерить насколько тестами покрыт ваш код, определить какие части кода не тестируются, улучшить качество вашего кода за счет написания тестов для непокрытых частей.
Clover работает путем отслеживания выполнения вашего кода и записи информации о том, какие строки кода были выполнены.
Эта информация используется для создания отчетов, которые показывают вам, насколько хорошо ваш код покрыт тестами.
#для_продвинутых
SObjectizer
SObjectizer — это небольшой, но мощный фреймворк с открытым исходным кодом, предназначенный для упрощения разработки многопоточных и распределенных приложений на C++.
#для_продвинутых
SObjectizer — это небольшой, но мощный фреймворк с открытым исходным кодом, предназначенный для упрощения разработки многопоточных и распределенных приложений на C++.
#для_продвинутых
Попробуй пройти наш тест по C++ и проверь подходит ли тебе наш курс
Ответишь — пройдешь на продвинутый курс "C++ Developer. Professional" от OTUS по специальной цене + получишь запись мастер-класса от преподавателя курса.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576Please open Telegram to view this post
VIEW IN TELEGRAM
libhv
libhv — это кроссплатформенная сетевая библиотека C/C++ для разработки TCP/UDP/SSL/HTTP/WebSocket/MQTT клиентов и серверов. Она позиционируется как более простая в использовании, чем libevent, libev и asio, при этом предлагая событийный цикл с неблокирующим вводом-выводом и таймером, простой API, поддержка богатого набора протоколов.
#для_продвинутых
libhv — это кроссплатформенная сетевая библиотека C/C++ для разработки TCP/UDP/SSL/HTTP/WebSocket/MQTT клиентов и серверов. Она позиционируется как более простая в использовании, чем libevent, libev и asio, при этом предлагая событийный цикл с неблокирующим вводом-выводом и таймером, простой API, поддержка богатого набора протоколов.
#для_продвинутых
SELA
SELA (Static Error Location Analysis) - это статический анализатор кода C++, который помогает найти потенциальные ошибки и предупреждения еще на этапе компиляции. Он может обнаруживать широкий спектр проблем, включая опечатки, пропущенные символы и другие синтаксические ошибки, которые могут привести к ошибкам компиляции; логические ошибки, такие как деление на ноль, выход за пределы массива и использование неинициализированных переменных; потенциальные проблемы, такие как использование устаревшего кода, утечки памяти и небезопасные операции с памятью.
SELA может быть очень полезным инструментом для C++-разработчиков, помогая им писать более надежный и безопасный код.
#для_продвинутых
SELA (Static Error Location Analysis) - это статический анализатор кода C++, который помогает найти потенциальные ошибки и предупреждения еще на этапе компиляции. Он может обнаруживать широкий спектр проблем, включая опечатки, пропущенные символы и другие синтаксические ошибки, которые могут привести к ошибкам компиляции; логические ошибки, такие как деление на ноль, выход за пределы массива и использование неинициализированных переменных; потенциальные проблемы, такие как использование устаревшего кода, утечки памяти и небезопасные операции с памятью.
SELA может быть очень полезным инструментом для C++-разработчиков, помогая им писать более надежный и безопасный код.
#для_продвинутых
ETL
ETL (Embedded Template Library) — это библиотека шаблонов для C++, предназначенная для использования во встраиваемых системах. В отличие от стандартной библиотеки шаблонов (STL), ETL фокусируется на эффективном использовании ресурсов при работе с ограниченной памятью микроконтроллеров.
#для_продвинутых
ETL (Embedded Template Library) — это библиотека шаблонов для C++, предназначенная для использования во встраиваемых системах. В отличие от стандартной библиотеки шаблонов (STL), ETL фокусируется на эффективном использовании ресурсов при работе с ограниченной памятью микроконтроллеров.
#для_продвинутых
📚Building Low Latency Applications with C++
Sourav Ghosh (2023)
Develop a complete low latency trading ecosystem from scratch using modern C++. C++ is meticulously designed with efficiency, performance, and flexibility as its core objectives. However, real-time low latency applications demand a distinct set of requirements, particularly in terms of performance latencies.
C++ is meticulously designed with efficiency, performance, and flexibility as its core objectives. However, real-time low latency applications demand a distinct set of requirements, particularly in terms of performance latencies.
With this book, you’ll gain insights into the performance requirements for low latency applications and the C++ features critical to achieving the required performance latencies. You’ll also solidify your understanding of the C++ principles and techniques as you build a low latency system in C++ from scratch.
You’ll understand the similarities between such applications, recognize the impact of performance latencies on business, and grasp the reasons behind the extensive efforts invested in minimizing latencies. Using a step-by-step approach, you’ll embark on a low latency app development journey by building an entire electronic trading system, encompassing a matching engine, market data handlers, order gateways, and trading algorithms, all in C++. Additionally, you’ll get to grips with measuring and optimizing the performance of your trading system.
By the end of this book, you’ll have a comprehensive understanding of how to design and build low latency applications in C++ from the ground up, while effectively minimizing performance latencies.
👉 @cplus_be1
Sourav Ghosh (2023)
Develop a complete low latency trading ecosystem from scratch using modern C++. C++ is meticulously designed with efficiency, performance, and flexibility as its core objectives. However, real-time low latency applications demand a distinct set of requirements, particularly in terms of performance latencies.
C++ is meticulously designed with efficiency, performance, and flexibility as its core objectives. However, real-time low latency applications demand a distinct set of requirements, particularly in terms of performance latencies.
With this book, you’ll gain insights into the performance requirements for low latency applications and the C++ features critical to achieving the required performance latencies. You’ll also solidify your understanding of the C++ principles and techniques as you build a low latency system in C++ from scratch.
You’ll understand the similarities between such applications, recognize the impact of performance latencies on business, and grasp the reasons behind the extensive efforts invested in minimizing latencies. Using a step-by-step approach, you’ll embark on a low latency app development journey by building an entire electronic trading system, encompassing a matching engine, market data handlers, order gateways, and trading algorithms, all in C++. Additionally, you’ll get to grips with measuring and optimizing the performance of your trading system.
By the end of this book, you’ll have a comprehensive understanding of how to design and build low latency applications in C++ from the ground up, while effectively minimizing performance latencies.
👉 @cplus_be1
Boost
Boost — это набор библиотек классов, расширяющих функциональность C++. Он предоставляет удобный кроссплатформенный интерфейс для решения различных задач программирования. Boost используется как профессиональными разработчиками, так и начинающими.
#для_продвинутых
Boost — это набор библиотек классов, расширяющих функциональность C++. Он предоставляет удобный кроссплатформенный интерфейс для решения различных задач программирования. Boost используется как профессиональными разработчиками, так и начинающими.
#для_продвинутых
BDE
BDE (Borland Database Engine) — это 32-битный движок баз данных под Microsoft Windows, разработанный компанией Borland. Он используется для доступа к базам данных из различных приложений, таких как Delphi, C++ Builder, IntraBuilder, Paradox for Windows и Visual dBASE for Windows.
BDE обеспечивает единый интерфейс для работы с различными форматами баз данных, включая Paradox, dBASE, InterBase, Microsoft Access и другие. Он также предоставляет ряд функций для управления базами данных, таких как создание и удаление таблиц, индексов, запросов и представлений.
#для_продвинутых
BDE (Borland Database Engine) — это 32-битный движок баз данных под Microsoft Windows, разработанный компанией Borland. Он используется для доступа к базам данных из различных приложений, таких как Delphi, C++ Builder, IntraBuilder, Paradox for Windows и Visual dBASE for Windows.
BDE обеспечивает единый интерфейс для работы с различными форматами баз данных, включая Paradox, dBASE, InterBase, Microsoft Access и другие. Он также предоставляет ряд функций для управления базами данных, таких как создание и удаление таблиц, индексов, запросов и представлений.
#для_продвинутых
👍1
Cinder
Cinder (libCinder) — это бесплатная и open-source библиотека C++ для создания визуального контента и генеративного искусства. Она позиционируется как конкурент Processing, но для C++. Cinder предоставляет широкий набор инструментов для работы с 2D и 3D графикой, аудио, видео, сетями и сенсорным вводом.
#для_продвинутых
Cinder (libCinder) — это бесплатная и open-source библиотека C++ для создания визуального контента и генеративного искусства. Она позиционируется как конкурент Processing, но для C++. Cinder предоставляет широкий набор инструментов для работы с 2D и 3D графикой, аудио, видео, сетями и сенсорным вводом.
#для_продвинутых
Вы все еще пишете многопоточку на C++ с ошибками синхронизации?
https://habr.com/ru/companies/kaspersky/articles/805365/
https://habr.com/ru/companies/kaspersky/articles/805365/
Хабр
Вы все еще пишете многопоточку на C++ с ошибками синхронизации?
Привет, коллеги! В этой статье я покажу свой подход к написанию многопоточного кода, который помогает избежать типовых ошибок, связанных с использованием базовых примитивов синхронизации. Демонстрация...
Loki
Loki — это библиотека для языка программирования C++, написанная Андреем Александреску, автором книги "Современное проектирование на C++: Обобщенное программирование и прикладные шаблоны проектирования". Библиотека основана на шаблонном метапрограммировании и активно использует возможности C++ для обобщенного программирования.
#для_продвинутых
Loki — это библиотека для языка программирования C++, написанная Андреем Александреску, автором книги "Современное проектирование на C++: Обобщенное программирование и прикладные шаблоны проектирования". Библиотека основана на шаблонном метапрограммировании и активно использует возможности C++ для обобщенного программирования.
#для_продвинутых
Удобное управление тестовыми окружениями в docker-compose
Смотреть статью
https://habr.com/ru/articles/809917/?utm_campaign=19924351&utm_source=telegram_flows&utm_medium=social
Смотреть статью
https://habr.com/ru/articles/809917/?utm_campaign=19924351&utm_source=telegram_flows&utm_medium=social
Хабр
Удобное управление тестовыми окружениями в docker-compose
Всем привет, хочу рассказать о своей утилите dcw (Docker Compose Workspace) для удобного управления тестовыми окружениями на базе docker-compose. Расскажу немного о проблеме, которую я попытался...
Дерево отрезков
Смотреть статью
https://habr.com/ru/articles/808511/?utm_campaign=19850188&utm_source=vk_flows&utm_medium=social
Смотреть статью
https://habr.com/ru/articles/808511/?utm_campaign=19850188&utm_source=vk_flows&utm_medium=social
Хабр
Дерево отрезков
Всем привет. В этой статье я расскажу про дерево отрезков. Дерево отрезков - это очень мощная структура данных, которая позволяет делать много разных операций над массивом чисел. Я постараюсь по...
#Вопросы_с_собеседования
Как вы можете использовать различные специализации шаблонов в C++ для управления поведением компиляции в зависимости от того, является ли тип данных числовым или нет?
В C++ можно использовать частичные специализации шаблонов в сочетании с техниками SFINAE (Substitution Failure Is Not An Error), чтобы управлять компиляцией кода в зависимости от характеристик типа данных. В этом случае можно создать шаблонную структуру, которая будет иметь различные специализации в зависимости от того, является ли тип данных числовым.
std::is_arithmetic: Это структура типов в стандартной библиотеке C++, которая проверяет, является ли тип числовым (целые или вещественные типы).
std::enable_if: Это утилита, которая используется для включения или отключения определений функций или структур на этапе компиляции, основываясь на логическом условии. В данном случае, если тип является числовым, enable_if возвращает тип, что позволяет компилятору выбрать эту специализацию.
В коде используется две специализации: одна для числовых типов, и другая для всех остальных типов. С помощью механизма SFINAE выбирается подходящая специализация в зависимости от типа, передаваемого в шаблон.
Этот метод позволяет писать гибкий код, который адаптируется к различным типам данных, и может быть очень полезен в шаблонных библиотеках и фреймворках, где необходимо учитывать типы данных при компиляции.
Как вы можете использовать различные специализации шаблонов в C++ для управления поведением компиляции в зависимости от того, является ли тип данных числовым или нет?
В C++ можно использовать частичные специализации шаблонов в сочетании с техниками SFINAE (Substitution Failure Is Not An Error), чтобы управлять компиляцией кода в зависимости от характеристик типа данных. В этом случае можно создать шаблонную структуру, которая будет иметь различные специализации в зависимости от того, является ли тип данных числовым.
std::is_arithmetic: Это структура типов в стандартной библиотеке C++, которая проверяет, является ли тип числовым (целые или вещественные типы).
std::enable_if: Это утилита, которая используется для включения или отключения определений функций или структур на этапе компиляции, основываясь на логическом условии. В данном случае, если тип является числовым, enable_if возвращает тип, что позволяет компилятору выбрать эту специализацию.
В коде используется две специализации: одна для числовых типов, и другая для всех остальных типов. С помощью механизма SFINAE выбирается подходящая специализация в зависимости от типа, передаваемого в шаблон.
Этот метод позволяет писать гибкий код, который адаптируется к различным типам данных, и может быть очень полезен в шаблонных библиотеках и фреймворках, где необходимо учитывать типы данных при компиляции.
👩💻 ZTG - графический движок для консолей Windows на С++.
Скомпилируйте библиотеку как статическую и включите ее в свой проект, включите файл ZTG.h
https://github.com/zLouis043/ZTG/
Скомпилируйте библиотеку как статическую и включите ее в свой проект, включите файл ZTG.h
https://github.com/zLouis043/ZTG/
Как настроить библиотеку SFML C++ в Visual Studio 2022 статическая компоновка
Смотреть статью
https://habr.com/ru/articles/805487/?utm_campaign=19691313&utm_source=telegram_flows&utm_medium=social
Смотреть статью
https://habr.com/ru/articles/805487/?utm_campaign=19691313&utm_source=telegram_flows&utm_medium=social
Хабр
Как настроить библиотеку SFML C++ в Visual Studio 2022: статическая компоновка
В этой статье рассказывается, как настроить ваши проекты SFML С++ со статической компоновкой используя интегрированную среду разработки программного обеспечения Visual Studio. Установка SFML...
Как использовать Singleton и не потерять тестируемость
https://habr.com/ru/articles/811331/
https://habr.com/ru/articles/811331/
Хабр
Как использовать Singleton и не потерять тестируемость
Введение Singleton — порождающий шаблон проектирования, гарантирующий, что объект существует только в одном экземпляре, и предоставляющий глобальную точку доступа к нему (современные критики...