This media is not supported in your browser
VIEW IN TELEGRAM
Yandex DEVent PRO в Питере
Это серия офлайн-митапов для опытных бэкендеров от команды Поиска и Рекламных технологий. Здесь можно в закрытом формате познакомиться с лидами из других команд, обменяться опытом и пообщаться.
В этот раз митап пройдёт в Санкт-Петербурге 19 июня: будет настоящее раздолье для нетворкинга, а ещё обсуждение горячих и спорных тем по разработке в формате speed dating.
Спикеры и доклады:
🟡Константин Гудков, руководитель группы разработки Feature store. Расскажет о процессе создания Feature Store — интерфейса для работы с данными, который используется ML-моделями в Рекламе
🟡Сергей Скворцов, руководитель службы поискового райнтайма. Обсудит, как анализировать производительность нативных программ под Linux под нагрузкой с помощью Perforator
🟡Николай Савушкин, руководитель службы рекомендательных технологий. Расскажет о Real-time processing в рекомендательных системах Яндекса
А после докладов вас ждёт афтерпати: кальяны, аэрохоккей и прочие активности!
Узнать подробную информацию и...
Это серия офлайн-митапов для опытных бэкендеров от команды Поиска и Рекламных технологий. Здесь можно в закрытом формате познакомиться с лидами из других команд, обменяться опытом и пообщаться.
В этот раз митап пройдёт в Санкт-Петербурге 19 июня: будет настоящее раздолье для нетворкинга, а ещё обсуждение горячих и спорных тем по разработке в формате speed dating.
Спикеры и доклады:
🟡Константин Гудков, руководитель группы разработки Feature store. Расскажет о процессе создания Feature Store — интерфейса для работы с данными, который используется ML-моделями в Рекламе
🟡Сергей Скворцов, руководитель службы поискового райнтайма. Обсудит, как анализировать производительность нативных программ под Linux под нагрузкой с помощью Perforator
🟡Николай Савушкин, руководитель службы рекомендательных технологий. Расскажет о Real-time processing в рекомендательных системах Яндекса
А после докладов вас ждёт афтерпати: кальяны, аэрохоккей и прочие активности!
Узнать подробную информацию и...
➡️ Удаленные и дефолтные функции
🗣️ В старом С++ вы должны были сделать его приватным. Но теперь в вашем распоря...
struct demo
{
demo() = default;
};
demo d;
• У вас вполне закономерно может возникнуть вопрос, зачем вам писать 8+ букв (т.е. = default;), когда можно просто использовать {}, т.е. пустой конструктор? Никто вас не останавливает. Но подумай о конструкторе копирования, операторе копирования присваиванием, и т.д.• Пустой конструктор копирования, например, не то же самое, что конструктор копирования по умолчанию (который будет выполнять почленную копию всех членов).• Вы можете ограничить определенную операцию или способ инстанцирования объекта, просто удалив соответствующий метод, как показано ниже:class demo
{
int m_x;
public:
demo(int x) : m_x(x){};
demo(const demo &) = delete;
demo &operator=(const demo &) = delete;
};
demo obj1{123};
demo obj2 = obj1; // ОШИБКА -- вызов удаленного конструктора копирования
obj2 = obj1; // ОШИБКА -- оператор = удален
🗣️ В старом С++ вы должны были сделать его приватным. Но теперь в вашем распоря...
➡️ Делегирование конструкторов
C++ Learning 👩💻
• В старом C++ вам нужно создавать функцию-член для инициализации и вызывать ее из всех конструкторов для достижения универсально инициализации.• Но начиная с C++11 конструкторы теперь могут вызывать другие конструкторы из того же класса с помощью списка инициализаторов.C++ Learning 👩💻
➡️ Диапазоны и итераторы в C++
C++ Learning 👩💻
• В C++ стандартная библиотека шаблонов (STL) предоставляет мощные инструменты для работы с коллекциями данных.• Диапазоны и итераторы позволяют вам легко и эффективно перебирать элементы контейнеров, таких как векторы, списки и множества.• Использование диапазонов и итераторов делает код более чистым и читаемым, упрощает операции перебора и модификации элементов контейнеров.C++ Learning 👩💻
➡️ Концепты (Concepts) в C++
Концепты - это новая возможность в C++20, которая позволяет задавать ограничения на шаблонные параметры. Это позволяет писать более безопасный и читаемый код, поскольку компилятор проверяет соответствие типов требованиям концептов на этапе компиляции.
Использование функции add:
C++ Learning 👩💻
Концепты - это новая возможность в C++20, которая позволяет задавать ограничения на шаблонные параметры. Это позволяет писать более безопасный и читаемый код, поскольку компилятор проверяет соответствие типов требованиям концептов на этапе компиляции.
• template<typename T> concept Arithmetic = std::is_arithmetic_v<T>; определяет концепт Arithmetic, который ограничивает типы, для которых значение std::is_arithmetic_v<T> истинно (т.е. типы, которые являются арифметическими).• template<Arithmetic T> T add(const T& a, const T& b) определяет шаблонную функцию add, которая будет компилироваться только для типов, удовлетворяющих концепту Arithmetic.Использование функции add:
• Примеры с целыми числами и числами с плавающей запятой успешно вызывают функцию add.
• Пример со строками (закомментированный) вызовет ошибку компиляции, так как std::string не является арифметическим типом.C++ Learning 👩💻
➡️ Модули (Modules) в C++
Модули - это система сборки и организации кода, представленная в C++20.
C++ Learning 👩💻
Модули - это система сборки и организации кода, представленная в C++20.
• Они улучшают компиляцию и организацию кода, предоставляя более четкий и эффективный способ управления зависимостями.
• Модули заменяют использование препроцессорных директив #include, улучшая время компиляции и предотвращая проблемы с зависимостями и макросами.
• Модули значительно сокращают время компиляции по сравнению с традиционными заголовочными файлами, так как они компилируются только один раз.
• Модули предотвращают проблемы, связанные с макросами и конфликтами имен, поскольку они предоставляют четкие границы и изолированные области видимости.
• Модули упрощают управление зависимостями и организацию кода, что делает проекты более поддерживаемыми и масштабируемыми.C++ Learning 👩💻
➡️ Погружаемся в мир асинхронного программирования: корутины в C++
Корутины — это функции, которые могут приостанавливать своё выполнение и возобновлять его позже, сохраняя своё состояние. Это полезно для написания асинхронного кода, ленивых вычислений и генераторов.
C++ Learning 👩💻
Корутины — это функции, которые могут приостанавливать своё выполнение и возобновлять его позже, сохраняя своё состояние. Это полезно для написания асинхронного кода, ленивых вычислений и генераторов.
• Корутины облегчают написание асинхронного кода без сложных состояний и обратных вызовов.• Корутины позволяют реализовать ленивые вычисления и генераторы данных.• Код, использующий корутины, часто более читаемый и поддерживаемый, так как логика остается последовательной.C++ Learning 👩💻
➡️ Взламываем многопоточность: atomic_ref в C++
C++20 представил возможность для управления многопоточностью:
C++ Learning 👩💻
C++20 представил возможность для управления многопоточностью:
atomic_ref.• atomic_ref обеспечивает безопасное многопоточное доступ к данным.• Использование атомарных операций позволяет избежать блокировок и улучшить производительность программы.• Использование atomic_ref снижает вероятность ошибок в многопоточном коде.C++ Learning 👩💻
👱🏻♀️Как легко знакомиться с реально классными девушками?
Знакомиться на улицах сейчас — это как звонить другу на домашний телефон. В теории работает, но на практике уже неадекватно.
Какова вероятность, что достойная девушка для отношений попадется тебе в метро?
Вроде, достойные девушки и существуют, но как будто где-то в параллельной реальности с тобой, лишь изредка пересекаясь.
Лови простой лайфхак:
Ты боишься знакомства не потому, что не можешь сказать «привет». А потому, что понятия не имеешь что делать в следующие 5-10 минут и будешь просто щелкать еб@лом. А у тебя тут всего две простых задачи:
— Продемонстрировать свою ценность
— Выстроить нужный контекст общения
Заметь в ней что-то уникальное и свяжи это с историей из своей жизни. Например:
— Привет, я случайно увидел тебя и обратил внимание на твои очки. Тебе идут, я тоже раньше носил такие, чтобы казаться старше, когда только начинал преподавать…
Звучит сложно. Однако на канале Творчество Чувств опытный психолог раскладывает это по поло...
Знакомиться на улицах сейчас — это как звонить другу на домашний телефон. В теории работает, но на практике уже неадекватно.
Какова вероятность, что достойная девушка для отношений попадется тебе в метро?
Вроде, достойные девушки и существуют, но как будто где-то в параллельной реальности с тобой, лишь изредка пересекаясь.
Лови простой лайфхак:
Ты боишься знакомства не потому, что не можешь сказать «привет». А потому, что понятия не имеешь что делать в следующие 5-10 минут и будешь просто щелкать еб@лом. А у тебя тут всего две простых задачи:
— Продемонстрировать свою ценность
— Выстроить нужный контекст общения
Заметь в ней что-то уникальное и свяжи это с историей из своей жизни. Например:
— Привет, я случайно увидел тебя и обратил внимание на твои очки. Тебе идут, я тоже раньше носил такие, чтобы казаться старше, когда только начинал преподавать…
Звучит сложно. Однако на канале Творчество Чувств опытный психолог раскладывает это по поло...
➡️ Smart Pointers в C++
Smart Pointers - это мощный инструмент в C++, предоставляющий автоматическое управление памятью и избавляющий от проблем с утечкой памяти. Давайте рассмотрим, как они работают.
C++ Learning 👩💻
Smart Pointers - это мощный инструмент в C++, предоставляющий автоматическое управление памятью и избавляющий от проблем с утечкой памяти. Давайте рассмотрим, как они работают.
• Автоматическое освобождение памяти при выходе из области видимости, что предотвращает утечки памяти.• Уменьшение возможности ошибок в управлении памятью, таких как двойное удаление или использование нулевого указателя.• Простота и удобство в использовании, так как умные указатели работают подобно обычным указателям.C++ Learning 👩💻
➡️ Путь к эффективности: Range-based for loop в C++
Range-based for loop — это мощный инструмент в C++, который позволяет перебирать элементы контейнера более эффективно и удобно.
C++ Learning 👩💻
Range-based for loop — это мощный инструмент в C++, который позволяет перебирать элементы контейнера более эффективно и удобно.
• Код становится более понятным и лаконичным благодаря использованию Range-based for loop.• Повышается безопасность кода за счет автоматического предотвращения выхода за пределы контейнера.• Автоматически оптимизируется компилятором для достижения лучшей производительности.C++ Learning 👩💻
➡️ Захват переменных по перемещению в C++
C++14 добавила полезную возможность для работы с лямбда-выражениями — захват переменных по перемещению (Capture by Move). Эта фишка позволяет вам захватывать объекты без копирования, что особенно полезно для объектов, которые дорого копировать.
C++ Learning 👩💻
C++14 добавила полезную возможность для работы с лямбда-выражениями — захват переменных по перемещению (Capture by Move). Эта фишка позволяет вам захватывать объекты без копирования, что особенно полезно для объектов, которые дорого копировать.
• Уменьшает накладные расходы, связанные с копированием объектов, особенно для объектов, копирование которых дорого.• Использование семантики перемещения улучшает производительность и снижает потребление ресурсов.• Лямбда-выражения с захватом по перемещению позволяют создавать более гибкие и мощные функциональные объекты.C++ Learning 👩💻
⭐️ Хакатон ARCHI.Tech от ВТБ – уникальный шанс сделать проект в роли ИТ-архитектора. Приглашаем начинающих и опытных ИТ-специалистов – студентов и выпускников технических вузов, разработчиков, архитекторов, аналитиков.
🔹 Выбирайте задачу любого уровня — простую, среднюю или сложную
🔹 Собирайте архитектурные артефакты, спрятанные в заданиях, и зарабатывайте баллы
🔹 Презентуйте свои решения экспертам ВТБ
🔹 Не упустите возможность решить «разминочную» задачу и получить дополнительные баллы
🔹 Заработанные баллы, найденные артефакты и коэффициент сложности задачи помогут определить победителей
🔹 Три категории: «Архитектор стрима», «Архитектор системы» и «Архитектор данных»…
🔹… и три призовых места в каждой
🔹 Лучшие из лучших разделят призовой фонд в 1 200 000 рублей!
Начало предварительного этапа – 14 июня. Соревнование стартует 28 июня – у участников будет 24 часа на решение задачи.
👉 Продемонстрируй свои знания об архитектуре – участвуй в ARCHI.Tech от ВТБ: https://cnrlink.com/architechvtbclearn
Реклама. БАНК ВТБ (ПАО). ИНН 7702070139. erid: LjN8KRDYP
🔹 Выбирайте задачу любого уровня — простую, среднюю или сложную
🔹 Собирайте архитектурные артефакты, спрятанные в заданиях, и зарабатывайте баллы
🔹 Презентуйте свои решения экспертам ВТБ
🔹 Не упустите возможность решить «разминочную» задачу и получить дополнительные баллы
🔹 Заработанные баллы, найденные артефакты и коэффициент сложности задачи помогут определить победителей
🔹 Три категории: «Архитектор стрима», «Архитектор системы» и «Архитектор данных»…
🔹… и три призовых места в каждой
🔹 Лучшие из лучших разделят призовой фонд в 1 200 000 рублей!
Начало предварительного этапа – 14 июня. Соревнование стартует 28 июня – у участников будет 24 часа на решение задачи.
👉 Продемонстрируй свои знания об архитектуре – участвуй в ARCHI.Tech от ВТБ: https://cnrlink.com/architechvtbclearn
Реклама. БАНК ВТБ (ПАО). ИНН 7702070139. erid: LjN8KRDYP
architechhack.vtb.ru
Хакатон ARCHI.Tech от ВТБ
Твой уникальный шанс сделать проект в роли ИТ-архитектора
➡️ Корутины для асинхронного программирования
Корутины упрощают разработку сложных асинхронных программ и позволяют более эффективно управлять ресурсами, позволяя писать асинхронный код в синхронном стиле.
C++ Learning 👩💻
Корутины упрощают разработку сложных асинхронных программ и позволяют более эффективно управлять ресурсами, позволяя писать асинхронный код в синхронном стиле.
• Позволяют более эффективно управлять ресурсами, избегая блокировок и повышая производительность.• Интегрируются с новыми библиотеками и фреймворками, поддерживая современные парадигмы программирования.C++ Learning 👩💻
➡️ Преимущества оператора "auto" в C++
C++ Learning 👩💻
• Оператор позволяет программистам значительно упростить и улучшить читаемость кода за счет автоматического выведения типов.• Оператор "auto" помогает уменьшить объем шаблонного кода, особенно при работе с контейнерами и итераторами.
• Уменьшение необходимости вручную указывать типы переменных делает код более понятным и легким для чтения.
• Использование оператора "auto" делает код менее зависимым от конкретных типов, что облегчает рефакторинг и обновление кода в будущем.C++ Learning 👩💻
➡️ Путь к утонченности: Использование диапазонных циклов
C++ Learning 👩💻
• Диапазонные циклы (range-based for loop) обеспечивают простой и элегантный способ итерации по элементам контейнеров. Эта конструкция делает код более компактным и читаемым.• Диапазонные циклы позволяют избежать дублирования кода и уменьшить объем шаблонного кода, что делает их более компактными и легкими для чтения.
• Синтаксис диапазонных циклов интуитивно понятен и легко запоминается, что делает их идеальным выбором для итерации по элементам контейнеров.
• Диапазонные циклы обеспечивают безопасное итерирование по контейнерам, предотвращая выход за их пределы и другие ошибки.C++ Learning 👩💻
🔴 Практический вебинар для начинающих С++-разработчиков — почему утекает динамически выделенная память и как с этим бороться?
Ждем вас на открытом уроке, где мы разберем:
- зачем нужна динамическая память и сложности работы с ней в C++;
- основные ошибки, которые возникают при работе с динамической памятью;
- инструментарий диагностики ошибок, такой как valgrind и sanitizers;
- идиому RAII в контексте динамической памяти.
👨🎓 Спикер — опытный разработчик и руководитель команд, преподаватель и эксперт конференций C++ Russia, escar Europe.
⏰ Встречаемся 20 июня в 20:00 мск в преддверии старта курса «Специализация C++ Developer». Все участники вебинара получат специальную цену на обучение!
➡ Регистрируйтесь прямо сейчас, чтобы занять место на открытом уроке и получить запись: РЕГИСТРАЦИЯ
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Ждем вас на открытом уроке, где мы разберем:
- зачем нужна динамическая память и сложности работы с ней в C++;
- основные ошибки, которые возникают при работе с динамической памятью;
- инструментарий диагностики ошибок, такой как valgrind и sanitizers;
- идиому RAII в контексте динамической памяти.
👨🎓 Спикер — опытный разработчик и руководитель команд, преподаватель и эксперт конференций C++ Russia, escar Europe.
⏰ Встречаемся 20 июня в 20:00 мск в преддверии старта курса «Специализация C++ Developer». Все участники вебинара получат специальную цену на обучение!
➡ Регистрируйтесь прямо сейчас, чтобы занять место на открытом уроке и получить запись: РЕГИСТРАЦИЯ
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
➡️ Использование диапазонов с std::ranges
C++ Learning 👩💻
• C++20 ввел мощную библиотеку std::ranges, которая предоставляет более удобные и выразительные способы работы с последовательностями данных.• Диапазоны упрощают операции с контейнерами, делая код более читаемым и декларативным.• Диапазоны позволяют легко комбинировать различные операции (фильтрация, преобразование и т. д.) в одну цепочку.• Диапазоны используют ленивые вычисления, что может улучшить производительность за счет минимизации ненужных операций.C++ Learning 👩💻
🔴 Как разработчику на С++ организовать кроссплатформенную разработку?
Приходите на практический открытый урок от OTUS, где вы:
- узнаете, как решить проблему поиска зависимостей;
- напишите conan-файл;
- сможете организовать свой сервер пакетов в своей экосистеме CI/CD;
- получите ответы на все возникающие вопросы.
👨🎓Спикер — тимлид команды в отделе рекламных технологий и социальных механик в одном из крупнейших российских банков.
⏰ Встречаемся 24 июня в 20:00 мск в преддверии старта курса «C++ Developer. Professional». Все участники вебинара получат специальную цену на обучение и консультацию от менеджеров OTUS!
➡ Регистрируйтесь прямо сейчас, чтобы не пропустить бесплатный урок: РЕГИСТРАЦИЯ
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Приходите на практический открытый урок от OTUS, где вы:
- узнаете, как решить проблему поиска зависимостей;
- напишите conan-файл;
- сможете организовать свой сервер пакетов в своей экосистеме CI/CD;
- получите ответы на все возникающие вопросы.
👨🎓Спикер — тимлид команды в отделе рекламных технологий и социальных механик в одном из крупнейших российских банков.
⏰ Встречаемся 24 июня в 20:00 мск в преддверии старта курса «C++ Developer. Professional». Все участники вебинара получат специальную цену на обучение и консультацию от менеджеров OTUS!
➡ Регистрируйтесь прямо сейчас, чтобы не пропустить бесплатный урок: РЕГИСТРАЦИЯ
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru