JavaRush
Акция
Университет
Java FullStack
Python FullStack
AI Native Developer
new
Web FullStack
Обучение
Курсы
Задачи
Опросы
Игры
Помощь
График пинков
Стажировка
Сообщество
Пользователи
Форум
Чат
Статьи
Истории успеха
Активности
Отзывы
Подписки
Светлая тема

Лекции

  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Мое обучение
  • Курсы
  • Университет
  • Карта квестов
  • Лекции
  • string_view‑грабли: углубление правил времени жизни

    C++ SELF
    47 уровень,0 лекция
    Разбираем, почему std::string_view — это «вид» на чужую память (адрес + длина), а не строка, и как из этого вырастают классические ошибки времени жизни: view из временной std::string, view на результат substr(), возврат string_view из функций, хранение view в полях моделей и использование view после модификации исходной строки. В конце собираем безопасный стиль: принимаем std::string_view, но храним std::string, и фиксируем чек-лист/схему принятия решения.
    Открыта
  • std::span и std::vector: reallocation

    C++ SELF
    47 уровень,1 лекция
    Разбираем, почему std::span — это невладеющий view на память, и как обычный рост std::vector (через push_back/ emplace_back) может вызвать reallocation, изменить адрес data() и превратить старый span в dangling (и, как следствие, в UB). Показываем типичные грабли: инвалидирование при перевыделении, «устаревший» размер, разрушение элементов через pop_back/ erase, и формулируем безопасный стиль: span как параметр функции, а не как долгоживущее состояние.
    Открыта
  • Правила безопасности времени жизни: owner и view

    C++ SELF
    47 уровень,2 лекция
    Разбираем практичную модель owner/ view в C++: почему std::string_view, std::span, указатели и ссылки не владеют данными, как появляются dangling и UB, какие два правила защищают время жизни (owner живёт дольше view и не хранить view в полях без гарантий), а также как спроектировать API (value, const &, view) на примере мини‑проекта TaskTracker.
    Открыта
  • Мини‑гигиена производительности как часть triage

    C++ SELF
    47 уровень,3 лекция
    Разбираем «мини‑гигиену» производительности в C++ как инструмент стабилизации эксперимента при расследовании ошибок памяти: почему лишние копии и переезды мешают воспроизводимости, как std::vector ведёт себя при push_back и reallocation, чем отличаются reserve и resize, а также как «честные сигнатуры» (передача по const &, std::string_view, std::span) уменьшают шум в отчётах санитайзеров и помогают быстрее выделить первопричину.
    Открыта
  • Чек‑лист расследования багов

    C++ SELF
    47 уровень,4 лекция
    Практический маршрут расследования багов в C++: как превратить «иногда падает» в детерминированный repro, как минимизировать сценарий до MRE, как фиксировать артефакты расследования и строить регресс‑барьер через assert и self_check(). На примере std::vector, висячих указателей ( Task *) и переезда памяти при push_back показываем, как мыслить инженерно и проверяемо.
    Открыта
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2026 JavaRush
MastercardVisa
"Программистами не рождаются" © 2026 JavaRush