Przejdź do głównej zawartości

Moduły backendu

Każdy moduł backendu odpowiada za jedną zdolność biznesową i nigdy nie sięga do wnętrza innego modułu. To, gdzie leży kod modułu, jest odpowiedzią platformy, a nie ścieżką wartą zapisania: większość modułów to pakiety workspace w packages/modules/<id>/, kilka należy do hosta, a mapa modułów wskazuje pakiet, z którego pochodzi każdy z nich. Poniższe strony opisują poszczególne moduły tak, aby mogły z nich korzystać dwie grupy odbiorców:

  • Programiści, którzy chcą rozszerzyć moduł — wewnętrzne encje, serwisy i punkty rozszerzeń, w które mogą się wpiąć.
  • Product Ownerzy, którzy chcą zrozumieć, co moduł robi i które przepływy obsługuje, bez czytania kodu.

Dokument OpenAPI pod GET /api/v1/_openapi.json jest żywym kontraktem każdej powierzchni HTTP wymienionej tutaj; sposób korzystania z niego opisują Kontrakty API.

Mapa modułów​

Mapa jest generowana — jeden wiersz na każdy moduł zarejestrowany przez platformę, ze zdolnością pobraną z front matter description danej strony i pakietem, z którego moduł pochodzi. Zobacz Mapę modułów.

Strony referencyjne​

Obok strony opisowej każdego modułu witryna niesie stronę referencyjną, również generowaną: uprawnienia deklarowane przez moduł wraz z ich etykietami, akcje palety poleceń i ekran, który każda z nich otwiera, ustawienia, które moduł posiada, informację, czy operator może go wyłączyć i jaka jest wartość domyślna tej kontrolki, od czego moduł zależy oraz pakiet, z którego pochodzi. Wszystko to znajduje się w manifeście samego modułu, więc strona referencyjna jest renderowana z manifestu i z niczego napisanego ręcznie — dlatego nie może być sprzeczna z platformą. Nawigacja prowadzi do niej z wpisu samego modułu, a moduł, o którym nikt jeszcze nie napisał prozy, ma tam swoją stronę referencyjną pod własnym identyfikatorem.

Pisz prozę o tym, co moduł robi; to, co deklaruje, zostaw stronie referencyjnej, zamiast powtarzać to ponownie. Powtórzona deklaracja to zdanie, które dezaktualizuje się przy najbliższej edycji manifestu, a nic tego nie zgłosi.

Mapa jest generowana, ponieważ była błędna. Trzy utrzymywane ręcznie listy opisywały jedną populację — ta tabela, boczne menu i strony na dysku — i wszystkie trzy były sprzeczne z platformą i ze sobą nawzajem: 23 zarejestrowane moduły nie miały tutaj wiersza, osiem napisanych stron nie było osiągalnych z żadnej nawigacji, a nic w repozytorium nie potrafiło tego zauważyć. Dodanie modułu nie dotyka dziś żadnego pliku w docs/ poza stroną samego modułu.