Software Tools in JavaScript: Terms

I still have 48 figures to draw for Software Tools in JavaScript, but to follow up on this post about its topics and this post about using glossaries to summarize lesson content, here’s a list of the terms defined in each chapter. What I want to build (or find) next is a tool that will take data like this, find related uses (“glob” for “globbing”, “method chain” for “method chaining”, etc.), and tell me if I’m using ideas before explaining them. I don’t want to have to list all possible synonyms by hand, any more than I want to have to list all the functions that a module calls. Instead, what I want for lesson maintenance is something that will tell me when I’ve broken something up by adding, cutting, or moving material.

Systems Programming
anonymous function asynchronous Boolean
callback cognitive load command-line argument
console current working directory destructuring assignment
edge case filesystem filter
globbing idiomatic log message
path promise protocol
scope single-threaded string interpolation
Asynchronous Programming
call stack character encoding class
constructor event loop exception
method method chaining non-blocking execution
promisification UTF-8
Unit Testing
actual result assertion caching
defensive programming design pattern dynamic loading
error (test) exception handler expected result
exploratory programming fail (test) fixture
global variable introspection lifecycle
pass (test) side effect Singleton pattern
test runner throw exception unit test
File Backup
collision cryptographic hash function csv
handler hash code hash function
JSON mock object pipe
race condition stream timestamp
time of check/time of useUTC version control system
Data Tables
column major data frame garbage collection
heterogeneous homogeneous immutable
row major SQL tagged data
test harness
Pattern Matching
base class Chain of Responsibility pattern depth-first search
derived class greedy algorithm query selector
regular expression test-driven development
Parsing Expressions
literal precedence token
well-formed YAML
Page Templates
bare object DOM dynamic scoping
environment lexical scoping stack frame
Visitor pattern
Build Manager
automatic variable build manager build recipe
build rule build stale build target
compiled language cycle directed acyclic graph
dependency driver interpreted language
link pattern rule runnable documentation
Template Method pattern topological order
Layout Engine
attribute cache confirmation bias
coupling DOM selector easy mode
layout engine function signature
File Interpolator
header file loader sandbox
search path shell variable
Module Loader
absolute path alias circular dependency
closure directed graph encapsulate
immediately-invoked function expression namespace plugin architecture
Style Checker
abstract syntax tree dynamic lookup generator function
iterator pattern linter Markdown
walk (tree)
Code Generator
byte code code coverage Decorator pattern
macro nested function
Documentation Generator
accumulator block comment doc comment
line comment slug
Module Bundler
entry point module bundler transitive closure
Package Manager
backward-compatible combinatorial explosion heuristic
manifest patch prune
SAT solver semantic versioning
Virtual Machine
Application Binary Interface assembler assembly code
bitwise operation compiler instruction pointer
instruction set label address op code
register virtual machine word (memory)
Debugger
breakpoint source map

In the wake of posts about Shopify's support for white nationalists and DataCamp's attempts to cover up sexual harassment
I have had to disable comments on this blog. Please email me if you'd like to get in touch.