خواندن کا وقت : 12 minutes

آپ کی کوڈ بیس بڑھتی جارہی ہے۔ ماڈیولز کے درمیان انحصارات ضخم ہو رہے ہیں۔ معمار کی documentation likhne se pehle hi purani ho jati hai۔ Aur kya aap ka Gradle build automatiquement asli code ki struktur se update shuda diagram banana sakta hai؟ یہی exactement woh kaam jo Graphify + PlantUML Gradle Plugin pipeline karta hai:`graphify . --no-viz`Knowledge Graph نکال دیتا ہے,`./gradlew generateKnowledgeGraphDiagram`یہ PlantUML diagrams میں تبدیل کرتا ہے۔ صفر LLM، صفر منوال، 100% حتمی۔

مسئلہ: ڈائگرăm کوڈ سے ہمیشہ پیچھے رہے ہیں

جس پروژه میں چند ہزار لائنوں سے زیادہ ہوتی ہے، اس سينڈروم سے واقف ہوتا ہے :

  1. ہم پراجیکٹ کے ابتداء میں معمارتی ڈائگرام بناتے ہیں

  2. کوڈ بدل رہا ہے، وابستگیں بھی بدل رہی ہیں

  3. ڈائگرام زینتی جھوٹ بن جاتا ہے

  4. کسی نے اسے اپ ڈیٹ نہیں کیا کیونکہ یہ تنگ کرنے والا ہے

  5. نئے آنے وال لوگ اس پر اعتماد کرتے ہیں اور غلطیاں کرتے ہیں

@startuml
skinparam backgroundColor #FEFEFE
skinparam ActivityBackgroundColor #FDEDEC
skinparam ActivityDiamondBackgroundColor #FFF3CD

start

:Diagramme d'architecture créé\n(manuellement, à la main);

:Le code évolue\n(nouvelles classes, nouvelles dépendances);

:Diagramme obsolète\n(ne reflète plus le code);

if (Qui met à jour ?) then (Personne)
    :Documentation mensongère;
    note right: Les nouveaux développeurs\nse basent dessus... et font des erreurs
