Приглашенный спикер: Павел Запольский – Senior Quantitative Researcher at Exness и Co-founder GrowLytics. Запустивший более 10 проектов по машинному обучению и анализу данных для ведущих компаний.
Please open Telegram to view this post
VIEW IN TELEGRAM
❗Вакансии «Библиотеки программиста» — ждем вас в команде!
Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем:
👉авторов в наше медиа proglib.io
👉контент-менеджеров для ведения телеграм-каналов
Подробности тут
Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴
Ждем ваших откликов 👾
Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем:
👉авторов в наше медиа proglib.io
👉контент-менеджеров для ведения телеграм-каналов
Подробности тут
Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴
Ждем ваших откликов 👾
ad.proglib.io
Вакансии в медиа «Библиотека программиста»
Количество проектов в редакции постоянно растет, так что нам всегда нужны специалисты
Please open Telegram to view this post
VIEW IN TELEGRAM
👁🗨 Что такое std::is_pointer_v?
std::is_pointer_v — это переменная-шаблон из стандартной библиотеки C++, введенная в стандарте C++17. Она является частью библиотеки type_traits, которая предоставляет инструменты для получения информации о типах во время компиляции.
❗️Основное о std::is_pointer_v:
- Это сокращение для std::is_pointer::value
- Она принимает тип в качестве шаблонного параметра и возвращает true, если этот тип является указателем, и false в противном случае
- Это константа времени компиляции типа bool
- Она работает с любыми типами указателей, включая указатели на функции и указатели на члены
- Не считает nullptr_t указателем
std::is_pointer_v — это переменная-шаблон из стандартной библиотеки C++, введенная в стандарте C++17. Она является частью библиотеки type_traits, которая предоставляет инструменты для получения информации о типах во время компиляции.
❗️Основное о std::is_pointer_v:
- Это сокращение для std::is_pointer::value
- Она принимает тип в качестве шаблонного параметра и возвращает true, если этот тип является указателем, и false в противном случае
- Это константа времени компиляции типа bool
- Она работает с любыми типами указателей, включая указатели на функции и указатели на члены
- Не считает nullptr_t указателем
Что будет при попытке компиляции программы
Anonymous Quiz
24%
Выведет 00
49%
Не скомпилируется
24%
Выведет 01
3%
Выведет 11
😏 Чем отличается агрегация и композиция?
Агрегация и композиция - это два понятия из ООП, которые выполняют функцию похожую на наследование, но другим способом
👉 Видео с ответом
Агрегация и композиция - это два понятия из ООП, которые выполняют функцию похожую на наследование, но другим способом
👉 Видео с ответом
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
😱 Какие знаете паттерны проектирования?
Под паттернами проектирования часто имеют ввиду GoF паттерны, которые предназначены для удобного и эффективного описания структуры кода
Порождающие паттерны:
• Singleton
• Factory Method
• Abstract Factory
• Builder
• Prototype
Структурные паттерны:
• Adapter
• Bridge
• Composite
• Decorator
• Facade
• Flyweight
• Proxy
Поведенческие паттерны:
• Chain of Responsibility
• Command
• Interpreter
• Iterator
• Mediator
• Memento
• Observer
• State
• Strategy
• Template Method
• Visitor
🫐 Что такое PIMPL?
PIMPL (Pointer to IMPLementation) - это техника, которая скрывает детали реализации класса за указателем на вспомогательный класс, содержащий фактическую реализацию
❗️Основная идея
В публичном заголовочном файле объявляется только интерфейс класса и указатель на вспомогательный класс. Все детали реализации перемещаются в отдельный файл реализации.
❗️Структура
Публичный класс (в заголовочном файле):
Приватный класс (в файле реализации):
PIMPL (Pointer to IMPLementation) - это техника, которая скрывает детали реализации класса за указателем на вспомогательный класс, содержащий фактическую реализацию
❗️Основная идея
В публичном заголовочном файле объявляется только интерфейс класса и указатель на вспомогательный класс. Все детали реализации перемещаются в отдельный файл реализации.
❗️Структура
Публичный класс (в заголовочном файле):
class PublicClass {
public:
PublicClass();
~PublicClass();
void someMethod();
private:
class Impl;
std::unique_ptr<Impl> pimpl;
};
Приватный класс (в файле реализации):
class PublicClass::Impl {
public:
void someMethod() {
// Реальная реализация
}
};
🥪 Какие преимущества и недостатки PIMPL?
❗️Преимущества
- Улучшение времени компиляции: изменения в реализации не требуют перекомпиляции кода, использующего публичный класс
- Сокрытие деталей реализации: пользователи класса видят только его интерфейс
- Упрощение ABI (Application Binary Interface): изменения в приватной части не влияют на ABI
- Уменьшение зависимостей: заголовочный файл не нуждается в инклюдах для внутренних типов.
❗️Недостатки
- Дополнительный уровень косвенности: может слегка снизить производительность
- Усложнение кода: требует написания дополнительного кода для управления указателем
- Увеличение размера объекта: из-за хранения указателя
❗️Альтернатива
- C++20 появился концепт модулей, который может частично заменить PIMPL, предоставляя лучшие механизмы для сокрытия реализации и управления зависимостями
❗️Преимущества
- Улучшение времени компиляции: изменения в реализации не требуют перекомпиляции кода, использующего публичный класс
- Сокрытие деталей реализации: пользователи класса видят только его интерфейс
- Упрощение ABI (Application Binary Interface): изменения в приватной части не влияют на ABI
- Уменьшение зависимостей: заголовочный файл не нуждается в инклюдах для внутренних типов.
❗️Недостатки
- Дополнительный уровень косвенности: может слегка снизить производительность
- Усложнение кода: требует написания дополнительного кода для управления указателем
- Увеличение размера объекта: из-за хранения указателя
❗️Альтернатива
- C++20 появился концепт модулей, который может частично заменить PIMPL, предоставляя лучшие механизмы для сокрытия реализации и управления зависимостями
Что выведет код?
Anonymous Quiz
11%
hello
1%
world
45%
hello world
12%
hello world hello world
31%
hello worldhello world
👾 -35% на хардкорный курс по вышмату
На курсе вы получите все необходимые знания для старта карьеры в DS или аналитике – https://proglib.io/w/6a7a6f96
19 490 рублей29 990 рублей
Что еще вас ждет на курсе:
▪️ Полугодовая программа от преподавателей ВМК МГУ;
▪️ 150 практических заданий и 47 видеолекций;
▪️ Бессрочный доступ ко всем материалам курса;
▪️ Развернутая обратная связь по всем домашним заданиям, а также ссылки на полезные дополнительные материалы.
🌚 Переходите на сайт, читайте подробности и заходите на обучение по самым выгодным условиям – https://proglib.io/w/6a7a6f96
На курсе вы получите все необходимые знания для старта карьеры в DS или аналитике – https://proglib.io/w/6a7a6f96
19 490 рублей
Что еще вас ждет на курсе:
▪️ Полугодовая программа от преподавателей ВМК МГУ;
▪️ 150 практических заданий и 47 видеолекций;
▪️ Бессрочный доступ ко всем материалам курса;
▪️ Развернутая обратная связь по всем домашним заданиям, а также ссылки на полезные дополнительные материалы.
Please open Telegram to view this post
VIEW IN TELEGRAM
Что будет при попытке компиляции кода?
Anonymous Quiz
20%
Программа соберётся и выведет 00
18%
Программа соберётся, но будет неопределённое поведение
38%
Программа не соберётся
23%
Программа соберётся, и выведутся мусорные значения