C++ Academy
10K subscribers
162 photos
64 videos
210 links
По всем вопросам- @haarrp
Download Telegram
🖥 Порождающие паттерны и их реализация на C++

Держите реализацию на C++ таких шаблонов как:
• фабрика
• строитель
• абстрактная фабрика
• одиночка
• прототип

А вот немного о самих паттернах:
🟡Строитель (builder)
— разделяет создание сложного объекта и инициализацию его состояния так, что одинаковый процесс построения может создать объекты с разным состоянием.

🟡Абстрактная фабрика (abstract factory) — предоставляет интерфейс для создания групп связанных/зависимых объектов, не указывая их конкретный класс.

🟡Одиночка (singleton)
— гарантирует, что класс имеет только 1 экземпляр и предоставляет глобальную точку доступа к нему.

🟡Прототип (prototype)
— определяет несколько видов объектов, чтобы при создании использовать объект-прототип и создаёт новые объекты, копируя прототип.

📎 Код, описывающий паттерны
📎 А тут объяснение и схемы самих паттернов

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Перехват данных на уровне ОС с помощью C++

Держите полезную статью, здесь мы рассматриваем две техники перехвата данных на уровне ОС. Они позволяют получить точную информацию о состоянии игровых объектов.
В то же время эти техники имеют несколько преимуществ над чтением данных из памяти процесса игры:

🟡Большинство антиотладочных приёмов не защищают от перехвата WinAPI-вызовов.

🟡Намного проще реализовать обработчик перехваченной функции, чем анализировать память игрового приложения.

🟡Системам защиты крайне сложно обнаружить факт перехвата вызовов.

Эти техники перехвата WinAPI-вызовов можно использовать не только в алгоритме какого-нибудь бота, но и для исследования памяти процесса игрового приложения. Да и вообще, применений масса)

▶️ Поехали

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Один из лучших онлайн-компилятор C++

https://github.com/16bit-ykiko/vscode-compiler-explorer

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Чем пустой конструктор по умолчанию отличается от =default;?

▶️Вопрос: чем пустое тело отличается от того, что получается с =default (для конструктора по умолчанию)
X::X() {}
// и
X::X() = default;



▶️Что ж, наличие конструктора по умолчанию с пустым телом автоматически делает класс нетривиальным. Со всеми вытекающими отсюда особенностями. Например делает тип не POD. А также исключает возможность использовать агрегатную инициализацию:
#include <iostream>
#include <type_traits>

struct X {
//X() {}
X() = default;
int a;
int b;
};

int main( ) {
X x { 1, 2 }; // ошибка, если X - не тривиальный класс.
std::cout << std::boolalpha <<
std::is_trivial<X>::value << "\n";
}


При определении конструктора как = default тривиальность класса сохраняется, если она была до этого. В данном случае, это равносильно отсутствию явного упоминания конструктора в определении класса.

Если конструктор по умолчанию определен как = default вне определения класса, всё равно будет считаться, что конструктор предоставлен пользователем, и это тоже делает класс нетривиальным.

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Whisper.cpp для перевода аудио в текст

🟡Высокопроизводительный интерфейс на C++ для модели Whisper от OpenAI, которая отлично распознаёт текст.
Простая реализация на C/C++ без зависимостей.

Особенности самой модели Whisper:
— Хорошо распознает русский текст (даже с вкраплениями английского)
— Хорошо распознает цифры

🖥 GitHub
🟡 Использование

Кстати, интересный факт: Whisper.cpp был написан Георгием Гергановым всего за 5 дней

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Воспроизводимая среда разработки с Nix

В разработке на C++ менеджер пакетов — незаменимая вещь.
Многие полагаются на FetchContent и скрипты сборки для установки зависимостей, а ведь есть замечательный инструмент — Nix, который является и пакетным менеджером, и позволяет настраивать детерминированное окружение одной командой.

Что ж, давайте поговорим, что такое Nix, что он предлагает и как с его помощью создать окружения разработки.

▶️ Погружение в Nix

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥Подборка лучших обучающих каналов для программистов.

➡️ Делитесь с коллегами и сохраняйте себе, чтобы не потерять

Машинное обучение

Machine Learning - запускаем лучшие ИИ модели, пишем код, погружаемся в нейросети
Ml Собеседование - подготовка к собесу по мл, алгоритмам, коду
Ml ru - актуальные статьи, новости, код и обучающие материалы
Ml Jobs - вакансии ML
ML Книги - актуальные бесплатные книги МО
ML чат

🏆 Golang
Golang
Golang собеседование - разбор задач и вопросов с собесов
Golang вакансии -работа для Go разработчика
Golang книги библиотека книг
Golang задачи и тесты
Golang чат
Golang news - новости из мира go
Golang дайджест

💥 Linux /Этичный хакинг
Linux Academy - гайды, секреты и лучшие материалы по Linux
Kali linux - погрузись в мир этичного хакинга и кибербезопасности
linux_kal - kali чат
Информационная безопасность

🚀 Data Science

Анализ данных - полезные фишки, код, гайды и советы, маст-хэв датасаентиста
Data Jobs - ds вакансии
Аналитик данных
Data Science книги - актуальные бесплатные книги
Big data

🛢Базы данных
Sql базы данных - научим работе с базами данных профессионально
Библиотека баз данных
SQL чат
Вакансии Sql аналитик данных

#️⃣C#

С# академия - лучший канал по c#
С# заметки — код, лучшие практики, заметки программиста c#
С# задачи и тесты
С# библиотека - актуальные бесплатные книги
C# вакансии - работа