else (Quelqu'un)
    :Mise à jour manuelle\n(2-3 heures de travail);
    note right: Déjà obsolète\nà la prochaine PR
endif

stop

@enduml

سوال یہ نہیں ہے کیا diagram درکار ہیں؟ — سب جانتے ہیں کہ ہاں۔ سوال یہ ہے :کس انہیں اپ ڈیٹ رکھتا ہے؟

جواب : کوئی نہیں مگر اگر یہ خودکار نہیں ہے

حل: Knowledge Graph → PlantUML کا ضباطی پائپ لائن

مفهوم سادہ ہے: ہاتھ سے diagram بنانے کی جگہ ہم ان کوحقیقی کوڈ کی ساخت سے بناتا ہے.

@startuml
skinparam backgroundColor #FEFEFE
skinparam componentStyle rectangle

actor Développeur
component "Graphify\n(pip install graphifyy)" as Graphify
collections "graphify-out/graph.json\n(Knowledge Graph)" as KGJSON
component "PlantUML Gradle Plugin\n(generateKnowledgeGraphDiagram)" as Plugin
component "KnowledgeGraphParser" as Parser
component "KnowledgeGraphRenderer" as Renderer
component "PlantumlService\n(validation + rendu PNG)" as PS
collections "diagrams/knowledge-graph/\n(.puml + .png)" as Output

Développeur --> Graphify : graphify . --no-viz
Graphify --> KGJSON : extrait la structure\ndu code source
Développeur --> Plugin : ./gradlew generateKnowledgeGraphDiagram
Plugin --> Parser : parse(graph.json)
Parser --> Plugin : KnowledgeGraph\n(noeuds + arêtes + communautés)
Plugin --> Renderer : render(graph, filters)
Renderer --> Plugin : code PlantUML\ndéterministe
Plugin --> PS : validateSyntax + generateImage
PS --> Output : .puml + .png

note bottom of Plugin
  Pipeline DÉTERMINISTE
  Aucun appel LLM
  Résultat reproductible
end note

@enduml

دو کمانڈ۔ یہ سب ہے۔

# Étape 1 : extraire le Knowledge Graph
graphify . --no-viz

# Étape 2 : générer les diagrammes PlantUML
./gradlew generateKnowledgeGraphDiagram

نتیجہ ؟ فائلیں`.puml` et .png`میں`diagrams/knowledge-graph/, Git میں ورژن کردہ، کد کے ساتھ ہمیشہ بروز

مرحلہ 1: Graphify کو انسٹال کریں اور Knowledge Graph کو نکالیں

انсталاشين

Graphify ایک Python ٹول ہے جو آپ کے کوڈبیس کا تجزیہ کرتا ہے اور ایک منظم علم کا گراف بناتا ہے :

# Méthode recommandée
uv tool install graphifyy && graphify install --platform opencode

# Alternative avec pip
pip install graphifyy && graphify install --platform opencode

استثنائیاں کنفیگر کریں

ایک فائل بنائیں`.graphifyignore`پروجیکٹ کی جڑ پر، وہ فائلیں внеш کرنے کے لیے جو کاروباری منطق کا حصہ نہیں ہیں:

# Secrets — JAMAIS dans le graphe
*-context.yml
*.env

# Fichiers générés
build/
.gradle/

# Tests fonctionnels
src/functionalTest/

Knowledge Graph کو نکالیں

graphify . --no-viz

فلگ`--no-viz`HTML کی جنریٹ.skip (Gradle پائلائن میں لا فائدہ). نتیجہ ایک فائل ہے`graphify-out/graph.json`مشتمل :

  • گرہیں: کلاس، فائنکشنز، فائلز — ان کے نوع اور کمیونٹی کے ساتھ

  • کنارے: نودز کے درمیان تعلقات (EXTRACTED کوڈ سے، INFERRED par l’LLM)

  • مجتمعات: مربوط نودز کے خودکار گروپنگ

سٹرکچر کی مثال`graph.json`
{
  "nodes": [
    {"id": "0", "label": "LlmService", "file_type": "code", "community": 0},
    {"id": "1", "label": "ApiKeyPool", "file_type": "code", "community": 0},
    {"id": "2", "label": "PlantumlService", "file_type": "code", "community": 1}
  ],
  "links": [
    {"source": "1", "target": "0", "relation": "uses", "confidence": "EXTRACTED", "weight": 0.9},
    {"source": "0", "target": "2", "relation": "calls", "confidence": "INFERRED", "weight": 0.7}
  ]
}

سورس کوڈ ().kt, .java) tree-sitter کے ذریعے مقامی طور پر تحلیل کیا جاتا ہے,قطعی LLM. صرف دستاویز فائلوں (.adoc, .md) ضرورت ہوتی ہیں ایک LLM کال سمانتی استخراج کے لیے. اس لئے`--update` sur du code Kotlin est quasi instantané.

مرحلہ 2 : گریڈیل پلاگین نالیج گراف کو PlantUML میں بدل دیتا ہے

پائپ لائن کی معماریت

یہ پلاگین`com.cheroliv.plantuml`ایک کام شامل کرتا ہے`generateKnowledgeGraphDiagram`جو تبدیل کرتا ہے`graph.json`PlantUML ڈیاگراموں میںtarīḥ seبالکل محدد:

@startuml
skinparam backgroundColor #FEFEFE

participant "Gradle" as G
participant "GenerateKnowledgeGraphDiagramTask" as Task
participant "KnowledgeGraphParser" as Parser
participant "KnowledgeGraphRenderer" as Renderer
participant "PlantumlService" as PS

collections "graphify-out/graph.json" as JSON

G -> Task : execute
Task -> JSON : read
Task -> Parser : parse(graph.json)
Parser --> Task : KnowledgeGraph\n(noeuds + arêtes + communautés)
Task -> Renderer : render(graph, filters)
Renderer --> Task : code PlantUML\n(déterministe)
Task -> PS : validateSyntax(plantumlCode)
alt syntaxe valide
    Task -> PS : generateImage → .png
else syntaxe invalide
    Task -> Task : save .puml avec warning
