Skip to content

Commit 07e0752

Browse files
authored
Refine design principle and remove web development parallels
Removed redundant explanation of web development parallels and streamlined the design principle description.
1 parent f3dd906 commit 07e0752

1 file changed

Lines changed: 19 additions & 19 deletions

File tree

logs/2026-04-log-t2-core-and-extension-a-design-principle-for-ifid-taxonomy.qmd

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,25 @@ What specific values, tags, or categories the lab recognises within each of
4949
these fields — for example, which tags are valid under veg/non-veg declarations
5050
— is a separate question. That will be documented as each category is analysed.
5151

52+
::: {.column-margin}
53+
**A parallel from web development**
54+
55+
Web frameworks separate built-in features from optional add-ons using the same
56+
pattern. React ships with component rendering and state management; everything
57+
else — routing, form handling, data fetching — is a plugin you bring in.
58+
Django's ORM and URL routing are core; authentication backends, payment
59+
integrations, and admin themes are installed as apps. WordPress's post/page/taxonomy
60+
model is core; anything else is a plugin.
61+
62+
The shared logic: the framework defines a stable object (a component, a model,
63+
a post) and leaves the surface open for extension. Downstream developers attach
64+
to that surface without modifying the object itself.
65+
66+
IFID follows the same pattern. The ingredient record is the stable object.
67+
The extension surface is open. Third parties attach their metadata to the record
68+
— they do not redefine what the record is.
69+
:::
70+
5271
## What belongs in extensions
5372

5473
Extensions are metadata that a specific use case adds to the core. They are not
@@ -84,22 +103,3 @@ what goes beyond it. Those analyses will be recorded as separate logs.
84103

85104
This log records only the design principle: the taxonomy distinguishes between
86105
core fields and extension fields, and the extension surface is open by design.
87-
88-
::: {.column-margin}
89-
**A parallel from web development**
90-
91-
Web frameworks separate built-in features from optional add-ons using the same
92-
pattern. React ships with component rendering and state management; everything
93-
else — routing, form handling, data fetching — is a plugin you bring in.
94-
Django's ORM and URL routing are core; authentication backends, payment
95-
integrations, and admin themes are installed as apps. WordPress's post/page/taxonomy
96-
model is core; anything else is a plugin.
97-
98-
The shared logic: the framework defines a stable object (a component, a model,
99-
a post) and leaves the surface open for extension. Downstream developers attach
100-
to that surface without modifying the object itself.
101-
102-
IFID follows the same pattern. The ingredient record is the stable object.
103-
The extension surface is open. Third parties attach their metadata to the record
104-
— they do not redefine what the record is.
105-
:::

0 commit comments

Comments
 (0)