GH GambleHub

დოკუმენტაცია კოდის სახით

1) არქიტექტურული პრინციპები

1. ჭეშმარიტების ერთი წყარო. დოკუმენტები, სქემები, დიაგრამები, API სპეციფიკაციები, ტერმინები - VCS- ში კოდის გვერდით.
2. ხარისხის ავტომატური შემოწმება. ლინტერები, მართლწერა, ბმულების შემოწმება, კოდის მაგალითები.
3. შეკრება, როგორც არტეფაქტი. DOK საიტი, PDF/ebook, „ჩაშენებული მინიშნებები“ არის გამოშვებული რულონის ნაწილი.
4. ვერსია და ტრეკირება. დოქი მართავს იმავე PR- ს, რომელიც ცვლის სისტემის ქცევას; ADR უკავშირდება კომუნებს.
5. როლებისთვის წვდომა. საზოგადოებრივი/შიდა, Runbook 'და on-call, API სპეკები ინტეგრატორებისთვის.
6. მინიმალური სახელმძღვანელო. შინაარსის, სქემების, დამოკიდებულების გრაფიკების, კოდების ფრაგმენტების წარმოქმნა წყაროებიდან არის.

2) დოკუმენტების ტიპები და რეპო სტრუქტურა

რეკომენდებული განლაგება:

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)
არტეფაქტები:
  • RFC - განსახორციელებლად გადაწყვეტილების განხილვა.
  • ADR - ჩაწერილი არქიტექტურული გადაწყვეტა (კონტექსტი - გამოსავალი - შედეგები - ალტერნატივა).
  • Runbook/Playbook - ეტაპობრივი ინსტრუქციები ინციდენტებისა და ოპერაციებისთვის.
  • How-To/FAQ არის ამოცანა, გადადგას ნაბიჯები, შეამოწმოს შედეგი.
  • API სპეკები - OpenAPI/AsyncAPI/Proto, როგორც SDK და დოქტების წარმოქმნის წყარო.
  • დიაგრამები, როგორიცაა კოდი - Mermaid/PlantUML/Graphviz/C4.

3) სტილი და სტანდარტები

სტილის ერთიანი სახელმძღვანელო (ტონი, ტერმინოლოგია, სათაურების შაბლონები, მაგალითები).
გლოსარიუმი კანონიკური ტერმინებით (EN/RU), ალიასები, აკრძალული ფორმულირებები.
ნუმერაცია და ბმულები: მუდმივი წამყვანები, ჯვარედინი რეფერენდუმი ADR/RFC/კოდს შორის.

მეტამონაცემები YAML ფრონტზე:
yaml title: "Payment Service: Overview"
owner: "payments-team"
reviewers: ["platform", "security"]
last_review: 2025-10-15 tags: ["architecture","payments","pci"]

4) შეკრება და პუბლიკაცია

სტატიკური საიტების გენერატორები:
  • MkDocs (Material) - მარტივი, მოსახერხებელი, კარგი ნავიგაცია და ძებნა.
  • Docusaurus - დოკუმენტაციის ვერსია და docs + ბლოგი; MDX კომპონენტები.
  • ანტორა არის მოდულური დოკუმენტაცია დიდი პლატფორმებისთვის.
მაგალითი mkdocs. yml (ფრაგმენტი):
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) დიაგრამები და სქემები, როგორც კოდი

Mermaid (თანმიმდევრობის მაგალითი):
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 კონტეინერები):

@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 ხდება საიტზე; მათგან წარმოიქმნება SDK/მომხმარებლები/მაგალითები.

6) ხარისხი: ლინზები და დოკუმენტაციის ტესტები

ლინტერები/შემოწმებები:
  • markdownlint - ფორმატის წესები Markdown.
  • ვალე - სტილი/ტერმინოლოგია/ტონი.
  • Spellcheck - მართლწერა (RU/EN ლექსიკონი).
  • Linkcheck - გარე/შიდა ბმულები, წამყვანები.
  • Doctest/Examples - კოდის ფრაგმენტების შესრულება, CLI/API ვერსიების სინქრონიზაცია.
  • Schematest - OpenAPI/AsyncAPI/JSON Schema/Proto.