end

@enduml

اندرونی اجزاء

جز کردار

KnowledgeGraphParser

پارس کرنا`graph.json`— 3 فارمٹ سپورٹ کرتا ہے: اسلی graphify (nodes+links), legacy (communities), flat. عدد IDs کو لیبلز میں حل کرتا ہے۔

KnowledgeGraphRenderer

حتمی طور پر ایک کو بدل دیتا ہے`KnowledgeGraph`PlantUML کوڈ میں. قسم کے مطابق گروپ، پیکجوں میں کمیونٹیز، خودکار ليجند.

GenerateKnowledgeGraphDiagramTask

گریڈل ٹاسک جو منظم کرتا ہے: parse → render → validate → PNG.gradlePrivacySettings کےziiے可调

kgmodels.kt

ڈیٹا ماڈلز :`KnowledgeGraph`, KnowledgeGraphNode, KnowledgeGraphEdge, KnowledgeGraphCommunity, EdgeType.

PlantumlService

نحوی تصدیق + PNG کا رندرنگ (پلاگین کے تمام کاموں کے لیے dubarah istemal).

رینڈرنگ کے اصول

رینڈرن بصری معاہدات محدداً لاگو کرتا ہے :

کنارہ کی قسم نوطیشن PlantUML معنی

(No output, as the provided text "EXTRACTED" is not French and cannot be translated per the task requirements.)

-→(پُستہ سطر، سیاہ)

منبع کوڈ سے نکالی گئی تعلق (یقینی)

مستنتج

..>(نقطتی خط)

LLM سے انفیریڈ کردہ تعلق (اعتماد کا اسکور)

مبہم

--x(سرخ نقطے دار خط)

مبہم رابطہ (جانچ کے لئے)

کامیونٹیز پلانٹ يو ام ال پیج کے طور پر رندر کی جاتی ہیں، جس میں خودکار رنگوں کی پلیٹ ہوتی ہے۔

مرحلہ 3 : روزمرہ استعمال

مکمل ڈائاگرام

# Générer le diagramme du Knowledge Graph complet
./gradlew generateKnowledgeGraphDiagram

نتيجہ :`diagrams/knowledge-graph/knowledge-graph-full.puml`+.png

کامیونٹی کے حسب فیلٹر

# Une seule communauté
./gradlew generateKnowledgeGraphDiagram \
  -Pplantuml.kg.community=community_0

# Limiter le nombre de noeuds (lisibilité)
./gradlew generateKnowledgeGraphDiagram \
  -Pplantuml.kg.community=community_0 \
  -Pplantuml.kg.maxNodes=15

کناارے کی قسم کے مطابق فیلٹر

# Uniquement les relations certaines (EXTRACTED)
./gradlew generateKnowledgeGraphDiagram \
  -Pplantuml.kg.edgeTypes=EXTRACTED

# Relations certaines + inférées
./gradlew generateKnowledgeGraphDiagram \
  -Pplantuml.kg.edgeTypes=EXTRACTED,INFERRED

نود کے قسم اور اعتماد کے مبنی پر فیلٹر

# Uniquement les classes de code
./gradlew generateKnowledgeGraphDiagram \
  -Pplantuml.kg.nodeTypes=code

# Seuil de confiance minimum (pour les INFERRED)
./gradlew generateKnowledgeGraphDiagram \
  -Pplantuml.kg.minConfidence=0.7

اختیاری آؤٹ پٹ ڈائریکٹری

./gradlew generateKnowledgeGraphDiagram \
  -Pplantuml.kg.outputDir=docs/architecture

خصوصیات کا مکمل حوالہ

ملکیت خامی تفصیل

plantuml.kg.community

(سب)

نام کے مطابق کمیونٹیز فیلٹر کریں (حصری)

plantuml.kg.edgeTypes

(سب)

کِناروں کی اقسام، کُمَّا سے :`EXTRACTED`, INFERRED, AMBIGUOUS

plantuml.kg.minConfidence

0.0

کیناروں کے لیے کم سے کم اعتماد کی حد

plantuml.kg.maxNodes

(بے حد)

