Чему вы научитесь
- Читать и писать идиоматичный код на Lua 5.5, а не переносить конструкции из другого языка
- Проектировать структуры данных на таблицах, понимая цену массивной и хеш-части
- Строить объектную модель на метатаблицах и выбирать между наследованием и композицией
- Изолировать недоверенный код через собственное окружение и ограничение по инструкциям
- Разбирать текстовые и бинарные форматы паттернами Lua и string.pack
- Проектировать обработку ошибок как значений и освобождать ресурсы детерминированно
- Строить потоковые конвейеры на корутинах, не загружая данные в память целиком
- Управлять сборщиком мусора и находить узкие места профилировщиком, а не догадками
- Писать тесты и инструменты отладки на голом интерпретаторе, без внешних библиотек
- Собирать модуль на C, встраивать Lua в приложение и упаковывать результат в rockspec
О курсе
Для кого этот курс
Начальные требования
Опыт промышленной разработки на любом языке и понимание базовых вещей: стек вызовов, куча, замыкание, сборка мусора, указатель или ссылка. Для главы про C API нужен рабочий навык чтения кода на C и установленный компилятор.
Из инструментов достаточно текстового редактора и терминала. В первой главе интерпретатор собирается из исходников — это несколько команд, отдельная установка ничего не требует. Всё остальное входит в стандартную поставку Lua: внешних библиотек в курсе нет.
Преподаватели курса
Формат курса
Курс текстовый. Каждая глава — девять уроков: восемь разбирают тему, девятый практический и собирает из неё часть сквозного проекта. Главы с третьей по двенадцатую завершаются тестовыми задачами с одним верным ответом; после неверного показывается объяснение, почему верен другой вариант.
Дедлайнов нет, курс проходится в своём темпе. Код из уроков рассчитан на то, что его запускают: почти в каждом есть фрагмент, который нужно выполнить у себя и сравнить вывод.
Что вы получите
- Двенадцать глав по девять уроков с разбором кода и практикой в конце каждой главы
- Полные исходники сквозного проекта sift, готовые к запуску
- Тестовые задачи в конце глав с третьей по двенадцатую; у каждой есть объяснение после неверного ответа
- Практические задания в каждом уроке — с конкретным результатом, а не «подумайте, где применить»
- Разбор реальных дефектов проекта: симптом, причина, исправление