Course overview

Course overview

Project Source Code

Get the project source code below, and follow along with the lesson material.

Download Project Source Code

To set up the project on your local machine, please follow the directions provided in the README.md file. If you run into any issues with running the project source code, then feel free to reach out to the author in the course's Discord channel.

  • |

Lesson Transcript

  • [00:00 - 00:13] Welcome to this course on Practical Abstracts and Textories, or ASTs. Originally when I was faced with making a change that affected hundreds of files on a codebase, I would question whether or not it was critical to make that change.

  • [00:14 - 00:21] If it was, I would then slowly go through each file and make that update. This would often take a long time and could be aero-prone.

  • [00:22 - 00:34] After doing this several times, I learned ASTs unlock the ability to automate a lot of repetitive or challenging tasks like this in a much more reliable way. In the process, I also realized that ASTs have a much broader application than only refactoring.

  • [00:35 - 00:53] This course aims to distill the time I spent struggling through the documentation in a way I wish I could have learned about abstracts and textories in the various applications in the front-end web ecosystem. When seen or hearing the term AST, it's tempting to ignore it because it seems either irrelevant to the work you're doing or it just sounds way too complex.

  • [00:54 - 01:03] After this course, hopefully you'll understand that neither of these statements are true. First, ASTs are more common than you may think and are used in many examples of software such as Webpack, Babel, and Prideer.

  • [01:04 - 01:11] Second, ASTs can seem complex due to their vocabulary, tooling, or documentation. However, this course will take an AST first approach.

  • [01:12 - 01:17] This way, we'll first acquire a strong understanding of ASTs. Then we'll start to interact with ASTs.

  • [01:18 - 01:27] And then finally, we'll start to explore the tooling available for using ASTs in a practical way. This way, your AST knowledge can be applied to any AST-based tool.

  • [01:28 - 01:42] This course will start by covering the fundamentals of ASTs, what they are, and how they work. Once we're comfortable with ASTs, we'll start to explore several practical use cases, including code audits or static analysis, to understand the current state of source code.

  • [01:43 - 02:02] Code transforms or code mods to transform source code from one state to another , and finally code-linting or rules to prevent certain patterns from appearing in source code. Most courses will build an app along the way, but we'll use a sample app, because this course is aimed at practical uses of ASTs for maintaining and refactoring code bases.

  • [02:03 - 02:12] This course is for anyone who has ever needed to maintain or refactor a large code base. This course is primarily written in JavaScript and TypeScript and works on a JavaScript code base.

  • [02:13 - 02:24] Many of the concepts in the course are not JavaScript or TypeScript specific, but many of the tools will be specific to these languages. Once get started, the first lesson will dive into understanding ASTs and how they work.