نمائش کرنے والے گُمانوں کی زیادہ سے زیادہ تعداد

plantuml.kg.nodeTypes

(سب)

ناوٹس کے انواع، کاما سے الگ (مثلاً`class`, code)

plantuml.kg.outputDir

diagrams/knowledge-graph

فائلوں کے لیے آؤٹپٹ ڈائریکٹری`.puml` et .png

کامل پائلائن گرایڈیل ورکفلو میں

ورکفلو کا نوع

@startuml
skinparam backgroundColor #FEFEFE
skinparam ActivityBackgroundColor #E8F4FD
skinparam ActivityDiamondBackgroundColor #FFF3CD
skinparam ActivityBorderColor #2C3E50

start

partition "EXTRACTION" {
    :graphify . --no-viz;
    note right: Analyse le code source\ntree-sitter (local, pas de LLM)

    :graphify-out/graph.json;
    note right: Noeuds + arêtes\n+ communautés
}

partition "GÉNÉRATION" {
    :./gradlew generateKnowledgeGraphDiagram;
    note right: Pipeline déterministe\nparse → render → validate → PNG

    if (Filtres actifs ?) then (Oui)
        :Appliquer filtres\n(community, edgeTypes,\nmaxNodes, nodeTypes);
    else (Non)
        :Diagramme complet;
    endif

    :diagrams/knowledge-graph/\nknowledge-graph-full.puml\nknowledge-graph-full.png;
}

partition "INTÉGRATION" {
    :git add diagrams/knowledge-graph/;
    :git commit;
    note right: Diagrammes versionnés\ntoujours à jour avec le code
}

stop

@enduml

تطوير کے دور میں شمول

پائپ لائن فطري طور پر desarrollar کے کلیدی مراحل میں شامل ہوتا ہے :

@startuml
skinparam backgroundColor #FEFEFE

state "Développement" as dev
state "Extraction\ngraphify . --no-viz" as extract
state "Génération\n./gradlew generateKnowledgeGraphDiagram" as generate
state "Commit\ndiagrammes versionnés" as commit

[*] --> dev
dev --> extract : Code modifié
extract --> generate : graph.json à jour
generate --> commit : .puml + .png générés
commit --> dev : Diagrammes dans le repo

note right of extract
  Quasi instantané sur du code Kotlin
  (tree-sitter, pas de LLM)
end note

note right of generate
  Déterministe
  Pas de LLM
  Résultat reproductible
end note

@enduml

انکمنٹل اپ ڈیٹ

جب کوڈ بدل جاتا ہے، تو ہم پوری گراف کو صفر سے دوبارہ نہیں بناتے ہیں :

# Mise à jour incrémentale (fichiers modifiés uniquement)
graphify . --update

# Puis régénérer les diagrammes
./gradlew generateKnowledgeGraphDiagram

--update`صرف مبدل شدہ فائلیں نکال دیتا ہے (SHA256 کے ذریعے`graphify-out/cache/)". Kotlin کوڈ پر یہ تقریباً فوری ہے کیونکہ tree-sitter مقامی طور پر کام کرتا ہے LLM کے بغیر۔

ڈگFOODING : پلاگین خود خود کو دستاویز کرتا ہے

پلاگ ان PlantUML مطالبات کو ڈائاگراموں میں تبدیل کرنے کے لیے موجود ہے۔ یہ اپنی codebase کا Knowledge Graph بھی documentation کے ڈائاگراموں میں بدل سکتا ہے۔ یہ dogfooding ہے: پلاگ ان اپنی خدمت خود کرتا ہے۔

@startuml
skinparam backgroundColor #FEFEFE
skinparam componentStyle rectangle

package "نارمل پائپ لائن\n(صارف → ڈایا گرامز)" as normal {
    [Fichier .prompt] as prompt
    [LlmService\n+ ApiKeyPool] as llm1
    [ProcessPlantumlPromptsTask] as task1
    [Diagramme PNG] as out1

    prompt --> task1
    task1 --> llm1
    llm1 --> out1
}

