GH GambleHub

Kod hökmünde resminamalar

1) Binagärlik ýörelgeleri

1. Hakykatyň ýeke-täk çeşmesi. Resminamalar, shemalar, diagrammalar, API aýratynlyklary, sözlük - koduň gapdalyndaky VCS-de.
2. Awtomatiki hil barlagy. Linterler, orfografiýa, baglanyşyklary barlamak, kod mysallarynyň doctest.
3. Artefakt hökmünde ýygnamak. Doc-sahypa, PDF/ebook, "gurlan maslahatlar" - goýberilen paýlaýjynyň bir bölegi.
4. Wersiýalaşdyrmak we yzarlamak. Dok ulgamyň özüni alyp barşyny üýtgedýän şol bir PR dolandyrýar; ADR komitlere birikdirildi.
5. Rollar boýunça elýeterlilik. Jemgyýetçilik/içerki, Runbook 'we on-call, integratorlar üçin API bölekleri.
6. Iň az el işi. Mazmuny, shemalary, garaşlylyk grafalaryny, kod böleklerini döretmek - çeşmelerden.

2) Resminamalaryň görnüşleri we repo gurluşy

Maslahat berilýän düzüliş:

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 - durmuşa geçirmezden ozal çözgütleri ara alyp maslahatlaşmak.
  • ADR - kesgitlenen binagärlik çözgüdi (kontekst → çözgüt → netijeler → alternatiwalar).
  • Runbook/Playbook - wakalar we amallar üçin ädimme-ädim görkezmeler.
  • How-To/FAQ - wezipe → ädimler → netijäni barlamak.
  • API-spekleri - OpenAPI/AsyncAPI/Proto SDK we Dock döretmek çeşmesi hökmünde.
  • Diagrammalar kod hökmünde Mermaid/PlantUML/Graphviz/C4.

3) Stil we standartlar

Stil boýunça bitewi gollanma (äheň, terminologiýa, sözbaşy şablonlary, mysallar).
Kanoniki adalgalar (EN/RU), aliaslar, gadagan formulalar bilen sözlük.
Belgiler we baglanyşyklar: ADR/RFC/kod arasyndaky hemişelik labyrlar, kross-salgylanmalar.

YAML frontmatterindäki meta-maglumatlar:
yaml title: "Payment Service: Overview"
owner: "payments-team"
reviewers: ["platform", "security"]
last_review: 2025-10-15 tags: ["architecture","payments","pci"]

4) Ýygnamak we çap etmek

Statik web sahypalarynyň generatorlary:
  • MkDocs (Material) - ýönekeý, amatly, gowy nawigasiýa we gözleg.
  • Docusaurus - resminamalaryň wersiýasy we docs + blog; MDX komponentleri.
  • Antora - uly platformalar üçin modully resminamalar.
mkdocs mysaly. yml (bölek):
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) Diagrammalar we shemalar kod hökmünde

Mermaid (yzygiderliligiň mysaly):
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 konteýnerleri):

@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 saýta render edilýär; olardan SDK/müşderiler/mysallar emele gelýär.

6) Hil: linterler we resminamalar synaglary

Linterler/barlaglar:
  • markdownlint - Markdown formatlamak düzgünleri.
  • Vale - stil/terminologiýa/äheň.
  • Spellcheck - orfografiýa (RU/EN sözlükleri).
  • Linkcheck - daşarky/içerki baglanyşyklar, labyrlar.
  • Doctest/Examples - kod böleklerini ýerine ýetirmek, CLI/API wersiýalaryny sinhronlamak.
  • Schematest - OpenAPI/AsyncAPI/JSON Schema/Proto.
