index.md
1.54 KB
2. Vertical Slices
The spine of this wiki.
A slice documents one realistic UI action end-to-end: from the click in the browser to the row written in the database, passing through every layer in between — the metadata read, the proc invoked, the cache invalidated. Slices are the only place we write narrative prose. Concepts and reference chapters are short by design; slices carry the load.
Slices are ordered by complexity. Each new slice introduces a new framework concept. Re-read earlier slices once you've read later ones — the cross-refs back-fill.
| # | Slice | Concept(s) introduced |
|---|---|---|
| 1 | a CRUD module (Hello World) | modules, forms, master/slave, jurisdiction |
| 2 | multi-tenancy and product editions | sBrandsId/sSubsidiaryId scoping, licence-gated editions |
| 3 | a module with a report | views, report templates, jxls |
| 4 | extending — a custom field | gdsconfigformcustomslave, schema-less extension |
| 5 | extending — a per-customer SQL override | script/客户/, override channel |
| 6 | a hardware-integrated module | xlyPlc, serial, RPC into the press |
| 7 | a module with workflow (deferred) | Activiti, biz_flow, approval — needs a deployment with active flows |
Slices 1–5 are mainstream. Slice 6 is optional for readers who'll never touch hardware. Slice 7 is deferred: it needs a deployment that actually runs an approval flow before it can be traced end-to-end.