package "نالج گراف پائپ لائن\n(ڈیٹرمینسٹک، کوئی LLM نہیں)" as kg {
    [graphify-out/graph.json] as kgjson
    [KnowledgeGraphParser] as parser
    [KnowledgeGraphRenderer] as renderer
    [PlantumlService] as ps
    [Diagramme PNG\n(documentation du plugin)] as out2

    kgjson --> parser
    parser --> renderer
    renderer --> ps
    ps --> out2
}

package "ڈاگ فوڈنگ پائپ لائن\n(LLM → پلگ ان کی دستاویزات)" as dogfood {
    [GraphifyPromptAdapter] as gpa
    [Fichiers .prompt\nauto-générés] as auto_prompt
    [LlmService\n+ ApiKeyPool] as llm2
    [ProcessPlantumlPromptsTask] as task2
    [Diagramme PNG\n(documentation LLM)] as out3

    kgjson --> gpa
    gpa --> auto_prompt
    auto_prompt --> task2
    task2 --> llm2
    llm2 --> out3
}

note "وہی LlmService، وہی ApiKeyPool،\nوہی PlantumlService\n— زیرو ڈپلیکیشن" as N

@enduml

منسوب Gradle کام :

ٹاسک LLM ? تفصیل

generateKnowledgeGraphDiagram

نہیں

تبدیل کر`graph.json`PlantUML میں (حتمی)

generateDiagramDocs

ہاں

ایجاد کریں`.prompt`وہ ان کو LLM (dogfooding) کے ذریعے پروسس کرتے ہیں

# Documentation déterministe (rapide, pas de LLM)
./gradlew generateKnowledgeGraphDiagram

# Documentation LLM (plus riche, consomme des tokens)
./gradlew generateDiagramDocs

کیوں یہ معین ہے (اور یہ کیوں اہم ہے)

پائنپائلن کی اہم نکات`generateKnowledgeGraphDiagram`:وہ کسی بھی LLM کو نہیں بلاتا. تبدیل`graph.json`→ PlantUML ایک صاف فنکشن ہے۔

@startuml
skinparam backgroundColor #FEFEFE
skinparam componentStyle rectangle

rectangle "ڈیٹرمنسٹک پائپ لائن\n(generateKnowledgeGraphDiagram)" as det {
    [graph.json] as json
    [KnowledgeGraphParser] as parser
    [KnowledgeGraphRenderer] as renderer
    [PlantUML code] as puml

    json --> parser : parse
    parser --> renderer : KnowledgeGraph
    renderer --> puml : render (fonction pure)
}

rectangle "LLM پائپ لائن\n(processPlantumlPrompts)" as llm {
    [.prompt] as prompt
    [LlmService] as llmSvc
    [ChatModel] as model
    [PlantUML code] as puml2

    prompt --> llmSvc
    llmSvc --> model : API call
    model --> puml2 : réponse non-déterministe
}

note bottom of det
ایک جیسا ان پٹ → ایک جیسا آؤٹ پٹ
نیٹ ورک لیٹنسی نہیں
ٹوکنز کی کوئی لاگت نہیں
CI میں دوبارہ قابلِ تراجم (Reproductible)
end note

note bottom of llm
ایک ہی ان پٹ → متغیر آؤٹ پٹ
نیٹ ورک لیٹنسی (1-5s)
ٹوکنز کی لاگت
API کی (clave API) کی ضرورت ہے
end note

@enduml

ملموس فائدے :

فائدہ اثر

قابلِ تجدید

واحد`graph.json`→ ایک ہی ڈائاگرام. بالکل. ہر بار.

صفر لاگت

کسی LLM کال نہیں = کسی ٹوکن نہیں = کسی API بل نہیں

صفر لاٹنسی

Parse + render تقریباً 100ms لی لیتا ہے، 1-5 سےکنڈ نہیں۔

CI کے ساتھ متوافق

API کی کلی ضرورت نہیں۔ متغیر LLM جواب کی وجہ سے فلکی ٹیسٹ نہیں۔

ورنجблиل

Le .puml`تولد شدہ متن ہے۔ ہم اسے سکتے ہیں`diff، PR میں مراجع، Git میں ورژن کرنا

