Developer Experience (DX)
The Developer Experience prioritises the specification and implementation of robust, well documented, loosely coupled components & services, integrated into a coherent toolkit open to contributions from diverse skill sets.
Robust: Unit & acceptance tests should a key part of each component
Well Documented: Each component should be adequately documented, sufficient to enable quality improvements and other enhancements
Loosely Coupled Components: The project should, as far as possible, consist of a set of reusable components, assembled into a range of applications and services. These components should strive to be independent , testable and shareable.
Loosely Coupled Services: Shares services like authentication, data store, presence, analytics should be shared across the tutors components and potentially decoupled, removed, or substituted as appropriate.
Coherent Toolkit: The role of each Component/Service should be clear and potentially substitutable by alternatives fulfilling equivalent roles.
Diverse Skill Sets: The project should be open to all skill levels, with a welcoming and supportive environment.
These tools are used to harvest a tutors course folder, for instance this example course here:
… and transform the contents into web experience. If using a system such as Netlify, the process is documented here. The generators can also be run from the command line:
These will generate, respectively:
A JSON encapsulation of the course, suitable for publication on a CDN based edge distribution platform (Netlify, Vercel)
A static site, browsable locally.
These are generated into the
json folders inside the project folder.
This is the tutors course parser, packaged as a reusable component:
This abstracts the course structure, constructing a traversable, recursive data structure comparable to an Abstract Syntax Tree (AST) for the course
This is the JSON generator:
This will use
tutors-lib to parse a course, traverse the generated AST and emit the JSON course.
This site the HTML generator:
It will also use
tutors-lib to generate a static site
The front end course reader application:
This is a Svelte / Typescript application.
The major toolkits used in the application:
Time / Live
Front end to tutors time and tutors live services:
Uses the same toolkits are the Reader application +