GH GambleHub

Kod kimi sənədləşdirmə

1) Memarlıq prinsipləri

1. Həqiqətin vahid mənbəyi. Sənədlər, sxemlər, diaqramlar, API spesifikasiyaları, sözlük - kodun yanında VCS-də.
2. Avtomatik keyfiyyət yoxlama. Linterlər, orfoqrafiya, linklərin yoxlanılması, kod nümunələrinin doctest.
3. Bir artefakt kimi montaj. Dock saytı, PDF/ebook, «daxili ipuçları» - buraxılış payplaynın bir hissəsidir.
4. Version və izləmə qabiliyyəti. Doc sistemin davranışını dəyişdirən eyni PR-ni idarə edir; ADR kommitlərə bağlıdır.
5. Rollara görə əlçatanlıq. Public/daxili, Runbook 'və on-call altında, inteqratorlar üçün API spins.
6. Minimum əl işi. İçindəkilərin, sxemlərin, asılılıq qrafiklərinin, kod fraqmentlərinin generasiyası - mənbələrdən.

2) Sənəd növləri və repo strukturu

Tövsiyə olunan düzən:

docs/
index. md architecture/
overview. md contexts/( C4, contexts, boundaries)
components/
data/
schemas/ (JSON Schema, Avro, Proto)
lineage/ (dataflow. md, dq-policies. md)
security/
threat-models/
key-management. md api/
openapi/ (OpenAPI. yaml)
asyncapi/ (.yaml)
grpc/ (.proto)
processes/
rfc/ (RFC-YYYY-XX-Title. md)
adr/ (ADR-0001-title. md)
runbooks/ (incident-.md)
playbooks/
sops/ (standard operating procedures)
product/
user-guides/
how-to/
faq/
i18n/
en/, en/, tr/# assets localization/
diagrams/ (Mermaid, PlantUML, Graphviz)
images/
_templates/ (RFC/ADR/Runbook templates)
Artefaktlar:
  • RFC - tətbiq edilməzdən əvvəl həllərin müzakirəsi.
  • ADR - sabit memarlıq həlli (kontekst → həll → nəticələri → alternativ).
  • Runbook/Playbook - hadisələr və əməliyyatlar üçün addım-addım təlimat.
  • How-To/FAQ - tapşırıq → addımlar → nəticənin yoxlanılması.
  • API Specks - OpenAPI/AsyncAPI/Proto SDK və Dock Generation mənbəyi kimi.
  • Kod kimi diaqramlar Mermaid/PlantUML/Graphviz/C4.

3) Stil və standartlar

Vahid üslub təlimatı (ton, terminologiya, başlıq şablonları, nümunələr).
Kanonik terminlər (EN/RU), aliaslar, qadağan edilmiş ifadələr olan lüğət.
Nömrələnmə və linklər: ADR/RFC/kod arasında daimi çapraz referanslar.

YAML-frontmatterdə meta məlumat:
yaml title: "Payment Service: Overview"
owner: "payments-team"
reviewers: ["platform", "security"]
last_review: 2025-10-15 tags: ["architecture","payments","pci"]

4) Montaj və nəşr

Statik sayt generatorları:
  • MkDocs (Material) - sadə, rahat, yaxşı naviqasiya və axtarış.
  • Docusaurus - sənədlərin və docs + blogun versiyası; MDX komponentləri.
  • Antora - böyük platformalar üçün modul sənədləşmə.
mkdocs nümunəsi. yml (fraqment):
yaml site_name: Platform Docs theme:
name: material features: [navigation. tabs, content. code. annotate, search. suggest]
plugins:
- search
- mermaid2
- mkdocs-awesome-pages-plugin
- macros nav:
- Review: index. md
- Architecture:
- Overview: architecture/overview. md
- Data: architecture/data/index. md
- API:
- REST: api/openapi/index. md
- Events: api/asyncapi/index. md

5) Diaqramlar və sxemlər kimi kod

Mermaid (ardıcıllıq nümunəsi):
mermaid sequenceDiagram participant C as Client participant G as API Gateway participant S as Service
C->>G: POST /orders
G->>S: createOrder()
S-->>G: 201 + order_id
G-->>C: 201 Created
PlantUML (C4 konteynerləri):

@startuml
!include <C4/C4_Container>
Person(user, "User")
System_Boundary(system, "Platform"){
Container(api, "API", "HTTP")
Container(db, "DB", "Postgres")
}
Rel(user, api, "Uses")
Rel(api, db, "CRUD")
@enduml

