OED Developer Documentation
Technology Overview
Documentation overview
Developer documentation
Information
Starting
Codebase Info
Further Details
Version Release
This information is for developers of the OED software so this information is not usually of interest to a general user.
The update to the Redux Toolkit (RTK) is not yet reflected in the documentation. As a result, some information may be out of date.
Frontend Technologies
Some of the most complex technologies we use are those that turn the code we write - TypeScript and ES6 JavaScript - into tiny, optimized code that the browser can execute. This is known as packing, tree-shaking, and uglification. See the diagram below for a quick overview of how this works.
After this process, our hundreds of source files and dependencies are converted into a single multi-megabyte file which will be transmitted to our users over HTTP. Plugins within Webpack, such as the LodashModuleReplacementPlugin, further optimize the size of this bundle.
The major technology here is TypeScript, a way to provide static guarantees about code - that is, it catches your errors before the code is ever run. For instance, the following code is valid JavaScript but invalid TypeScript:
let v = 0;
doSomethingWithInt(v);
v = "Hello, world!";
doSomethingWithInt(v);
In JavaScript, you'll get a runtime error or weird behavior. In TypeScript, the compiler will tell you you're not allowed to do that.