پائلائن خود کی ڈائگرامات

لوپ کو ختم کرنے کے لیے، یہی پائلائن کا ڈائراگرام ہے جسے پلاگ ان اس طرح بنائے گا:

@startuml
skinparam backgroundColor #FEFEFE

participant "Développeur" as Dev
participant "Gradle" as G
participant "GenerateKnowledgeGraphDiagramTask" as Task
participant "KnowledgeGraphParser" as Parser
participant "KnowledgeGraphRenderer" as Renderer
participant "PlantumlService" as PS
collections "graphify-out/graph.json" as JSON
collections "diagrams/knowledge-graph/" as Out

Dev -> G : ./gradlew generateKnowledgeGraphDiagram
G -> Task : execute
Task -> JSON : read
Task -> Parser : parse(graph.json)
Parser --> Task : KnowledgeGraph

alt filtres actifs
    Task -> Task : appliquer filtres\n(community, edgeTypes, maxNodes…)
end

Task -> Renderer : render(graph, filters)
Renderer --> Task : code PlantUML

Task -> PS : validateSyntax()
alt valide
    Task -> PS : generateImage()
    PS --> Out : .puml + .png
else invalide
    Task -> Out : .puml (avec warning)
end

@enduml

پروجیکٹ گورننس میں شمول

ہماری پروژے میں، یہ پائپ لائن EAGER/LAZY سیاق و سباق کی استراتیجی پر مبنی AI ایجن کے لئے شامل ہے۔ نالج گراف دستی معمارتی documentation کی جگہ ایک منظم، قابل‑کوئری اور خود‑اپ ڈیٹ ہونے والا گراف رکھتا ہے۔

@startuml
skinparam backgroundColor #FEFEFE
skinparam componentStyle rectangle