OpenAPI/AsyncAPI site render; bunlardan SDK/müştərilər/nümunələr yaradılır.

6) Keyfiyyət: linterlər və sənədləşmə testləri

Linters/yoxlamalar:
  • markdownlint - Markdown formatlaşdırma qaydaları.
  • Vale - stil/terminologiya/ton.
  • Spellcheck - orfoqrafiya (RU/EN lüğətləri).
  • Linkcheck - xarici/daxili bağlantılar, çapalar.
  • Doctest/Examples - kod fraqmentlərinin icrası, CLI/API versiyalarının sinxronizasiyası.
  • Schematest - OpenAPI/AsyncAPI/JSON Schema/Proto validasiyası.
GitHub Actions nümunəsi (fraqment):
yaml name: docs-ci on: [pull_request, push]
jobs:
lint:
runs-on: ubuntu-latest steps:
- uses: actions/checkout@v4
- run: npm i -g markdownlint-cli
- run: markdownlint "docs//.md"
- run: pipx run codespell docs          true
- run: pipx run linkchecker docs/site          true build:
runs-on: ubuntu-latest steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
- run: pip install mkdocs-material mkdocs-mermaid2-plugin
- run: mkdocs build --strict preview:
if: github. event_name == 'pull_request'
runs-on: ubuntu-latest steps:
- uses: actions/checkout@v4
- run: mkdocs build
- uses: actions/upload-pages-artifact@v3
Doctest nümunə (Python):
python docs/snippets/calc. py def add(a,b):
"""Returns sum of a and b.

>>> add(2,3)
5
"""
return a+b

CI başlatır 'python -m doctest docs/snippets/calc. py`.

7) Proseslər: RFC/ADR/rəylər və köhnəlmiş SLA

RFC flow: təşəbbüskar → layihə → müzakirə → həll → plan → implementation → post-faktum retro.
ADR flow: seçimi qısaca qeyd + RFC/təcrübələrə keçid.
Review-prosedurları: mənbə - 'CODEOWNERS' + 'doc-owners. yaml`.
köhnəlmiş SLA: kritik məqalələr N gün sonra review 'last _ review' və alert var.

ADR şablonu:
markdown
ADR-0007: Select Event Log - Avro + Schema Registry
Date: 2025-10-31
Status: accepted
Context: the evolution of schemes without breaking consumers is required.
Solution: Avro + Schema Registry, backward compatibility.
Implications: tooling, compatibility tests, N services migration.
Alternatives: JSON Schema, Protobuf (rejected due to X/Y).

8) Lokalizasiya (i18n) və çoxdilli

Lokalizasiya strategiyası: orijinal dil (EN və ya RU) → tərcümə filialları 'i18n/< locale>'.
Açarlar və kontekst: başlıqlar/fraqmentlər üçün «sabit ID» saxlayın.
Yoxlamalar: «missing-keys» addımı, rassinxronizasiya üçün alertlər.
Lokal üslublar: lokal sözlər, qəbuledilməz qələmlər, yerli UI dilində kod nümunələri.

9) Məhsulla inteqrasiya

Daxili yardım (in-app docs): MDX komponentləri, kontekst ipuçları.
Buraxılışlar üzrə versiya: tags/filiallar 'docs/vX. Y ', selector versiyaları ilə bir sayt.
Bölmələrin avtogenerasiyası: OpenAPI/AsyncAPI, GraphQL SDL, CLI '-help'.
Changelog bir kod kimi: PR etiketlərinə görə avtomatik generasiya (feat/fix/docs/breaking).

10) Metrika və sənədlərin müşahidə edilməsi

Docs SLO: montaj/nəşr vaxtı, saytın aptaym, PR sonra sənədin görünüş vaxtı.
Artefaktlarla əhatə: ADR ilə xidmətlərin payı, nümunələrlə endpointlərin payı, «sağlamlıq yoxlaması» ilə Runbook-ların payı.
Xüsusi metriklər: cavabsız axtarış sorğuları, baxış dərinliyi, daxili ipuçları CTR.
Keyfiyyət: linter səhvləri/1000 sətir, «qırıq bağlantılar», köhnəlmiş məqalələrin payı.

11) Təhlükəsizlik və məxfilik

Repo sirləri və PD qadağan; sirləri və maskalanma linters.
SSO vasitəsilə daxili sayta giriş; ictimai bölmələr ayrılır.
İxrac qaydaları: PDF/daxili linksiz arxivlər, məxfi sənədlər üçün su işarələri.
Ekran görüntüləri: avtomatik anonimləşdirmə (mok-data/blur).