მაგალითი GitHub Actions (ფრაგმენტი):
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 მაგალითი:
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) პროცესები: RFC/ADR/მიმოხილვები და SLA მოძველებისთვის

RFC flow: ინიციატორი - პროექტი - დისკუსია - გადაწყვეტილება - გეგმა - რეტრო პოსტ-ფაქტორის განხორციელება.
ADR ნაკადი: მოკლედ ჩაწერეთ არჩევანი + ბმული RFC/ექსპერიმენტებზე.
მიმოხილვის პროცედურები: წყარო - 'CODEOWNERS' + 'doc-owners. yaml`.
SLA მოძველებისთვის: კრიტიკულ სტატიებს აქვთ 'last _ Review' და Alert on review N დღეში.

ADR შაბლონი (აბრ.):
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) ლოკალიზაცია (i18n) და მრავალენოვანი

ლოკალიზაციის სტრატეგია: საწყისი ენა (EN ან RU) - თარგმნა ფილიალებში 'i18n/< locale>'.
გასაღებები და კონტექსტი: შეინახეთ „stable-ID“ სათაურები/ფრაგმენტები.
შემოწმებები: ნაბიჯი 'missing-keys', ალერტები რასინქრონიზაციისთვის.
ლოკალების სტილები: ადგილობრივი ტერმინალები, მიუღებელი ნიმუშები, კოდის მაგალითები ადგილობრივ UI ენაზე.

9) პროდუქტთან ინტეგრაცია

ჩაშენებული სერტიფიკატი (app docs): MDX კომპონენტები, კონტექსტური რჩევები.
გამოშვების ვერსია: ჭდეები/ფილიალები 'docs/vX. Y ', საიტი შერჩევითი ვერსიებიდან.
სექციების ავტომატური წარმოება: OpenAPI/AsyncAPI- დან, GraphQL SDL, CLI '-help' - დან.
Changelog, როგორც კოდი: ავტომატური წარმოება PR ეტიკეტებზე (feat/fix/docs/breaking).

10) მეტრიკა და დოკუმენტაციის დაკვირვება

Docs SLO: შეკრების/გამოქვეყნების დრო, საიტის აფთიაქი, დოკუმენტის გამოჩენის დრო PR- ის შემდეგ.
არტეფაქტების დაფარვა: სერვისების წილი ADR- სთან, მაგალითებით ენდოინების წილი, Runbook- ის წილი „ჯანმრთელობის შემოწმებით“.
მომხმარებლის მეტრიკა: საძიებო მოთხოვნები პასუხის გარეშე, ნახვის სიღრმე, CTR ჩაშენებული რჩევები.
ხარისხი: ლინტერის შეცდომები/1000 სტრიქონი, „გატეხილი ბმულები“, მოძველებული სტატიების წილი.

11) უსაფრთხოება და კონფიდენციალურობა

საიდუმლოებები და PD აკრძალულია რეპოში; საიდუმლოებები და შენიღბვა.
შიდა საიტზე წვდომა SSO- ს საშუალებით; საზოგადოებრივი სექციები გამოყოფილია.
ექსპორტის წესები: PDF/არქივები შიდა კავშირების გარეშე, კონფიდენციალური დოკუმენტების წყლის ნიშნები.
ეკრანის კადრები: ავტომატური ანონიმიზაცია (მაქს-მონაცემები/ბლური).

12) პატერნები

Docs in PR. ნებისმიერი ცვლილება, რომელიც გავლენას ახდენს ქცევაზე, მოიცავს დოქტების განახლებას იმავე PR- ში.
შაბლონები კონტრაქტს ჰგავს. სერვისის/endpoint/dataset- ის შექმნა - გენერატორის მეშვეობით, რომელიც დოქების ბლანკებს აყენებს.
დიაგრამები კოდია. ნებისმიერი ნიმუში არის რედაქტირებული წყარო, ასამბლეა SVG/PNG CI- ში.
Docs Preview. ბოტის კომენტარი PR- სთვის საიტის წინასწარი შემოწმების საფუძველზე.
Doc-links კოდი. წყაროებში განთავსებული ვიდეოები ('@ doc: adr/0007'), რომლებიც საიტზე ხდება.

