В этом курсе вы изучите основы абстрактных синтаксических деревьев, узнаете, что они из себя представляют, как работают, и погрузитесь в несколько практических вариантов использования абстрактных синтаксических деревьев для поддержки кодовой базы JavaScript.
В этом курсе мы начнем с основ абстрактных синтаксических деревьев (AST) и изучим основные ментальные модели. Эти общие знания об AST можно применить практически к любому инструменту, работающему с AST.
Почему этот курс?
Понимание и использование AST открывает возможность вносить радикальные изменения безопасным и надежным способом в кодовую базу любого размера.
Темы курса
На протяжении этого курса мы преобразовывали исходный код в AST, проходили, изменяли и генерировали AST. С помощью этих концепций мы затем изучим несколько практических приложений, включая такие вещи, как аудит кода (статический анализ), преобразование кода (codemods) и линтинг.
Модуль 1
Мы изучим основы абстрактных синтаксических деревьев.
- Что такое AST?
- Как исследовать AST
- Примеры инструментов JavaScript, которые работают с AST
Модуль 2
Мы научимся работать с AST.
- Как превратить код в AST
- Как программно перемещаться по любому AST
- Как использовать TypeScript для предотвращения ошибок во время выполнения
Модуль 3
Мы узнаем, как статически анализировать или делать «аудит» кода, чтобы понять состояние кодовой базы, используя абстрактные синтаксические деревья.
- Введение в пример кодовой базы и рефакторинга
- Понимание состояния текущей кодовой базы
- Когда использовать инструмент на основе AST, а когда делать что-то вручную
Модуль 4
Мы узнаем, как преобразовывать или «кодировать» код из одного состояния в другое, используя абстрактные синтаксические деревья.
- Как внести изменения в AST
- Как изменить AST с помощью jscodeshift
- Как протестировать преобразование кода
Модуль 5
Мы узнаем, как писать правила, или «ворсить» код, используя абстрактные синтаксические деревья.
- Как создавать правила для кода
- Как создавать собственные правила с помощью ESLint
- Как проверить правило