12) Nümunələr

Docs in PR. Davranışı təsir edən hər hansı bir dəyişiklik eyni PR-də dock yeniləməsini əhatə edir.
Şablonlar müqavilə kimi. Servisin/end point/datasetin yaradılması - dok boşluqlarını qoyan generator vasitəsilə.
Diaqramlar kod kimi. Hər hansı bir şəkil - redaktə edilə bilən mənbə, CI-də SVG/PNG montajı.
Docs Preview. PR üçün saytın preview link ilə bot şərh.
Doc-links kodda. Veb saytına render edilən mənbələrdə ('@doc: adr/0007') şərhlər.

13) Anti-nümunələr

Kodun yanında versiyasız wiki/Notion sənədləşdirilməsi → rassenkronizasiya.
Mənbə olmadan ekran görüntüləri → avtomatik yeniləmək mümkün deyil.
Şifahi söhbətlərdə və şəxsi fayllarda «gizli» biliklər.
Nümunələr və invariantlar olmadan Generics → yararsız səhifələr.
Sahiblərinin olmaması və 'last _ review' → köhnəlmiş uçqun.
Əl montaj və nəşr → qırıq və nadir boşaltma dokları.

14) Avtomatlaşdırma nümunələri

Spec-dən API bölməsinin generasiyası:
bash build. sh scripts/render-openapi. sh api/openapi/.yaml > docs/api/openapi/index. md scripts/render-asyncapi. sh api/asyncapi/.yaml > docs/api/asyncapi/index. md
Link və lövbərlərin yoxlanılması:
bash linkcheck --config. linkcheck. yml site/
Preview bot (PR şərhi):
yaml
- name: Deploy Preview run: mkdocs build && npx serve -s site -l 5000 &
- name: Comment with URL uses: peter-evans/create-or-update-comment@v4 with:
issue-number: ${{ github. event. pull_request. number }}
body: "Preview: http ://preview- $ {{github. run_id }}.local"

15) Memarın yoxlama siyahısı

1. Kod və başa düşülən quruluşun yanında tək bir dok anbarı varmı?
2. Təsvir şablonları (RFC/ADR/Runbook/How-To) və sözlük?
3. Linters (markdownlint, Vale), spellcheck, linkcheck və doctest daxil?
4. Diaqramlar və sxemlər - CI-də yığma kodu kimi?
5. API-spekulyasiyaları (OpenAPI/AsyncAPI/Proto) saytda təsdiqlənir və render olunur?
6. PR və avto nəşr merge üçün docs-preview təşkil?
7. SLA köhnəlmiş (last_review) və səhifə «sahibləri» var?
8. Metriklər: örtük, linter səhvləri, sındırılmış bağlantılar, axtarış «sıfır» sorğular?
9. Təhlükəsizlik siyasəti: sirləri qadağan, SSO, su işarələri/ixrac?
10. Lokalizasiya filiallarla idarə olunur və yoxlanılır?

Nəticə

Docs-as-Code sənədləri «postfaktum qeydlərindən» iş inkişaf artefaktına çevirir: versiya edilə bilən, sınaqdan keçirilə bilən və çatdırıla bilən. Bu yanaşma ilə bilik kodun yanında yaşayır, dəyişikliklər şəffafdır və istifadəçilər və mühəndislər lazım olduqda aktual təlimatlar, sxemlər və nümunələr alırlar. Bu əməliyyat risklərini azaldır, bağlama sürətləndirir və platforma üzrə həllərin keyfiyyətini yaxşılaşdırır.

Contact

Bizimlə əlaqə

Hər hansı sualınız və ya dəstək ehtiyacınız varsa — bizimlə əlaqə saxlayın.Həmişə köməyə hazırıq!

Telegram
@Gamble_GC
İnteqrasiyaya başla

Email — məcburidir. Telegram və ya WhatsApp — istəyə bağlıdır.

Adınız istəyə bağlı
Email istəyə bağlı
Mövzu istəyə bağlı
Mesaj istəyə bağlı
Telegram istəyə bağlı
@
Əgər Telegram daxil etsəniz — Email ilə yanaşı orada da cavab verəcəyik.
WhatsApp istəyə bağlı
Format: ölkə kodu + nömrə (məsələn, +994XXXXXXXXX).

Düyməyə basmaqla məlumatların işlənməsinə razılıq vermiş olursunuz.