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

Лекции

  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Мое обучение
  • Курсы
  • Университет
  • Карта квестов
  • Лекции
  • io.Reader и io.Writer: основа I/O и тестируемости

    Go SELF
    26 уровень,0 лекция
    Разбираем потоковую модель ввода/вывода в Go и два ключевых контракта стандартной библиотеки — io.Reader и io.Writer: как правильно трактовать пару n/ err, почему io.EOF — это штатный конец потока, как не попасться на частичную запись, и почему параметризация функций через Reader/ Writer резко повышает тестируемость (можно подставлять память вместо файлов/сети/консоли).
    Открыта
  • bytes.Buffer и strings.Builder

    Go SELF
    26 уровень,1 лекция
    Разбираем, почему полезно «собирать вывод» через контракт io.Writer, а не печатать из каждой функции через fmt.Println. Сравниваем bytes.Buffer (байты + потоковое чтение через Read) и strings.Builder (быстрая сборка строк), учимся перенаправлять вывод в память для проверок и тестов, и строим мини-рендер задач с WriteTasks.
    Открыта
  • Декораторы потоков — io.LimitReader, io.TeeReader, io.MultiWriter

    Go SELF
    26 уровень,2 лекция
    Разбираем «насадки на трубу» в Go I/O: как ограничивать чтение через io.LimitReader, как делать «подслушку» входного потока с копированием в io.Writer через io.TeeReader, и как организовать «двойную запись» в несколько приёмников с io.MultiWriter. Соберём конвейеры, обсудим порядок обёрток и типичные ошибки с n/ err и io.EOF.
    Открыта
  • io.Copy / io.CopyN

    Go SELF
    26 уровень,3 лекция
    Разбираем потоковое копирование в Go на базе интерфейсов io.Reader и io.Writer: как работает io.Copy, почему он возвращает количество байтов как int64, что означает «частичный прогресс» ( written > 0 при err != nil), и чем строгий контракт io.CopyN отличается от «не больше N» через io.LimitReader. Отдельно обсудим обогащение ошибок через fmt.Errorf и оборачивание с %w.
    Открыта
  • context.Context: Background, TODO, WithCancel

    Go SELF
    26 уровень,4 лекция
    Разбираем базовую механику отмены операций в Go через context.Context: чем отличаются context.Background() и context.TODO(), как вручную отменять работу через context.WithCancel и функцию cancel(), почему важно вызывать cancel даже без явной отмены, как корректно проверять ctx.Err() в долгих циклах, и как прокидывать ctx как первый параметр API. В конце — схема дерева контекстов (Mermaid) и типичные ошибки.
    Открыта
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2026 JavaRush
MastercardVisa
"Программистами не рождаются" © 2026 JavaRush