- View: Also called a "template", a file that contains markup (like HTML) and optionally additional instructions on how to generate snippets of HTML, such as text interpolation, loops, conditionals, includes, and so on.
- View engine: Also called a "template library" or "templater", ie. a library that implements view functionality, and potentially also a custom language for specifying it (like Pug does).
- HTML templater: A template library that's designed specifically for generating HTML. It understands document structure and thus can provide useful advanced tools like mixins, as well as more secure output escaping (since it can determine the right escaping approach from the context in which a value is used), but it also means that the templater is not useful for anything other than HTML.
- String-based templater: A template library that implements templating logic, but that has no understanding of the content it is generating - it simply concatenates together strings, potenti
// debug config for running project under vscode debugger | |
{ | |
"version": "0.2.0", | |
"configurations": [ | |
{ | |
"trace": true, | |
"name": "Chrome Debug", | |
"type": "chrome", | |
"request": "launch", | |
"url": "http://localhost:8000/", |
9254835974458887629672873635789957411886024698554157393849494864228024962939550688297074527198420261051675205999609689838587412 | |
7948702662533481896767559573369920938242346354580061545409242090168773727371802699309443935396635866263937828773324526334321892 | |
7929250312741837331511829643632683169694074912332726993582394725302853411901337696207186358524323117172520907433878952968176465 | |
9486937364148093931718552300016332142708943190856638524388888569011747617956915519539025796115901484762122047712200094207683584 | |
0703675740855407318047361595661595146837376373951978537785605481083388906490085533348547865459237835407372374738389274773789264 | |
3524314516560200536698529022539598732463389124803873184044464663165630452635665559603483233341839268186056673186867104904449866 | |
3388466377320953222057779182433549144340237502432464295061371141084500222833875925546082542869030852833895137466510262849050187 | |
2359980877010447170873386178573828860442255448874794721230413368694441497441338856684036949118353204002591974711928301953002372 |
This post is in response to the WeekendDevPuzzle of 2022-01-29, which has submissions from people who chose to share their perspectives on the puzzle. I'll be linking this post to this Twitter thread, to avoid polluting the original one.
Unlike the usual peel the onion kind of topics, this one focuses more on how we think & our mental models of architectural decisions. But there's more.
Over the past 15 yrs, programming has become extremely accessible. While that's undoubtedly a good thing, it's become much easier to just rely on best practice, with or without context. Today's puzzle was designed to bring to the discussion table, that context, albeit in a super simplified fashion.
Let's dissect the question, and bring out the core elements of it.