🐍 Python

Python/django - самый крупный обучающий канал по Python
Python Собеседование - подготовка к собеседовению python и разбор алгоритмов
Pro python - статьи, новости, код и обучающие материалы
Python Jobs - вакансии Python
Python чат
Python книги

Java

Java академия - java от Senior разработчика
Java вакансии
Java чат
Java вопросы с собеседований
Java книги

💻 C++

C++ академия
С++ книги
C++ задачи - подготовка к собеседовению мл, алгоритмам
C++ вакансии

⚡️ Frontend
Javascript академия - крупнейший js канал
React - лучшие гайды и советы по работе с react
Frontend - тутрориалы, уроки, гайды, код
PHP
Книги frontend
Задачи frontend

🦀 Rust
Rust программирование
Rust чат
Rust книги для программистов

📲 Мобильная разработка
Android разработка
Мобильный разработчик гайды и уроки

🇬🇧 Английский для программистов

🧠 Искусственный интеллект
ИИ и технологии
Neural - нейросети для работы и жизни
Книги ИИ
Artificial Intelligence

🔥 DevOPs
Devops для программистов
Книги Devops

🌟 Docker/Kubernets
Docker
Kubernets

📓 Книги
Библиотеки Книг для программситов

💼 Папка с вакансиями:
Папка Go разработчика:
Папка Python разработчика:
Папка Data Science
Папка Java разработчика
Папка C#
Папка Frontend

💥 Бесплатный Chatgpt бот
🖥 gemma.cpp

gemma.cpp — это лёгкий движок на C++ для вывода моделей на основе Gemma от Google (в частности Gemma 2B и 7B)

gemma.cpp ориентирован на простоту и минималистичность, а не на полную универсальность.
Вдохновлён такими реализациями, как ggml, llama.c и llama.rs.

🖥 GitHub
🟡 Gemma

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Как собрать проект C++ с Github из исходников

🟡В этой статье мы рассмотрим ситуацию, когда у нас есть только ссылка на исходники проекта, скажем, на GitHub (возьмём для примера библиотеку для простых чисел primesieve) и нужно каким-то образом "вручную" скомпилировать внешний проект в своей Visual Studio, чтобы воспользоваться его возможностями в своём приложении.

▶️ Поехали

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 FTXUI — C++ библиотека для создания консольных UI

Фичи FTXUI:
— Функциональный стиль, вдохновлен React
— Простой и элегантный синтаксис
— Создаваемые консольные UI поддерживают навигацию с помощью клавиатуры и мыши
— Поддержка UTF8 и полноразмерных символов (типо → 测试)
— Поддержка анимации
— Поддержка рисования
— Нет зависимостей
— Кроссплатформенность: Linux/MacOS, WebAssembly, Windows
— К FTXUI прилагается: документация, тесты, фаззеры, тесты производительности, автоматизированный CI, автоматизированная упаковка и т.д.

🖥 GitHub

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
Бесплатные моковые собеседования, разбор CV и помощь с поиском работы для бэкенд-разработчиков

Знаете это чувство, когда вы тратите кучу времени на поиски работы, но вас нигде не берут и кажется, что крутая работа в IT доступна только избранным? Эту систему можно хакнуть! Для этого нужно:

1️⃣ Научиться правильно презентовать свой опыт в резюме и на собеседовании
2️⃣ Понять, какие вопросы задают рекрутеры на интервью и заранее подготовить ответы на них
3️⃣ Выписать вопросы, которые чаще всего задают на технических собеседованиях и потренироваться отвечать на них
4️⃣ Много практиковаться на реальных или тестовых собеседованиях.

С этими задачами помогут наши партнеры — Solvery — сервис по подбору менторов из IT.
На следующей неделе ребята проводят Backend Fest по трудоустройству! 🚀

Будут не только технические собеседования, но и моковый скрининг с рекрутером, а также разбор CV и вебинар по поиску работы в 2024 году. Их проведут действующие специалисты из Яндекса, Райффайзен Банка, Wildberries и других компаний.

Расписание феста:
13.05 в 18:30 — Разбор CV
14.05 в 19:00 — Моковое собеседование по С++
15.05 в 19:00 — Моковый скрининг с рекрутером
16.05 в 19:00 — Моковое собеседование по Rust
20.05 в 19:00 — Моковое собеседование по Python
21.05 в 19:00 — Моковое собеседование по Java
22.05 в 19:00 — Как искать работу в 2024 году?
23.05 в 19:00 — Моковое собеседование по С#

Вы можете не только прийти зрителем, но и сами пройти тестовое собеседование и разбор резюме – а это очень полезный опыт

Скорее переходите по ссылке и регистрируйтесь, чтобы получить напоминания об эфирах!
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Cppcheck — статический анализатор кода C/C++

sudo apt-get install cppcheck

Cppcheck — это инструмент статического анализа кода C/C++. Обеспечивает уникальный анализ кода для выявления ошибок и фокусируется на обнаружении неопределенного поведения и опасных конструкций в коде.
Cppcheck спроектирован, чтобы иметь очень мало ложных срабатываний; при этом Cppcheck способен анализировать ваш C/C++ код, даже если код имеет нестандартный синтаксис (распространенный во встраиваемых проектах).

Cppcheck доступен как open-source, так и в виде Cppcheck Premium с расширенной функциональностью и поддержкой.

🖥 GitHub
🟡 Онлайн демонстрация

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM