Om det här projektet
Projektdokumentation för den här boken: hur den är sammansatt, hur du bygger och kontrollerar den och var sanningskällan finns. För själva boken, se innehållsförteckningen.
Projektkarta
- Boken: publiceras i fyra lokaler under
locales/; se spec/locales.md. Den här lokalen,en-gb-oxendict/topics/(63 filer),en-gb-oxendict/front-matter/och bilagorna i del 9 är den handskrivna källan;en-001,en-gbochen-ushärleds ur den. - Sanningskälla:
spec/i repositoryts rot (publiceras inte på webbplatsen). Strukturen deklareras ispec/structure.md, skrivreglerna ispec/conventions.mdoch stavningen ispec/oxford-spelling.md. Allt annat byggs för att stämma överens. - Verktyg:
tools/localize.pyhärleder de andra tre lokalerna;tools/gen_nav.pygenererar navigeringen;tests/validate.pyupprätthåller specifikationen;justfileknyter ihop dem. - Vägledning för bidragsgivare:
AGENTS.mdi repositoryts rot och guiderna i bidragsavsnittet.
Bygga och kontrollera
Valideringssviten körs på Python 3 utan andra beroenden och utan nätverksåtkomst. Uppgifter körs via just.
just test # validate structure, style, links, and spec-vs-disk
just nav # regenerate the generated navigation files
just check # nav, then test
just stats # topic and word counts Det här repositoryt innehåller bokens innehåll och specifikation. Det renderas till en webbplats av det separata repositoryt software-engineering-metrics.github.io.
Hur specifikationsdriven utveckling fungerar här
Specifikationen kommer först. spec/structure.md deklarerar vilka ämnen som finns och hur de numreras. spec/conventions.md deklarerar hur ämnen ska skrivas.
Ämnen författas för att uppfylla båda. tools/gen_nav.py härleder navigeringen ur ämnena och tests/validate.py kontrollerar resultatet mot specifikationen igen.
Om ett ämne och specifikationen någonsin glider isär misslyckas ett test, och det är signalen att räta upp dem igen.
Det håller avdriften borta: en ändring är först “klar” när specifikationen, ämnena, den genererade navigeringen och testerna alla är överens.
Designbeslut värda att känna till
- Platta, decimalnumrerade ämnen. Filerna är
locales/<locale>/topics/PP-CC-slug.md, samma slug i varje lokal. Delar är heltal; ämnen är decimaltal; N.0 är en dels introduktion. Det håller identifierarna stabila och låter verktyg sortera och gruppera utan ett katalogträd. - En handskriven lokal, tre härledda.
en-gb-oxendictär Oxford-stavning, de flesta internationella standardiseringsorganens husstil (sespec/oxford-spelling.md);en-001,en-gbochen-ushärleds mekaniskt ur den, så att översättningar aldrig glider från källan. - Genererad navigering. Innehållsförteckningen, innehållssidorna och ämnesregistret genereras, så de glider aldrig från ämnena.
- Offline-tester utan beroenden. Sviten använder bara standardbiblioteket, så den körs överallt, även i CI och pre-commit-hooks.
- Korsreferenser förblir ren text. Prosan hänvisar till ämnen med deras decimalnummer (“se ämne 2.1”), som specifikationen kräver; webbplatsen som renderar ansvarar för att göra hänvisningarna till länkar.
- Inga långa tankstreck, enligt regel och enligt test. Ett medvetet stilval, upprätthållet så att det förblir sant när boken växer.
- Varje mätetalsfamilj namnger sin egen manipulationsväg. Det här är den enda regeln i mallen som saknar motsvarighet i systerprojektet
software-engineering-guide: den finns eftersom hela bokens ämne är mätning, så risken med själva mätningen måste vara förstklassig, inte underförstådd.
Vidare läsning
- Författande : att skriva och redigera ämnen.
- Navigering : hur de genererade filerna fungerar.
- Testning : vad testerna kontrollerar och hur du åtgärdar fel.
- Exempel : små, konkreta exempel.
- Ändringslogg : historiken över anmärkningsvärda ändringar.