13) ანტი შაბლონები

Wiki/Notion- ის დოკუმენტაცია კოდის გვერდით ვერსიების გარეშე არის რასინქრონიზაცია.
ეკრანის გარეშე ეკრანის კადრები ავტომატურად განახლების შეუძლებლობას წარმოადგენს.
„საიდუმლო“ ცოდნა ზეპირ ჩატებში და კერძო ფაილებში.
გენერატორები მაგალითებისა და ინვარიანტების გარეშე არის უსარგებლო გვერდები.
მფლობელების არარსებობა და 'last _ Review' შეფერხებულია ზვავი.
სახელმძღვანელო ასამბლეა და პუბლიკაცია არის ნავსადგურების მყიფე და იშვიათი გამოცემა.

14) ავტომატიზაციის მაგალითები

API მონაკვეთის წარმოქმნა სპეკებისგან:
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
ბმულების და წამყვანების შემოწმება:
bash linkcheck --config. linkcheck. yml site/
წინასწარი შემოწმების ბოტი (კომენტარი PR- ში):
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) არქიტექტორის ჩეკის სია

1. არსებობს თუ არა დოქების ერთი საცავი კოდისა და გასაგები სტრუქტურის გვერდით?
2. აღწერილია შაბლონები (RFC/ADR/Runbook/How-To) და ტერმინალი?
3. ჩართულია linters (markdownlint, Vale), spellcheck, linkcheck და doctest?
4. დიაგრამები და სქემები - როგორც კოდი, ასამბლეა CI- ში?
5. API სპეკები (OpenAPI/AsyncAPI/Proto) დალაგებულია და განახლებულია საიტზე?
6. მოეწყო docs-preview PR- სთვის და მანქანის გამოცემა მერჯზე?
7. არსებობს SLA მოძველებისთვის (last _ review) და გვერდების „მფლობელები“?
8. მეტრიკა: საფარი, ლინტერის შეცდომები, გატეხილი ბმულები, საძიებო „ნულოვანი“ მოთხოვნები?
9. უსაფრთხოების პოლიტიკოსები: საიდუმლოებები აკრძალულია, SSO, წყლის ნიშნები/ექსპორტი?
10. ლოკალიზაცია კონტროლდება ფილიალებით და შემოწმებულია?

დასკვნა

Docs-as-Code დოკუმენტაციას „ნოტების შემდგომი ფაქტიდან“ გადააქცევს განვითარების სამუშაო არტეფაქტად: ვერსია, ტესტირება და მიწოდებული. ამ მიდგომით, ცოდნა ცხოვრობს კოდის გვერდით, ცვლილებები გამჭვირვალეა, ხოლო მომხმარებლები და ინჟინრები იღებენ შესაბამის მითითებებს, სქემებსა და მაგალითებს, როდესაც საჭიროა. ეს ამცირებს ოპერაციულ რისკებს, აჩქარებს ონბორდინგს და აუმჯობესებს გადაწყვეტილებების ხარისხს მთელ პლატფორმაზე.

Contact

დაგვიკავშირდით

დაგვიკავშირდით ნებისმიერი კითხვის ან მხარდაჭერისთვის.ჩვენ ყოველთვის მზად ვართ დაგეხმაროთ!

Telegram
@Gamble_GC
ინტეგრაციის დაწყება

Email — სავალდებულოა. Telegram ან WhatsApp — სურვილისამებრ.

თქვენი სახელი არასავალდებულო
Email არასავალდებულო
თემა არასავალდებულო
შეტყობინება არასავალდებულო
Telegram არასავალდებულო
@
თუ მიუთითებთ Telegram-ს — ვუპასუხებთ იქაც, დამატებით Email-ზე.
WhatsApp არასავალდებულო
ფორმატი: ქვეყნის კოდი და ნომერი (მაგალითად, +995XXXXXXXXX).

ღილაკზე დაჭერით თქვენ ეთანხმებით თქვენი მონაცემების დამუშავებას.