package "EAGER\n(toujours chargé)" as eager {
    [PROMPT_REPRISE.adoc\n(contexte session)] as pr
    [INDEX.adoc\n(vue d'ensemble)] as idx
    [GRAPH_REPORT.adoc\n(~50 lignes)] as gr
}

package "LAZY — Stratégie\n(sur demande)" as lazy_strat {
    [Méthodologies] as meth
    [Archives sessions] as sessions
}

package "LAZY — Graphify\n(requêtes ciblées)" as lazy_graph {
    [graph.json] as gj
    [Queries\n(query/path/explain)] as queries
}

package "Pipeline PlantUML\n(auto-généré)" as puml {
    [generateKnowledgeGraphDiagram] as kgTask
    [generateDiagramDocs] as ddTask
    [Diagrammes PNG] as diagrams
}

Agent --> eager : Lit en début de session
Agent ..> lazy_strat : Charge si type détecté
Agent ..> lazy_graph : Query si besoin structurel
kgTask --> diagrams : Déterministe
ddTask --> diagrams : Via LLM

note right of gr
  Condensé du Knowledge Graph
  God nodes + communautés
  Remplace ECOSYSTEM_OVERVIEW
  (225 lignes → 50 lignes)
end note

@enduml

دو نظاموں کی شادی مکمل ہے :

  • استراتژی QUAND اور COMMENT کو منیج کرتی ہے— حکمرانی, کام کی روانگی, محفوظ رکھنا

  • Graphify کیا اور کہاں کا انتظام کرتا ہےکود کی ساخت، rapports، مستهدف طلبات

No content to translate. سیشن کی استراتژی اسے منیج کرتی ہےکب et le کَیسے(حکمرانی, workflow, سیولیں)، Graphify منیج اسےکیا et le کہاں(کُڈ کی سٹرکٹر, رابطت,ہدف کی کوئریاں). پلینٹ ยู امэль پائپ لائن یہ проسس کرتا ہےکیا سے؟(تعین کردہ ڈائگرام، ورژن شدہ، ہمیشہ اپ_ٹو_ڈیت). __

تنصیب: 5 منٹ کی چیک لسٹ

# مرحلہ آرڈر

1

انسٹال کریں Graphify

uv tool install graphifyy

2

استثناءات کو کنفیگر کریں

بنانا`.graphifyignore`

3

نالِج گراف نکالیں

graphify . --no-viz

4

ڈیاگرامز بنائیں

./gradlew generateKnowledgeGraphDiagram

5

نتائج کو کامٹ کریں

git add diagrams/knowledge-graph/

# Script complet en 5 commandes
uv tool install graphifyy
cat > .graphifyignore << 'EOF'
*-context.yml
*.env
build/
.gradle/
EOF
graphify . --no-viz
./gradlew generateKnowledgeGraphDiagram
git add graphify-out/GRAPH_REPORT.adoc graphify-out/graph.json diagrams/knowledge-graph/

پھنساے اور کم کرنے کے طریقے

فخ تفصیل تخفیف

گراف بھت کثیف

ایک بڑا پروژیکت سو سو نودز جو پڑھے نہیں جا سکتے پیدا کرتا ہے

استعمال کرنا`-Pplantuml.kg.maxNodes=30`اور کمیونٹی کے حسب فیلٹر کریں

بہت وسیع استثناءات

زیادہ فائﻟوں میں`.graphifyignore`گراف کی قدر کم کرتا ہے

صرف credentials اور build کو باہر کر کے شروع کریں

بیکسوں کی سمت

INFERRED کنارے مبہم سمت ہو سکتے ہیں

فیلٹر کرنا`-Pplantuml.kg.edgeTypes=EXTRACTED`sirf maa’iq rishte ke liye

منسوخ گراف

کوڈ بدل جاتا ہے مگر گراف دوبارہ بنایا نہیں جاتا

استعمال کرنا`graphify . --update`بصورت منظم یا گٹ ہوک`graphify hook install`

کست اپ ڈیٹ شدہ

انکریمنٹل اپ ڈیٹس تقریباً مفت ہیں (مقامی tree-sitter)

صرف دستاویزات (.adoc) خربت کرتے ہیں tokens LLM

ہم آخر میں کیا حاصل کرتے ہیں

@startuml
skinparam backgroundColor #FEFEFE

rectangle "پہلے" as avant {
    card "ہاتھ سے بنائے گئے ڈائیگرامز\nہمیشہ پرانے\nکوئی بھی انہیں اپ ڈیٹ نہیں کرتا" as av1 #FDEDEC
}

rectangle "بعد میں" as apres {
    card "خودکار طور پر تیار کردہ ڈائیگرامز\nہمیشہ کوڈ کے مطابق اپ ڈیٹ شدہ\nGit میں ورژن شدہ\nڈیٹرمینسٹک اور ریپروڈیوسیبل" as ap1 #E8F8E8
}

avant --> apres : graphify . --no-viz\n+ ./gradlew generateKnowledgeGraphDiagram

@enduml

حقيقي فوائد:

نفع تفصیل

داکیومینٹیشن ہمیشہ اپ تو دیت

ڈائجرام موجودہ کوڈ کو منکس دکھاتے ہیں، دستی سناپشاٹ نہیں

میںتنáns کی صفر محنت

ڈائگرامات ہر بِلڈ میں دوبارہ تیار ہوتی ہیں

ٹیکنیکل قرض کی کمرائی

اب ڈائگرامز کو دستی طور پر رکھنے کی ضرورت نہیں

نئے کے لیے بصری سیاق

ایک نئے ڈویلپر ڈائگرام دیکھ کر معمارتی کو سمجھتا ہے

ممکنہ پرواہ سے سیٹنگ

جوڑات (سب-گراف → ڈائگرام) AI کے ٹرینینگ کے مثال ہیں۔

آٹوماتیک تصدیق

`PlantumlService.validateSyntax()`ہر بناؤے گئے ڈائگرام کی جانچ کرتا ہے

جلدی آؤن بورڈنگ

5 ڈائگرامز = معماری کا مکمل نظرہ

_ جو شخص کے پاس ایک _کیوں ہے وہ تمام کیسے کو برداشت کر سکتا ہے۔ __

pourquoi : ہمیشہ-ap-to-дейت ڈائیگرامات۔ comment : گریڈیل پائلائن میں دو کامینڈز۔

لینک

متعلقہ مضامین