Этот курс поможет вам разобраться, как работает текстовый редактор на самом низком уровне: от обработки ввода до реализации отмены действий. Вы шаг за шагом создадите собственный редактор, понимая каждую часть его внутренней механики.
Что вы создадите в ходе обучения
К концу курса вы построите минималистичный, но полностью рабочий текстовый редактор, способный:
обрабатывать ввод и перемещение курсора;
добавлять и удалять символы;
выполнять backspace корректно и безопасно;
поддерживать операцию «шаг назад» посредством простого undo-стека.
Ключевые навыки, которые вы освоите
Работа со структурой данных для текста
Вы узнаете, какие структуры данных используют настоящие редакторы для эффективной обработки текста, и попробуете реализовать их на практике.
Обработка пользовательского ввода
Курс покажет, как перехватывать нажатия клавиш, как обновлять состояние курсора и каким образом правильно синхронизировать отображаемый текст с происходящими изменениями.
Механизм отмены действий
Вы реализуете собственную систему undo, которая позволяет возвращаться к предыдущим состояниям текста. Поймете, как устроены стек состояний, слои истории и какие ограничения нужно учитывать.
Для кого подходит этот курс
для разработчиков, которые хотят погрузиться в системный уровень работы редакторов;
для тех, кто изучает работу структур данных через практику;
для всех, кто хочет написать собственный инструмент и понимать его устройство от начала до конца.
Что вы получите в итоге
Вы не просто напишете мини-редактор — вы создадите фундамент, который можно расширять: добавлять выделение текста, буфер обмена, сохранение файлов и другие возможности. Курс поможет вам увереннее чувствовать себя в низкоуровневой разработке и лучше понимать, как работают привычные нам инструменты.
Destroy All Software — это интересный и уже классический образовательный проект, в котором собраны лаконичные и содержательные видео по веб-разработке и смежным IT-направлениям. Несмотря на возраст, материалы остаются актуальными благодаря фокусу на фундаментальных принципах разработки, а не на быстро устаревающих технологиях.В рамках проекта рассматриваются реальные задачи программирования: работа с кодом, автоматизация, тестирование, архитектур