Brief Tech Terminology
I always forget which way is up when I jump back into a programming project. I often just want to know where something roughly fits, help re-build my conceptual model, and get to work. There's not enough plain english bring-me-back-up-to-speed in the project's descriptions to suffice.
Writing terms to help my future self:
Typescript
Makes Javascript less error prone becauase it's strict about the type of variables used during programming. Is a superset of JS and typescript code gets transpiled/converted to regular JS.
GraphQL
A standard for how frontends ask a designated single endpoint (eg. /graphql) for data. That endpoint and server can be whatever language to respond with data formatted to graphql standards.
GoLang
Compiles down to machine language so it skips the line by line interpretation of the code by an interpreter. Statically typed means the type errors are picked up sooner. Strongly typed means you can't change the type of a variable once it's set.
Nuxt
It's a set of conventions and helper code for VueJS. If you only need a tiny widget on a page, vue alone could work, but for a full web app nuxt makes it easier. Reminds me of Rails.
Vue && React
Plain old Javascript is hard to make web apps. Vue makes it easy to alter the HTML document a user is viewing in a speedy way.
Javascript (JS)
A programming language that started out only for the browser. Web apps made it more coveted. Node.JS then allowed the language to be run on the backend.
MongoDB
A type of database where you store documents (large JSON esque things) inside collections. Good for retrieving. Joins not possible.
NoSQL
Refers to pretty much anything not old school relational databases like Mysql or Postgres. Good at horizontal scaling.
Axios
Is an http client that allows your frontend JS code to make requests to external or internal endpoints.
Webpack
JS used to be small pieces of code in the browser. Then people grouped and shared code. NPM made "modularized" pieces of JS code widespread. While easy to develop with, browsers don't know what to do with this module business. Webpack slurps in all the modules the frontend app needs and spits out a file that the browser can read.
Babel
Allows you to write JS with the newer features and outputs older style JS that can be used by a greater number of browsers.
ElectronJS
Write JS code to make desktop apps. Tradeoff is larger resource requirements.