GitHub Actions mysaly (bölek):
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 mysaly (Python):
python docs/snippets/calc. py def add(a,b):
"""Returns sum of a and b.

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

CI 'python -m doctest docs/snippets/calc. py`.

7) Amallar: RFC/ADR/synlar we SLA köne

RFC akymy: inisiator → taslama → çekişme → çözgüt → meýilnama → implementasiýa → post-faktum retro.
ADR akymy: saýlamagy gysgaça ýazýarys + RFC/synaglary baglanyşyk.
Gözden geçirme amallary: çeşme - 'CODEOWNERS' + 'doc-owners. yaml`.
SLA könelişmek üçin: möhüm makalalarda 'last _ review' bar we N günden soň rewýuda alert bar.

ADR şablony:
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) Lokalizasiýa (i18n) we köp dillilik

Lokalizasiýa strategiýasy: asyl dil (EN ýa-da RU) → terjime '18n/< locale>'.
Açarlar we kontekst: sözbaşylar/bölekler üçin "stabl-ID" saklamak.
Barlamak: ädim 'missing-keys', synchronization üçin alertler.
Lokallaryň stilleri: lokal sözbaşylar, kabul ederliksiz kalkalar, lokal dildäki kod mysallary UI.

9) Önüm bilen integrasiýa

Içerki kömek (in-app docs): MDX komponentleri, kontekstli maslahatlar.
Çykyş wersiýasy: bellikler/şahalar 'docs/vX. Y ', saýt selector wersiýalary bilen.
Bölümleriň awtogenerasiýasy: OpenAPI/AsyncAPI, GraphQL SDL, CLI '-help' -den.
Changelog kod hökmünde: PR bellikleri boýunça awtomatiki nesil (feat/fix/docs/breaking).

10) Dokumentleriň ölçegleri we syn edilmegi

Docs SLO: ýygnalan/çap edilen wagty, sahypanyň aptaimi, PR-den soň resminamanyň peýda bolan wagty.
Artefaktlar bilen örtülmegi: ADR bilen hyzmatlaryň paýy, mysallar bilen endpointleriň paýy, "saglyk barlagy" bilen Runbook 'laryň paýy.
Ulanyjy metrikleri: jogapsyz gözleg soraglary, gözlemek çuňlugy, içerki maslahatlaryň CTR-leri.
Hil: linterleriň ýalňyşlyklary/1000 setirler, "döwülen baglanyşyklar", köne makalalaryň paýy.

11) Howpsuzlyk we gizlinlik

Repoda syrlar we PD gadagan edilýär; syr we gizlemek üçin linterler.
SSO arkaly içerki sahypa girmek; jemgyýetçilik bölümleri aýrylýar.
Eksport düzgünleri: Içerki baglanyşyksyz PDF/arhiwler, gizlin resminamalar üçin suw bellikleri.
Skrinshotlaryň arassaçylygy: awtomatiki adynyň aýdylmazlygy (mok-data/blur).

12) Patternler

Docs in PR. Özüni alyp barşyna täsir edýän islendik üýtgeşme şol bir PR-daky doklaryň täzelenmegini öz içine alýar.
Şablonlar şertnama hökmünde. Hyzmat/endpoint/dataset döretmek - doklaryň taýýarlyklaryny goýýan generator arkaly.
Diagrammalar kod hökmünde. Islendik çyzgy - redaktirlenip bilinjek çeşme, CI-de SVG/PNG ýygnamak.
Docs Preview. PR üçin saýtyň deslapky gözden geçirilişine salgylanmak bilen bot teswirleri.
Koddaky doklar. Sahypany görkezýän düşündirişler ('@doc: adr/0007').

13) Anti-patternler

Wiki/Notion-daky resminamalar kodyň gapdalynda wersiýasyz → rasinhronizasiýa.
Çeşmesiz skrinshotlar → awtomatiki täzelenip bilmezlik.
Dilden söhbetdeşliklerde we şahsy faýllarda "gizlin" bilimler.
Mysalsyz we üýtgeşikliksiz generikler → peýdasyz sahypalar.
Eýeleriniň ýoklugy we 'last _ review' → könelişen gar.
El bilen ýygnamak we neşir etmek → doklaryň döwük we seýrek çykmagy.

14) Awtomatlaşdyrmagyň mysallary

Spekulýalardan API bölümini döretmek:
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
Baglanyşyklary we labyrlary barlamak:
bash linkcheck --config. linkcheck. yml site/
Deslapky bot (PR-daky düşündiriş):
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) Arhitektoryň çek-sanawy

1. Koduň gapdalyndaky doklaryň ýeke-täk repozitory we düşnükli gurluşy barmy?
2. Şablonlar (RFC/ADR/Runbook/How-To) we sözlük beýan edilýärmi?
3. Linterler (markdownlint, Vale), spellcheck, linkcheck we doctest goşuldymy?
4. Diagrammalar we shemalar - kod ýaly, CI-de ýygnamak?
5. API spekleri (OpenAPI/AsyncAPI/Proto) tassyklanýar we sahypa render edilýär?
6. PR üçin docs-preview we merge boýunça awto-neşir gurnaldymy?
7. Sahypalaryň köne (last_review) we "eýeleri" üçin SLA barmy?
8. Metrikler: örtük, linter ýalňyşlyklary, döwülen baglanyşyklar, gözleg "nol" soraglary?
9. Howpsuzlyk syýasaty: syrlar gadagan, SSO, suw bellikleri/eksport?
10. Lokalizasiýa şahalar bilen dolandyrylýar we geçişler üçin barlanýar?

Netije

Docs-as-Code resminamany "faktumdan soňky belliklerden" işläp düzmegiň iş artefaktyna öwürýär: wersiýalanýan, synagdan geçirilýän we getirilýän. Bu çemeleşme bilen bilim koduň ýanynda ýaşaýar, üýtgeşmeler aç-açan bolýar we ulanyjylar we inersenerler zerur bolanda degişli görkezmeleri, shemalary we mysallary alýarlar. Bu bolsa iş töwekgelçiligini peseldýär, onbording işini çaltlaşdyrýar we tutuş platforma boýunça çözgütleriň hilini ýokarlandyrýar.

Contact

Biziň bilen habarlaşyň

Islendik sorag ýa-da goldaw boýunça bize ýazyp bilersiňiz.Biz hemişe kömek etmäge taýýar.

Telegram
@Gamble_GC
Integrasiýany başlamak

Email — hökmany. Telegram ýa-da WhatsApp — islege görä.

Adyňyz obýýektiw däl / islege görä
Email obýýektiw däl / islege görä
Tema obýýektiw däl / islege görä
Habar obýýektiw däl / islege görä
Telegram obýýektiw däl / islege görä
@
Eger Telegram görkezen bolsaňyz — Email-den daşary şol ýerden hem jogap bereris.
WhatsApp obýýektiw däl / islege görä
Format: ýurduň kody we belgi (meselem, +993XXXXXXXX).

Düwmäni basmak bilen siz maglumatlaryňyzyň işlenmegine razylyk berýärsiňiz.